From 28056a6d161417bd7b3aed8099f59f4ac164b351 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Wed, 24 May 2023 09:15:20 +0900 Subject: Add support for pread/pwrite on windows. (#7827) --- include/ruby/win32.h | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'include/ruby') 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 *); -- cgit v1.2.3