#ifndef FIO_OS_AIX_H #define FIO_OS_AIX_H #define FIO_OS os_aix #include <errno.h> #include <unistd.h> #include <sys/devinfo.h> #include <sys/ioctl.h> #include "../file.h" #define FIO_HAVE_ODIRECT #define FIO_USE_GENERIC_RAND #define FIO_USE_GENERIC_INIT_RANDOM_STATE #define FIO_HAVE_PSHARED_MUTEX #define OS_MAP_ANON MAP_ANON #define OS_MSG_DONTWAIT 0 #define FIO_USE_GENERIC_SWAP static inline int blockdev_invalidate_cache(struct fio_file *f) { return EINVAL; } static inline int blockdev_size(struct fio_file *f, unsigned long long *bytes) { struct devinfo info; if (!ioctl(f->fd, IOCINFO, &info)) { *bytes = (unsigned long long)info.un.scdk.numblks * info.un.scdk.blksize; return 0; } return errno; } static inline unsigned long long os_phys_mem(void) { long mem = sysconf(_SC_AIX_REALMEM); if (mem == -1) return 0; return (unsigned long long) mem * 1024; } #endif