1 #ifndef _WAPI_PRIVATE_H_
2 #define _WAPI_PRIVATE_H_
7 #include "mono/io-layer/handles.h"
22 /* All handle types */
23 void (*close)(WapiHandle *handle);
25 /* File, console and pipe handles */
26 WapiFileType (*getfiletype)(void);
28 /* File and console handles */
29 gboolean (*readfile)(WapiHandle *handle, gpointer buffer,
30 guint32 numbytes, guint32 *bytesread,
31 WapiOverlapped *overlapped);
32 gboolean (*writefile)(WapiHandle *handle, gconstpointer buffer,
33 guint32 numbytes, guint32 *byteswritten,
34 WapiOverlapped *overlapped);
37 guint32 (*seek)(WapiHandle *handle, gint32 movedistance,
38 gint32 *highmovedistance, WapiSeekMethod method);
39 gboolean (*setendoffile)(WapiHandle *handle);
40 guint32 (*getfilesize)(WapiHandle *handle, guint32 *highsize);
41 gboolean (*getfiletime)(WapiHandle *handle, WapiFileTime *create_time,
42 WapiFileTime *last_access,
43 WapiFileTime *last_write);
44 gboolean (*setfiletime)(WapiHandle *handle,
45 const WapiFileTime *create_time,
46 const WapiFileTime *last_access,
47 const WapiFileTime *last_write);
49 /* WaitForSingleObject */
50 gboolean (*wait)(WapiHandle *handle, WapiHandle *signal, guint32 ms);
52 /* WaitForMultipleObjects */
53 guint32 (*wait_multiple)(gpointer data);
55 /* SignalObjectAndWait */
56 void (*signal)(WapiHandle *signal);
64 struct _WapiHandleOps *ops;
67 #define _WAPI_HANDLE_INIT(_handle, _type, _ops) G_STMT_START {\
70 _handle->signalled=FALSE;\
74 #endif /* _WAPI_PRIVATE_H_ */