e7f4e4ee22b35fa36aab2174fb2d2e463f09f41d
[fio.git] / os-solaris.h
1 #ifndef FIO_OS_SOLARIS_H
2 #define FIO_OS_SOLARIS_H
3
4 #undef FIO_HAVE_LIBAIO
5 #define FIO_HAVE_POSIXAIO
6 #undef FIO_HAVE_FADVISE
7 #undef FIO_HAVE_CPU_AFFINITY
8 #undef FIO_HAVE_DISK_UTIL
9 #undef FIO_HAVE_SGIO
10 #undef FIO_HAVE_ODIRECT
11
12 #define OS_MAP_ANON             (MAP_ANON)
13
14 typedef unsigned long os_cpu_mask_t;
15 typedef unsigned int os_random_state_t;
16
17 /*
18  * FIXME
19  */
20 static inline int blockdev_size(int fd, unsigned long long *bytes)
21 {
22         return 1;
23 }
24
25 static inline unsigned long long os_phys_mem(void)
26 {
27 #if 0
28         int mib[2] = { CTL_HW, HW_PHYSMEM };
29         unsigned long long mem;
30         size_t len = sizeof(mem);
31
32         sysctl(mib, 2, &mem, &len, NULL, 0);
33         return mem;
34 #else
35         return 0;
36 #endif
37 }
38
39 static inline void os_random_seed(unsigned long seed, os_random_state_t *rs)
40 {
41         srand(seed);
42 }
43
44 static 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 static inline double os_random_double(os_random_state_t *rs)
53 {
54         double val;
55
56         val = (double) rand_r(rs);
57         return val;
58 }
59
60 #endif