Home | History | Annotate | Download | only in os
      1 #ifndef FIO_OS_AIX_H
      2 #define FIO_OS_AIX_H
      3 
      4 #define	FIO_OS	os_aix
      5 
      6 #include <errno.h>
      7 #include <unistd.h>
      8 #include <sys/devinfo.h>
      9 #include <sys/ioctl.h>
     10 
     11 #include "../file.h"
     12 
     13 #define FIO_HAVE_ODIRECT
     14 #define FIO_USE_GENERIC_RAND
     15 #define FIO_USE_GENERIC_INIT_RANDOM_STATE
     16 
     17 #define FIO_HAVE_PSHARED_MUTEX
     18 
     19 #define OS_MAP_ANON		MAP_ANON
     20 #define OS_MSG_DONTWAIT		0
     21 
     22 #define FIO_USE_GENERIC_SWAP
     23 
     24 static inline int blockdev_invalidate_cache(struct fio_file *f)
     25 {
     26 	return EINVAL;
     27 }
     28 
     29 static inline int blockdev_size(struct fio_file *f, unsigned long long *bytes)
     30 {
     31 	struct devinfo info;
     32 
     33 	if (!ioctl(f->fd, IOCINFO, &info)) {
     34         	*bytes = (unsigned long long)info.un.scdk.numblks *
     35 				info.un.scdk.blksize;
     36 		return 0;
     37 	}
     38 
     39 	return errno;
     40 }
     41 
     42 static inline unsigned long long os_phys_mem(void)
     43 {
     44 	long mem = sysconf(_SC_AIX_REALMEM);
     45 
     46 	if (mem == -1)
     47 		return 0;
     48 
     49 	return (unsigned long long) mem * 1024;
     50 }
     51 
     52 #endif
     53