diff options
Diffstat (limited to 'executor/executor_windows.h')
| -rw-r--r-- | executor/executor_windows.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/executor/executor_windows.h b/executor/executor_windows.h index 1e210826b..bb863c009 100644 --- a/executor/executor_windows.h +++ b/executor/executor_windows.h @@ -6,6 +6,9 @@ #include "nocover.h" +#define read read_win +#define write write_win + static void os_init(int argc, char** argv, void* data, size_t data_size) { if (VirtualAlloc(data, data_size, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE) != data) @@ -20,3 +23,18 @@ static intptr_t execute_syscall(const call_t* c, intptr_t a[kMaxArgs]) return -1; } } + +static __inline int read_win(int pipe_id, void* input_data, int data_size) +{ + DWORD dwBytesRead = 0; + ReadFile((HANDLE)_get_osfhandle(pipe_id), input_data, data_size, &dwBytesRead, NULL); + + return (int)dwBytesRead; +} + +static __inline int write_win(int pipe_id, void* input_data, int data_size) +{ + DWORD dwBytesWritten = 0; + WriteFile((HANDLE)_get_osfhandle(pipe_id), input_data, data_size, &dwBytesWritten, NULL); + return (int)dwBytesWritten; +} |
