9 #elif defined(__FreeBSD__)
10 #include "os-freebsd.h"
11 #elif defined(__NetBSD__)
12 #include "os-netbsd.h"
13 #elif defined(__sun__)
14 #include "os-solaris.h"
15 #elif defined(__APPLE__)
20 #error "unsupported os"
23 #ifdef FIO_HAVE_LIBAIO
27 #ifdef FIO_HAVE_POSIXAIO
36 #ifndef FIO_HAVE_STRSEP
37 #include "../lib/strsep.h"
41 #define OS_MSG_DONTWAIT MSG_DONTWAIT
44 #ifndef FIO_HAVE_FADVISE
45 #define fadvise(fd, off, len, advice) (0)
47 #ifndef POSIX_FADV_DONTNEED
48 #define POSIX_FADV_DONTNEED (0)
49 #define POSIX_FADV_SEQUENTIAL (0)
50 #define POSIX_FADV_RANDOM (0)
52 #endif /* FIO_HAVE_FADVISE */
54 #ifndef FIO_HAVE_CPU_AFFINITY
55 #define fio_setaffinity(pid, mask) (0)
56 #define fio_getaffinity(pid, mask) do { } while (0)
57 #define fio_cpu_clear(mask, cpu) do { } while (0)
58 #define fio_cpuset_exit(mask) (-1)
59 typedef unsigned long os_cpu_mask_t;
62 #ifndef FIO_HAVE_IOPRIO
63 #define ioprio_set(which, who, prio) (0)
66 #ifndef FIO_HAVE_ODIRECT
69 #define OS_O_DIRECT O_DIRECT
72 #ifndef FIO_HAVE_HUGETLB
75 #define FIO_HUGE_PAGE 0
79 #define FIO_HUGE_PAGE 4194304
84 #define FIO_O_NOATIME 0
88 #define OS_RAND_MAX RAND_MAX
91 #ifndef FIO_HAVE_RAWBIND
92 #define fio_lookup_raw(dev, majdev, mindev) 1
95 #ifndef FIO_HAVE_BLKTRACE
96 static inline int is_blktrace(const char *fname)
101 static inline int load_blktrace(struct thread_data *td, const char *fname)
107 #define FIO_DEF_CL_SIZE 128
109 static inline int os_cache_line_size(void)
111 #ifdef FIO_HAVE_CL_SIZE
112 int ret = arch_cache_line_size();
115 return FIO_DEF_CL_SIZE;
119 return FIO_DEF_CL_SIZE;
123 #ifdef FIO_USE_GENERIC_BDEV_SIZE
124 static inline int blockdev_size(int fd, unsigned long long *bytes)
130 end = lseek(fd, 0, SEEK_END);
139 #ifdef FIO_USE_GENERIC_RAND
140 typedef unsigned int os_random_state_t;
142 static inline void os_random_seed(unsigned long seed, os_random_state_t *rs)
147 static inline long os_random_long(os_random_state_t *rs)
156 #ifndef FIO_HAVE_FS_STAT
157 static inline unsigned long long get_fs_size(const char *path)