Add support for AIX
[fio.git] / os / os-aix.h
... / ...
CommitLineData
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
10#define FIO_HAVE_FALLOCATE
11#define FIO_HAVE_ODIRECT
12#define FIO_USE_GENERIC_RAND
13
14#define FIO_HAVE_PSHARED_MUTEX
15
16#define OS_MAP_ANON MAP_ANON
17
18static inline int blockdev_invalidate_cache(int fd)
19{
20 return EINVAL;
21}
22
23static inline int blockdev_size(int fd, unsigned long long *bytes)
24{
25 struct devinfo info;
26
27 if (!ioctl(fd, IOCINFO, &info)) {
28 *bytes = (unsigned long long)info.un.scdk.numblks *
29 info.un.scdk.blksize;
30 return 0;
31 }
32
33 return errno;
34}
35
36static inline unsigned long long os_phys_mem(void)
37{
38 long mem = sysconf(_SC_AIX_REALMEM);
39
40 if (mem == -1)
41 return 0;
42
43 return (unsigned long long) mem * 1024;
44}
45
46#endif