summaryrefslogtreecommitdiff
path: root/win32/file.h
diff options
context:
space:
mode:
Diffstat (limited to 'win32/file.h')
-rw-r--r--win32/file.h41
1 files changed, 23 insertions, 18 deletions
diff --git a/win32/file.h b/win32/file.h
index f3ce244f5d..7bf9868e7d 100644
--- a/win32/file.h
+++ b/win32/file.h
@@ -1,10 +1,12 @@
#ifndef RUBY_WIN32_FILE_H
#define RUBY_WIN32_FILE_H
-#define MAX_REPARSE_PATH_LEN 4092
+#ifndef IO_REPARSE_TAG_AF_UNIX
+# define IO_REPARSE_TAG_AF_UNIX 0x80000023
+#endif
enum {
- MINIMUM_REPARSE_BUFFER_PATH_LEN = 4
+ MINIMUM_REPARSE_BUFFER_PATH_LEN = 100
};
/* License: Ruby's */
typedef struct {
@@ -12,21 +14,21 @@ typedef struct {
USHORT ReparseDataLength;
USHORT Reserved;
union {
- struct {
- USHORT SubstituteNameOffset;
- USHORT SubstituteNameLength;
- USHORT PrintNameOffset;
- USHORT PrintNameLength;
- ULONG Flags;
- WCHAR PathBuffer[4];
- } SymbolicLinkReparseBuffer;
- struct {
- USHORT SubstituteNameOffset;
- USHORT SubstituteNameLength;
- USHORT PrintNameOffset;
- USHORT PrintNameLength;
- WCHAR PathBuffer[4];
- } MountPointReparseBuffer;
+ struct {
+ USHORT SubstituteNameOffset;
+ USHORT SubstituteNameLength;
+ USHORT PrintNameOffset;
+ USHORT PrintNameLength;
+ ULONG Flags;
+ WCHAR PathBuffer[MINIMUM_REPARSE_BUFFER_PATH_LEN];
+ } SymbolicLinkReparseBuffer;
+ struct {
+ USHORT SubstituteNameOffset;
+ USHORT SubstituteNameLength;
+ USHORT PrintNameOffset;
+ USHORT PrintNameLength;
+ WCHAR PathBuffer[MINIMUM_REPARSE_BUFFER_PATH_LEN];
+ } MountPointReparseBuffer;
};
} rb_w32_reparse_buffer_t;
@@ -35,7 +37,7 @@ typedef struct {
sizeof(WCHAR)*((n)-MINIMUM_REPARSE_BUFFER_PATH_LEN))
int rb_w32_read_reparse_point(const WCHAR *path, rb_w32_reparse_buffer_t *rp,
- size_t bufsize, WCHAR **result, DWORD *len);
+ size_t bufsize, WCHAR **result, DWORD *len);
int lchown(const char *path, int owner, int group);
int rb_w32_ulchown(const char *path, int owner, int group);
@@ -45,4 +47,7 @@ int fchmod(int fd, int mode);
UINT rb_w32_filecp(void);
WCHAR *rb_w32_home_dir(void);
+rb_pid_t rb_w32_uspawn_process(int mode, const char *prog, char *const *argv,
+ int in_fd, int out_fd, int err_fd, DWORD flags);
+
#endif /* RUBY_WIN32_FILE_H */