OS headers need fio_file definition now
[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 #include "../file.h"
8
9 #ifndef CLOCK_MONOTONIC
10 #define CLOCK_MONOTONIC 1
11 #endif
12
13 #ifndef CLOCK_REALTIME
14 #define CLOCK_REALTIME 1
15 #endif
16
17 #define FIO_HAVE_POSIXAIO
18 #define FIO_HAVE_CLOCK_MONOTONIC
19 #define FIO_USE_GENERIC_BDEV_SIZE
20 #define FIO_USE_GENERIC_RAND
21
22 #define OS_MAP_ANON             MAP_ANON
23
24 typedef unsigned int clockid_t;
25 typedef off_t off64_t;
26
27 static inline int blockdev_invalidate_cache(struct fio_file fio_unused *f)
28 {
29         return EINVAL;
30 }
31
32 static inline unsigned long long os_phys_mem(void)
33 {
34         int mib[2] = { CTL_HW, HW_PHYSMEM };
35         unsigned long long mem;
36         size_t len = sizeof(mem);
37
38         sysctl(mib, 2, &mem, &len, NULL, 0);
39         return mem;
40 }
41 #endif