10 #elif defined(__FreeBSD__)
11 #include "os-freebsd.h"
12 #elif defined(__NetBSD__)
13 #include "os-netbsd.h"
14 #elif defined(__sun__)
15 #include "os-solaris.h"
16 #elif defined(__APPLE__)
20 #elif defined(__CYGWIN__)
21 #include "os-windows.h"
23 #error "unsupported os"
26 #ifdef FIO_HAVE_LIBAIO
30 #ifdef FIO_HAVE_POSIXAIO
39 #ifndef FIO_HAVE_STRSEP
40 #include "../lib/strsep.h"
44 #define OS_MSG_DONTWAIT MSG_DONTWAIT
47 #ifndef FIO_HAVE_FADVISE
48 #define fadvise(fd, off, len, advice) (0)
50 #ifndef POSIX_FADV_DONTNEED
51 #define POSIX_FADV_DONTNEED (0)
52 #define POSIX_FADV_SEQUENTIAL (0)
53 #define POSIX_FADV_RANDOM (0)
55 #endif /* FIO_HAVE_FADVISE */
57 #ifndef FIO_HAVE_CPU_AFFINITY
58 #define fio_setaffinity(pid, mask) (0)
59 #define fio_getaffinity(pid, mask) do { } while (0)
60 #define fio_cpu_clear(mask, cpu) do { } while (0)
61 #define fio_cpuset_exit(mask) (-1)
62 typedef unsigned long os_cpu_mask_t;
65 #ifndef FIO_HAVE_IOPRIO
66 #define ioprio_set(which, who, prio) (0)
69 #ifndef FIO_HAVE_ODIRECT
72 #define OS_O_DIRECT O_DIRECT
75 #ifndef FIO_HAVE_HUGETLB
78 #define FIO_HUGE_PAGE 0
82 #define FIO_HUGE_PAGE 4194304
87 #define FIO_O_NOATIME 0
91 #define OS_RAND_MAX RAND_MAX
94 #ifndef FIO_HAVE_RAWBIND
95 #define fio_lookup_raw(dev, majdev, mindev) 1
98 #ifndef FIO_HAVE_BLKTRACE
99 static inline int is_blktrace(const char *fname)
104 static inline int load_blktrace(struct thread_data *td, const char *fname)
110 #define FIO_DEF_CL_SIZE 128
112 static inline int os_cache_line_size(void)
114 #ifdef FIO_HAVE_CL_SIZE
115 int ret = arch_cache_line_size();
118 return FIO_DEF_CL_SIZE;
122 return FIO_DEF_CL_SIZE;
126 #ifdef FIO_USE_GENERIC_BDEV_SIZE
127 static inline int blockdev_size(int fd, unsigned long long *bytes)
133 end = lseek(fd, 0, SEEK_END);
142 #ifdef FIO_USE_GENERIC_RAND
143 typedef unsigned int os_random_state_t;
145 static inline void os_random_seed(unsigned long seed, os_random_state_t *rs)
150 static inline long os_random_long(os_random_state_t *rs)
159 #ifndef FIO_HAVE_FS_STAT
160 static inline unsigned long long get_fs_size(const char *path)