Patch to make per-thread IOPS more accurate
[fio.git] / os / os.h
diff --git a/os/os.h b/os/os.h
index b8eee66a14501fd2d083dda2920684940b7cb815..7cb8121120ecd5c98c78d8d3e31b76997172c6da 100644 (file)
--- a/os/os.h
+++ b/os/os.h
@@ -21,6 +21,7 @@ enum {
        os_solaris,
        os_windows,
        os_android,
+       os_dragonfly,
 
        os_nr,
 };
@@ -45,6 +46,8 @@ enum {
 #include "os-hpux.h"
 #elif defined(WIN32)
 #include "os-windows.h"
+#elif defined (__DragonFly__)
+#include "os-dragonfly.h"
 #else
 #error "unsupported os"
 #endif
@@ -202,23 +205,29 @@ static inline uint64_t fio_swap64(uint64_t val)
 
 #ifdef FIO_INTERNAL
 #define le16_to_cpu(val) ({                    \
+       typecheck(uint16_t, val);               \
        __le16_to_cpu(val);                     \
 })
 #define le32_to_cpu(val) ({                    \
+       typecheck(uint32_t, val);               \
        __le32_to_cpu(val);                     \
 })
 #define le64_to_cpu(val) ({                    \
-       __le64_to_cpu(val);                             \
+       typecheck(uint64_t, val);               \
+       __le64_to_cpu(val);                     \
 })
 #endif
 
 #define cpu_to_le16(val) ({                    \
+       typecheck(uint16_t, val);               \
        __cpu_to_le16(val);                     \
 })
 #define cpu_to_le32(val) ({                    \
+       typecheck(uint32_t, val);               \
        __cpu_to_le32(val);                     \
 })
 #define cpu_to_le64(val) ({                    \
+       typecheck(uint64_t, val);               \
        __cpu_to_le64(val);                     \
 })