X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=os-freebsd.h;h=6a4c11b634aa064ba37335b8e78f7c01858b9d98;hp=bd6d6d0ec9d5185cc062f3b896e2d8136da0c217;hb=2c0ecd28459b6a1b236c865defb5ef76ce8bfa02;hpb=9104f874d726e84739d3b4008eee0f6ddfe96714 diff --git a/os-freebsd.h b/os-freebsd.h index bd6d6d0e..6a4c11b6 100644 --- a/os-freebsd.h +++ b/os-freebsd.h @@ -1,16 +1,20 @@ #ifndef FIO_OS_FREEBSD_H #define FIO_OS_FREEBSD_H +#include + #undef FIO_HAVE_LIBAIO #define FIO_HAVE_POSIXAIO #undef FIO_HAVE_FADVISE #undef FIO_HAVE_CPU_AFFINITY #undef FIO_HAVE_DISK_UTIL #undef FIO_HAVE_SGIO +#define FIO_HAVE_ODIRECT #define OS_MAP_ANON (MAP_ANON) typedef unsigned long os_cpu_mask_t; +typedef unsigned int os_random_state_t; /* * FIXME @@ -20,4 +24,34 @@ static inline int blockdev_size(int fd, unsigned long long *bytes) return 1; } +static inline unsigned long long os_phys_mem(void) +{ + int mib[2] = { CTL_HW, HW_PHYSMEM }; + unsigned long long mem; + size_t len = sizeof(mem); + + sysctl(mib, 2, &mem, &len, NULL, 0); + return mem; +} + +static inline void os_random_seed(unsigned long seed, os_random_state_t *rs) +{ + srand(seed); +} + +static inline long os_random_long(os_random_state_t *rs) +{ + long val; + + val = rand_r(rs); + return val; +} + +static inline double os_random_double(os_random_state_t *rs) +{ + double val; + + val = (double) rand_r(rs); + return val; +} #endif