fad582754fda1e8d96a76f40d0718df6a1fc91f4
[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  * Copyright 2011 Xamarin Inc
9  */
10
11 #ifndef _WAPI_IO_PRIVATE_H_
12 #define _WAPI_IO_PRIVATE_H_
13
14 #include <config.h>
15 #include <glib.h>
16 #ifdef HAVE_DIRENT_H
17 #include <dirent.h>
18 #endif
19
20 #include <mono/io-layer/io.h>
21 #include <mono/io-layer/wapi-private.h>
22
23 extern struct _WapiHandleOps _wapi_file_ops;
24 extern struct _WapiHandleOps _wapi_console_ops;
25 extern struct _WapiHandleOps _wapi_find_ops;
26 extern struct _WapiHandleOps _wapi_pipe_ops;
27
28 extern gboolean _wapi_lock_file_region (int fd, off_t offset, off_t length);
29 extern gboolean _wapi_unlock_file_region (int fd, off_t offset, off_t length);
30 extern void _wapi_file_details (gpointer handle_info);
31 extern void _wapi_console_details (gpointer handle_info);
32 extern void _wapi_pipe_details (gpointer handle_info);
33 extern gpointer _wapi_stdhandle_create (int fd, const gchar *name);
34
35 /* Currently used for both FILE, CONSOLE and PIPE handle types.  This may
36  * have to change in future.
37  */
38 struct _WapiHandle_file
39 {
40         gchar *filename;
41         struct _WapiFileShare *share_info;      /* Pointer into shared mem */
42         int fd;
43         guint32 security_attributes;
44         guint32 fileaccess;
45         guint32 sharemode;
46         guint32 attrs;
47 };
48
49 struct _WapiHandle_find
50 {
51         gchar **namelist;
52         gchar *dir_part;
53         int num;
54         size_t count;
55 };
56
57 #endif /* _WAPI_IO_PRIVATE_H_ */