]> git.ozlabs.org Git - ccan/blobdiff - ccan/failtest/failtest_override.h
failtest: compile fix for OpenBSD
[ccan] / ccan / failtest / failtest_override.h
index a97d4e1723654fc5c5efa8e3b15491446a3e1c7e..b056d538d482d31216b4dab492cb50fae5d9d7fd 100644 (file)
@@ -1,6 +1,11 @@
+/* Licensed under LGPL - see LICENSE file for details */
 #ifndef CCAN_FAILTEST_OVERRIDE_H
 #define CCAN_FAILTEST_OVERRIDE_H
 /* This file is included before the source file to test. */
+#include "config.h"
+#if HAVE_FILE_OFFSET_BITS
+#define _FILE_OFFSET_BITS 64
+#endif
 
 /* Replacement of allocators. */
 #include <stdlib.h>
@@ -24,6 +29,7 @@
 /* Replacement of I/O. */
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <sys/mman.h>
 #include <fcntl.h>
 #include <unistd.h>
 
 #undef fcntl
 #define fcntl(fd, ...) failtest_fcntl((fd), __FILE__, __LINE__, __VA_ARGS__)
 
+#undef mmap
+/* OpenBSD doesn't idempotent-protect sys/mman.h, so we can't add args. */
+#ifdef __OpenBSD__
+#define mmap(addr, length, prot, flags, fd, offset)                    \
+       failtest_mmap_noloc((addr), (length), (prot), (flags), (fd), (offset))
+#else
+#define mmap(addr, length, prot, flags, fd, offset)                    \
+       failtest_mmap((addr), (length), (prot), (flags), (fd), (offset), \
+                     __FILE__, __LINE__)
+#endif /* !__OpenBSD__ */
+
+#undef lseek
+#define lseek(fd, offset, whence)                                      \
+       failtest_lseek((fd), (offset), (whence), __FILE__, __LINE__)
+
+/* Replacement of getpid (since failtest will fork). */
+#undef getpid
+#define getpid() failtest_getpid(__FILE__, __LINE__)
+
 #include <ccan/failtest/failtest_proto.h>
 
 #endif /* CCAN_FAILTEST_OVERRIDE_H */