posixaio: need fcntl.h
[fio.git] / os / os-solaris.h
CommitLineData
2c0ecd28
JA
1#ifndef FIO_OS_SOLARIS_H
2#define FIO_OS_SOLARIS_H
3
4#undef FIO_HAVE_LIBAIO
5#define FIO_HAVE_POSIXAIO
417f0068 6#define FIO_HAVE_SOLARISAIO
2c0ecd28
JA
7#undef FIO_HAVE_FADVISE
8#undef FIO_HAVE_CPU_AFFINITY
9#undef FIO_HAVE_DISK_UTIL
10#undef FIO_HAVE_SGIO
11#undef FIO_HAVE_ODIRECT
fffca02d 12#define FIO_HAVE_FALLOCATE
2c0ecd28
JA
13
14#define OS_MAP_ANON (MAP_ANON)
15
16typedef unsigned long os_cpu_mask_t;
17typedef unsigned int os_random_state_t;
18
19/*
20 * FIXME
21 */
22static inline int blockdev_size(int fd, unsigned long long *bytes)
23{
e5b401d4
JA
24 return EINVAL;
25}
26
27static inline int blockdev_invalidate_cache(int fd)
28{
29 return EINVAL;
2c0ecd28
JA
30}
31
32static inline unsigned long long os_phys_mem(void)
33{
34#if 0
35 int mib[2] = { CTL_HW, HW_PHYSMEM };
36 unsigned long long mem;
37 size_t len = sizeof(mem);
38
39 sysctl(mib, 2, &mem, &len, NULL, 0);
40 return mem;
41#else
42 return 0;
43#endif
44}
45
46static inline void os_random_seed(unsigned long seed, os_random_state_t *rs)
47{
48 srand(seed);
49}
50
51static inline long os_random_long(os_random_state_t *rs)
52{
53 long val;
54
55 val = rand_r(rs);
56 return val;
57}
58
2c0ecd28 59#endif