summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSamuel Williams <samuel.williams@oriontransfer.co.nz>2023-05-24 09:15:20 +0900
committerGitHub <noreply@github.com>2023-05-24 09:15:20 +0900
commit28056a6d161417bd7b3aed8099f59f4ac164b351 (patch)
treebf10d11f371f09f73bdc4eebd6bd6f0e360f9f08 /include
parent9592bc703922933c4196748a0e7221a53ad50b9b (diff)
Add support for pread/pwrite on windows. (#7827)
Notes
Notes: Merged-By: ioquatix <samuel@codeotaku.com>
Diffstat (limited to 'include')
-rw-r--r--include/ruby/win32.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/include/ruby/win32.h b/include/ruby/win32.h
index 197eb8a802..50713e9d6c 100644
--- a/include/ruby/win32.h
+++ b/include/ruby/win32.h
@@ -147,8 +147,16 @@ typedef int clockid_t;
#define open rb_w32_uopen
#define close(h) rb_w32_close(h)
#define fclose(f) rb_w32_fclose(f)
-#define read(f, b, s) rb_w32_read(f, b, s)
-#define write(f, b, s) rb_w32_write(f, b, s)
+
+#define read(f, b, s) rb_w32_read(f, b, s, NULL)
+#define write(f, b, s) rb_w32_write(f, b, s, NULL)
+
+#define HAVE_PREAD
+#define pread(f, b, s, o) rb_w32_pread(f, b, s, o)
+
+#define HAVE_PWRITE
+#define pwrite(f, b, s, o) rb_w32_pwrite(f, b, s, o)
+
#define getpid() rb_w32_getpid()
#undef HAVE_GETPPID
#define HAVE_GETPPID 1
@@ -714,8 +722,10 @@ int rb_w32_wopen(const WCHAR *, int, ...);
int rb_w32_close(int);
int rb_w32_fclose(FILE*);
int rb_w32_pipe(int[2]);
-ssize_t rb_w32_read(int, void *, size_t);
-ssize_t rb_w32_write(int, const void *, size_t);
+ssize_t rb_w32_read(int, void *, size_t, rb_off_t *offset);
+ssize_t rb_w32_write(int, const void *, size_t, rb_off_t *offset);
+ssize_t rb_w32_pread(int, void *, size_t, rb_off_t offset);
+ssize_t rb_w32_pwrite(int, const void *, size_t, rb_off_t offset);
rb_off_t rb_w32_lseek(int, rb_off_t, int);
int rb_w32_uutime(const char *, const struct utimbuf *);
int rb_w32_uutimes(const char *, const struct timeval *);