You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
882 B
50 lines
882 B
#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 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 ENOTSUP; |
|
} |
|
|
|
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
|
|
|