13cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#ifndef FIO_OS_OPENBSD_H 23cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#define FIO_OS_OPENBSD_H 33cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 43cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#define FIO_OS os_openbsd 53cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 63cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#include <errno.h> 73cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#include <sys/param.h> 83cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn/* XXX hack to avoid conflicts between rbtree.h and <sys/tree.h> */ 93cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#include <sys/sysctl.h> 103cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#undef RB_BLACK 113cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#undef RB_RED 123cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#undef RB_ROOT 133cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 143cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#include "../file.h" 153cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 163cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#undef FIO_HAVE_ODIRECT 173cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#define FIO_USE_GENERIC_BDEV_SIZE 183cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#define FIO_USE_GENERIC_RAND 193cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#define FIO_USE_GENERIC_INIT_RANDOM_STATE 203cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#define FIO_HAVE_GETTID 213cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 223cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#undef FIO_HAVE_CPU_AFFINITY /* XXX notyet */ 233cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 243cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#define OS_MAP_ANON MAP_ANON 253cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 263cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#ifndef PTHREAD_STACK_MIN 273cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#define PTHREAD_STACK_MIN 4096 283cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#endif 293cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 303cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#define fio_swap16(x) bswap16(x) 313cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#define fio_swap32(x) bswap32(x) 323cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#define fio_swap64(x) bswap64(x) 333cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 343cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohntypedef off_t off64_t; 353cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 363cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohnstatic inline int blockdev_invalidate_cache(struct fio_file *f) 373cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn{ 383cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn return EINVAL; 393cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn} 403cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 413cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohnstatic inline unsigned long long os_phys_mem(void) 423cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn{ 433cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn int mib[2] = { CTL_HW, HW_PHYSMEM64 }; 443cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn uint64_t mem; 453cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn size_t len = sizeof(mem); 463cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 473cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn sysctl(mib, 2, &mem, &len, NULL, 0); 483cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn return mem; 493cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn} 503cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 513cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohnstatic inline int gettid(void) 523cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn{ 533cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn return (int) pthread_self(); 543cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn} 553cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 563cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#ifdef MADV_FREE 573cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#define FIO_MADV_FREE MADV_FREE 583cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#endif 593cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn 603cd4c66f35fad0df64e4e6dfeddc5bdfd5206e0cJohn#endif 61