os-mac.h revision e2e58886427019b525d2a234c5404a38ec0c7ebf
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
24typedef unsigned int clockid_t;
25typedef off_t off64_t;
26
27static inline int blockdev_invalidate_cache(struct fio_file fio_unused *f)
28{
29	return EINVAL;
30}
31
32static 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
42