os-freebsd.h revision 5c4e1dbc4ec6ee963220c5f4e64a04cd6130dc81
1ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#ifndef FIO_OS_FREEBSD_H 2ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define FIO_OS_FREEBSD_H 3ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe 45c4e1dbc4ec6ee963220c5f4e64a04cd6130dc81Jens Axboe#include <sys/sysctl.h> 55c4e1dbc4ec6ee963220c5f4e64a04cd6130dc81Jens Axboe 6ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#undef FIO_HAVE_LIBAIO 7ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define FIO_HAVE_POSIXAIO 8ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#undef FIO_HAVE_FADVISE 9ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#undef FIO_HAVE_CPU_AFFINITY 10ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#undef FIO_HAVE_DISK_UTIL 11ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#undef FIO_HAVE_SGIO 12ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe 13ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#define OS_MAP_ANON (MAP_ANON) 14ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe 15ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboetypedef unsigned long os_cpu_mask_t; 166dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboetypedef unsigned int os_random_state_t; 17ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe 18ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe/* 19ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe * FIXME 20ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe */ 219104f874d726e84739d3b4008eee0f6ddfe96714Jens Axboestatic inline int blockdev_size(int fd, unsigned long long *bytes) 22ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe{ 23ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe return 1; 24ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe} 25ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe 2632cd46a085ac60f4f8b085e2d65ebfc6100bb8c5Jens Axboestatic inline unsigned long long os_phys_mem(void) 2732cd46a085ac60f4f8b085e2d65ebfc6100bb8c5Jens Axboe{ 2832cd46a085ac60f4f8b085e2d65ebfc6100bb8c5Jens Axboe int mib[2] = { CTL_HW, HW_PHYSMEM }; 2932cd46a085ac60f4f8b085e2d65ebfc6100bb8c5Jens Axboe unsigned long long mem; 3032cd46a085ac60f4f8b085e2d65ebfc6100bb8c5Jens Axboe size_t len = sizeof(mem); 3132cd46a085ac60f4f8b085e2d65ebfc6100bb8c5Jens Axboe 3232cd46a085ac60f4f8b085e2d65ebfc6100bb8c5Jens Axboe sysctl(mib, 2, &mem, &len, NULL, 0); 3332cd46a085ac60f4f8b085e2d65ebfc6100bb8c5Jens Axboe return mem; 3432cd46a085ac60f4f8b085e2d65ebfc6100bb8c5Jens Axboe} 3532cd46a085ac60f4f8b085e2d65ebfc6100bb8c5Jens Axboe 366dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboestatic inline void os_random_seed(unsigned long seed, os_random_state_t *rs) 376dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe{ 386dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe srand(seed); 396dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe} 406dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe 416dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboestatic inline long os_random_long(os_random_state_t *rs) 426dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe{ 436dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe long val; 446dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe 456dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe val = rand_r(rs); 466dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe return val; 476dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe} 486dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe 496dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboestatic inline double os_random_double(os_random_state_t *rs) 506dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe{ 516dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe double val; 526dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe 536dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe val = (double) rand_r(rs); 546dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe return val; 556dfd46b99af38cc1e5f702f53c59212129fe615eJens Axboe} 56ebac4655dd3624f3296ff83be48e0cdc02852f1Jens Axboe#endif 57