2004-05-21 Dick Porter <dick@ximian.com>
[mono.git] / mono / io-layer / io-private.h
1 /*
2  * io-private.h:  Private definitions for file, console and find handles
3  *
4  * Author:
5  *      Dick Porter (dick@ximian.com)
6  *
7  * (C) 2002 Ximian, Inc.
8  */
9
10 #ifndef _WAPI_IO_PRIVATE_H_
11 #define _WAPI_IO_PRIVATE_H_
12
13 #include <config.h>
14 #include <glib.h>
15 #include <dirent.h>
16 #include <mono/io-layer/io.h>
17
18 extern struct _WapiHandleOps _wapi_file_ops;
19 extern struct _WapiHandleOps _wapi_console_ops;
20 extern struct _WapiHandleOps _wapi_find_ops;
21 extern struct _WapiHandleOps _wapi_pipe_ops;
22
23 /* Currently used for both FILE, CONSOLE and PIPE handle types.  This may
24  * have to change in future.
25  */
26 struct _WapiHandle_file
27 {
28         guint32 filename;
29         guint32 security_attributes;
30         guint32 fileaccess;
31         guint32 sharemode;
32         guint32 attrs;
33         dev_t device;
34         ino_t inode;
35 };
36
37 /* The boolean is for distinguishing between a zeroed struct being not
38  * as yet assigned, and one containing a valid fd 0
39  */
40 struct _WapiHandlePrivate_file
41 {
42         int fd;
43         gboolean assigned;
44         gboolean async;
45         WapiOverlappedCB callback;
46 };
47
48 struct _WapiHandle_find
49 {
50         int dummy;
51 };
52
53 struct _WapiHandlePrivate_find
54 {
55         gchar **namelist;
56         gchar *dir_part;
57         int num;
58         size_t count;
59 };
60
61 G_BEGIN_DECLS
62 int _wapi_file_handle_to_fd (gpointer handle);
63 gboolean _wapi_io_add_callback (gpointer handle,
64                                 WapiOverlappedCB callback,
65                                 guint64 flags);
66 G_END_DECLS
67
68 #endif /* _WAPI_IO_PRIVATE_H_ */