Support for Mac OS 10.6.2
[fio.git] / os / os-mac.h
CommitLineData
2afd826b
JA
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_USE_GENERIC_BDEV_SIZE
17
18#define OS_MAP_ANON MAP_ANON
19
20typedef unsigned long os_cpu_mask_t;
21typedef unsigned int os_random_state_t;
22typedef unsigned int clockid_t;
23
24static inline int blockdev_invalidate_cache(int fd)
25{
26 return EINVAL;
27}
28
29static inline unsigned long long os_phys_mem(void)
30{
31 int mib[2] = { CTL_HW, HW_PHYSMEM };
32 unsigned long long mem;
33 size_t len = sizeof(mem);
34
35 sysctl(mib, 2, &mem, &len, NULL, 0);
36 return mem;
37}
38
39static inline void os_random_seed(unsigned long seed, os_random_state_t *rs)
40{
41 srand(seed);
42}
43
44static inline long os_random_long(os_random_state_t *rs)
45{
46 long val;
47
48 val = rand_r(rs);
49 return val;
50}
51
52#endif