[reflection] Use coop handles for MonoMethod icalls (#4272)
[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 gboolean _wapi_lock_file_region (int fd, off_t offset, off_t length);
25 extern gboolean _wapi_unlock_file_region (int fd, off_t offset, off_t length);
26 extern gpointer _wapi_stdhandle_create (int fd, const gchar *name);
27
28 /* Currently used for both FILE, CONSOLE and PIPE handle types.  This may
29  * have to change in future.
30  */
31 struct _WapiHandle_file
32 {
33         gchar *filename;
34         struct _WapiFileShare *share_info;      /* Pointer into shared mem */
35         int fd;
36         guint32 security_attributes;
37         guint32 fileaccess;
38         guint32 sharemode;
39         guint32 attrs;
40 };
41
42 struct _WapiHandle_find
43 {
44         gchar **namelist;
45         gchar *dir_part;
46         int num;
47         size_t count;
48 };
49
50 #endif /* _WAPI_IO_PRIVATE_H_ */