2005-05-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mono / io-layer / io.h
index 605e11c56220d4798144230236dcb2906e7834cf..a9b68208f4d468c17694b6c078bc762f9c05d7ef 100644 (file)
@@ -13,6 +13,7 @@
 #include <stdlib.h>
 
 #include "mono/io-layer/wapi.h"
+#include "mono/io-layer/timefuncs.h"
 
 typedef struct _WapiSecurityAttributes WapiSecurityAttributes;
 
@@ -32,8 +33,13 @@ struct _WapiOverlapped
        guint32 Offset;
        guint32 OffsetHigh;
        gpointer hEvent;
+       gpointer handle1;
+       gpointer handle2;
 };
 
+typedef void (*WapiOverlappedCB) (guint32 error, guint32 numbytes,
+                                 WapiOverlapped *overlapped);
+
 #define GENERIC_READ   0x80000000
 #define GENERIC_WRITE  0x40000000
 #define GENERIC_EXECUTE        0x20000000
@@ -79,13 +85,13 @@ struct _WapiOverlapped
 typedef enum {
        STD_INPUT_HANDLE=-10,
        STD_OUTPUT_HANDLE=-11,
-       STD_ERROR_HANDLE=-12,
+       STD_ERROR_HANDLE=-12
 } WapiStdHandle;
 
 typedef enum {
        FILE_BEGIN=0,
        FILE_CURRENT=1,
-       FILE_END=2,
+       FILE_END=2
 } WapiSeekMethod;
 
 typedef enum {
@@ -93,7 +99,7 @@ typedef enum {
        FILE_TYPE_DISK=0x0001,
        FILE_TYPE_CHAR=0x0002,
        FILE_TYPE_PIPE=0x0003,
-       FILE_TYPE_REMOTE=0x8000,
+       FILE_TYPE_REMOTE=0x8000
 } WapiFileType;
 
 typedef enum {
@@ -101,12 +107,6 @@ typedef enum {
        GetFileExMaxInfoLevel=0x0001
 } WapiGetFileExInfoLevels;
 
-typedef struct 
-{
-       guint32 dwLowDateTime;
-       guint32 dwHighDateTime;
-} WapiFileTime;
-
 typedef struct 
 {
        guint16 wYear;
@@ -145,6 +145,7 @@ typedef struct
 
 #define INVALID_SET_FILE_POINTER ((guint32)-1)
 #define INVALID_FILE_SIZE ((guint32)0xFFFFFFFF)
+#define INVALID_FILE_ATTRIBUTES ((guint32)-1)
 
 extern gpointer CreateFile(const gunichar2 *name, guint32 fileaccess,
                           guint32 sharemode,
@@ -189,5 +190,15 @@ extern gboolean GetFileAttributesEx (const gunichar2 *name,
 extern gboolean SetFileAttributes (const gunichar2 *name, guint32 attrs);
 extern guint32 GetCurrentDirectory (guint32 length, gunichar2 *buffer);
 extern gboolean SetCurrentDirectory (const gunichar2 *path);
+extern gboolean CreatePipe (gpointer *readpipe, gpointer *writepipe,
+                           WapiSecurityAttributes *security, guint32 size);
+extern guint32 GetTempPath (guint32 len, gunichar2 *buf);
+extern gint32 GetLogicalDriveStrings (guint32 len, gunichar2 *buf);
+extern gboolean LockFile (gpointer handle, guint32 offset_low,
+                         guint32 offset_high, guint32 length_low,
+                         guint32 length_high);
+extern gboolean UnlockFile (gpointer handle, guint32 offset_low,
+                           guint32 offset_high, guint32 length_low,
+                           guint32 length_high);
 
 #endif /* _WAPI_IO_H_ */