First snapshot of FIO for Windows
[fio.git] / os / os-aix.h
CommitLineData
bf2e821a
CC
1#ifndef FIO_OS_AIX_H
2#define FIO_OS_AIX_H
3
4#include <errno.h>
5#include <unistd.h>
6#include <sys/devinfo.h>
7#include <sys/ioctl.h>
8
9#define FIO_HAVE_POSIXAIO
bf2e821a
CC
10#define FIO_HAVE_ODIRECT
11#define FIO_USE_GENERIC_RAND
12
282cc167
JA
13/*
14 * This is broken on AIX if _LARGE_FILES is defined...
15 */
16#if 0
17#define FIO_HAVE_FALLOCATE
18#endif
19
bf2e821a
CC
20#define FIO_HAVE_PSHARED_MUTEX
21
22#define OS_MAP_ANON MAP_ANON
8e239cae 23#define OS_MSG_DONTWAIT 0
bf2e821a
CC
24
25static inline int blockdev_invalidate_cache(int fd)
26{
27 return EINVAL;
28}
29
30static inline int blockdev_size(int fd, unsigned long long *bytes)
31{
32 struct devinfo info;
33
34 if (!ioctl(fd, IOCINFO, &info)) {
35 *bytes = (unsigned long long)info.un.scdk.numblks *
36 info.un.scdk.blksize;
37 return 0;
38 }
39
40 return errno;
41}
42
43static inline unsigned long long os_phys_mem(void)
44{
45 long mem = sysconf(_SC_AIX_REALMEM);
46
47 if (mem == -1)
48 return 0;
49
50 return (unsigned long long) mem * 1024;
51}
52
53#endif