39a2f827408fd25bf30172e05921908170bef180
[fio.git] / os / os-mac.h
1 #ifndef FIO_OS_APPLE_H
2 #define FIO_OS_APPLE_H
3
4 #include <errno.h>
5 #include <sys/sysctl.h>
6
7 #ifndef CLOCK_MONOTONIC
8 #define CLOCK_MONOTONIC 1
9 #endif
10
11 #ifndef CLOCK_REALTIME
12 #define CLOCK_REALTIME 1
13 #endif
14
15 #define FIO_HAVE_POSIXAIO
16 #define FIO_HAVE_CLOCK_MONOTONIC
17 #define FIO_USE_GENERIC_BDEV_SIZE
18 #define FIO_USE_GENERIC_RAND
19
20 #define OS_MAP_ANON             MAP_ANON
21
22 typedef unsigned int clockid_t;
23 typedef off_t off64_t;
24
25 static inline int blockdev_invalidate_cache(struct fio_file fio_unused *f)
26 {
27         return EINVAL;
28 }
29
30 static inline unsigned long long os_phys_mem(void)
31 {
32         int mib[2] = { CTL_HW, HW_PHYSMEM };
33         unsigned long long mem;
34         size_t len = sizeof(mem);
35
36         sysctl(mib, 2, &mem, &len, NULL, 0);
37         return mem;
38 }
39 #endif