aboutsummaryrefslogtreecommitdiffstats
path: root/executor/executor_windows.h
diff options
context:
space:
mode:
authorSuraj K Suresh <kssuraj15@gmail.com>2020-09-28 14:48:39 +0530
committerDmitry Vyukov <dvyukov@google.com>2020-10-03 14:17:26 +0200
commitca27b3bc5783ce1dbda7f23883d0ddf3729902a8 (patch)
tree7a8b2516093aafd5c1ce9f89fc3aaf833cbdc163 /executor/executor_windows.h
parent2653fa43f8cced3279808d74e5f712bf45ef7551 (diff)
executor: msvc support syz-executor
Diffstat (limited to 'executor/executor_windows.h')
-rw-r--r--executor/executor_windows.h18
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;
+}