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