summaryrefslogtreecommitdiff
path: root/src/fuzz-wrapfd.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/fuzz-wrapfd.h')
-rw-r--r--src/fuzz-wrapfd.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/fuzz-wrapfd.h b/src/fuzz-wrapfd.h
new file mode 100644
index 0000000..d0dea88
--- /dev/null
+++ b/src/fuzz-wrapfd.h
@@ -0,0 +1,27 @@
+#ifndef FUZZ_WRAPFD_H
+#define FUZZ_WRAPFD_H
+
+#include "includes.h"
+#include "buffer.h"
+
+enum wrapfd_mode {
+ UNUSED = 0,
+ COMMONBUF, // using the common buffer
+ DUMMY, // reads return fixed output, of random length
+};
+
+// buf is a common buffer read by all wrapped FDs. doesn't take ownership of buf
+void wrapfd_setup(buffer *buf);
+void wrapfd_setseed(uint32_t seed);
+int wrapfd_new_fuzzinput(void);
+int wrapfd_new_dummy(void);
+
+// called via #defines for read/write/select
+int wrapfd_read(int fd, void *out, size_t count);
+int wrapfd_write(int fd, const void* in, size_t count);
+int wrapfd_select(int nfds, fd_set *readfds, fd_set *writefds,
+ fd_set *exceptfds, struct timeval *timeout);
+int wrapfd_close(int fd);
+int fuzz_kill(pid_t pid, int sig);
+
+#endif // FUZZ_WRAPFD_H