X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=os-linux.h;h=f2df97d3bf2588f7dc1dae447ed27988097a2078;hb=32cd46a085ac60f4f8b085e2d65ebfc6100bb8c5;hp=865853ba4ec83381cea5059e37b808020bbd37fa;hpb=8756e4d421722eaeb089067aeaaf317d05d53a57;p=fio.git diff --git a/os-linux.h b/os-linux.h index 865853ba..f2df97d3 100644 --- a/os-linux.h +++ b/os-linux.h @@ -3,6 +3,8 @@ #include #include +#include +#include #include #define FIO_HAVE_LIBAIO @@ -13,6 +15,7 @@ #define FIO_HAVE_SGIO #define FIO_HAVE_IOPRIO #define FIO_HAVE_SPLICE +#define FIO_HAVE_IOSCHED_SWITCH #define OS_MAP_ANON (MAP_ANONYMOUS) @@ -62,6 +65,8 @@ static inline int vmsplice(int fd, const struct iovec *iov, #define SPLICE_F_MORE (0x04) /* expect more data */ #define SPLICE_F_GIFT (0x08) /* pages passed in are a gift */ +#define SPLICE_DEF_SIZE (64*1024) + enum { IOPRIO_WHO_PROCESS = 1, IOPRIO_WHO_PGRP, @@ -82,4 +87,16 @@ static inline int blockdev_size(int fd, unsigned long long *bytes) return errno; } +static inline unsigned long long os_phys_mem(void) +{ + long pagesize, pages; + + pagesize = sysconf(_SC_PAGESIZE); + pages = sysconf(_SC_PHYS_PAGES); + if (pages == -1 || pagesize == -1) + return 0; + + return (unsigned long long) pages * (unsigned long long) pagesize; +} + #endif