X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=os%2Fos-hpux.h;h=82acd1105fc51aa22f3976643a18999b245ebb3e;hp=a36cb70424d255b8fc73c79820a82fb4b4603af3;hb=4e0a8fa2593006505b7f4e18931a201d221b49e9;hpb=c00a22894b82ff53b42c1e741a7b4828199a1388;ds=sidebyside diff --git a/os/os-hpux.h b/os/os-hpux.h index a36cb704..82acd110 100644 --- a/os/os-hpux.h +++ b/os/os-hpux.h @@ -1,6 +1,8 @@ #ifndef FIO_OS_HPUX_H #define FIO_OS_HPUX_H +#define FIO_OS os_hpux + #include #include #include @@ -8,15 +10,20 @@ #include #include #include +#include +#include +#include +#include +#include +#include #include "../file.h" -#define FIO_HAVE_POSIXAIO #define FIO_HAVE_ODIRECT #define FIO_USE_GENERIC_RAND -#define FIO_HAVE_CLOCK_MONOTONIC +#define FIO_USE_GENERIC_INIT_RANDOM_STATE #define FIO_HAVE_PSHARED_MUTEX -#define FIO_HAVE_FADVISE +#define FIO_HAVE_CHARDEV_SIZE #define OS_MAP_ANON MAP_ANONYMOUS #define OS_MSG_DONTWAIT 0 @@ -26,6 +33,15 @@ #define POSIX_MADV_RANDOM MADV_RANDOM #define posix_madvise(ptr, sz, hint) madvise((ptr), (sz), (hint)) +#ifndef MSG_WAITALL +#define MSG_WAITALL 0x40 +#endif + +#define FIO_USE_GENERIC_SWAP + +#define FIO_OS_HAVE_AIOCB_TYPEDEF +typedef struct aiocb64 os_aiocb_t; + static inline int blockdev_invalidate_cache(struct fio_file *f) { return EINVAL; @@ -33,33 +49,38 @@ static inline int blockdev_invalidate_cache(struct fio_file *f) static inline int blockdev_size(struct fio_file *f, unsigned long long *bytes) { -#if 0 - struct devinfo info; + disk_describe_type_ext_t dext; + + if (!ioctl(f->fd, DIOC_DESCRIBE_EXT, &dext)) { + unsigned long long lba; - if (!ioctl(f->fd, IOCINFO, &info)) { - *bytes = (unsigned long long)info.un.scdk.numblks * - info.un.scdk.blksize; + lba = ((uint64_t) dext.maxsva_high << 32) | dext.maxsva_low; + *bytes = lba * dext.lgblksz; return 0; } + *bytes = 0; return errno; -#else - return 0; -#endif +} + +static inline int chardev_size(struct fio_file *f, unsigned long long *bytes) +{ + return blockdev_size(f, bytes); } static inline unsigned long long os_phys_mem(void) { -#if 0 - long mem = sysconf(_SC_AIX_REALMEM); + unsigned long long ret; + struct pst_static pst; + union pstun pu; - if (mem == -1) + pu.pst_static = &pst; + if (pstat(PSTAT_STATIC, pu, sizeof(pst), 0, 0) == -1) return 0; - return (unsigned long long) mem * 1024; -#else - return 0; -#endif + ret = pst.physical_memory; + ret *= pst.page_size; + return ret; } #define FIO_HAVE_CPU_ONLINE_SYSCONF