FreeRDP
Loading...
Searching...
No Matches
nonehandle.c
1
21#include <winpr/config.h>
22
23#include "nonehandle.h"
24
25#ifndef _WIN32
26
27#include <pthread.h>
28
29static BOOL NoneHandleCloseHandle(HANDLE handle)
30{
31 WINPR_NONE_HANDLE* none = (WINPR_NONE_HANDLE*)handle;
32 free(none);
33 return TRUE;
34}
35
36static BOOL NoneHandleIsHandle(HANDLE handle)
37{
38 return WINPR_HANDLE_IS_HANDLED(handle, HANDLE_TYPE_NONE, FALSE);
39}
40
41static int NoneHandleGetFd(HANDLE handle)
42{
43 if (!NoneHandleIsHandle(handle))
44 return -1;
45
46 return -1;
47}
48
49static HANDLE_OPS ops = { NoneHandleIsHandle,
50 NoneHandleCloseHandle,
51 NoneHandleGetFd,
52 nullptr, /* CleanupHandle */
53 nullptr,
54 nullptr,
55 nullptr,
56 nullptr,
57 nullptr,
58 nullptr,
59 nullptr,
60 nullptr,
61 nullptr,
62 nullptr,
63 nullptr,
64 nullptr,
65 nullptr,
66 nullptr,
67 nullptr,
68 nullptr,
69 nullptr };
70
71HANDLE CreateNoneHandle(void)
72{
73 WINPR_NONE_HANDLE* none = (WINPR_NONE_HANDLE*)calloc(1, sizeof(WINPR_NONE_HANDLE));
74
75 if (!none)
76 return nullptr;
77
78 none->common.ops = &ops;
79 return (HANDLE)none;
80}
81
82#endif