X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=os%2Fos.h;h=e47d3d97064e2b897a9036f680470caf2b3b4f45;hp=b46f4164008eb9d63a33f8b668204e77060314dd;hb=HEAD;hpb=418f53993b07e48b5a69db84c9c7209acd53eac3 diff --git a/os/os.h b/os/os.h index b46f4164..0f182324 100644 --- a/os/os.h +++ b/os/os.h @@ -7,6 +7,7 @@ #include #include #include +#include #include "../arch/arch.h" /* IWYU pragma: export */ #include "../lib/types.h" @@ -32,9 +33,7 @@ typedef enum { } cpu_features; /* IWYU pragma: begin_exports */ -#if defined(__ANDROID__) -#include "os-android.h" -#elif defined(__linux__) +#if defined(__linux__) #include "os-linux.h" #elif defined(__FreeBSD__) #include "os-freebsd.h" @@ -58,6 +57,10 @@ typedef enum { #error "unsupported os" #endif +#ifndef EDQUOT +#define EDQUOT EIO +#endif + #ifdef CONFIG_POSIXAIO #include #ifndef FIO_OS_HAVE_AIOCB_TYPEDEF @@ -112,8 +115,21 @@ static inline int fio_cpus_split(os_cpu_mask_t *mask, unsigned int cpu_index) extern int fio_cpus_split(os_cpu_mask_t *mask, unsigned int cpu); #endif +#ifndef FIO_HAVE_IOPRIO_CLASS +#define ioprio_class(prio) 0 +#define ioprio_value_is_class_rt(prio) (false) +#define IOPRIO_MIN_PRIO_CLASS 0 +#define IOPRIO_MAX_PRIO_CLASS 0 +#define ioprio_hint(prio) 0 +#define IOPRIO_MIN_PRIO_HINT 0 +#define IOPRIO_MAX_PRIO_HINT 0 +#endif #ifndef FIO_HAVE_IOPRIO -#define ioprio_set(which, who, prioclass, prio) (0) +#define ioprio_value(prioclass, prio, priohint) (0) +#define ioprio(ioprio) 0 +#define ioprio_set(which, who, prioclass, prio, priohint) (0) +#define IOPRIO_MIN_PRIO 0 +#define IOPRIO_MAX_PRIO 0 #endif #ifndef FIO_HAVE_ODIRECT @@ -122,12 +138,6 @@ extern int fio_cpus_split(os_cpu_mask_t *mask, unsigned int cpu); #define OS_O_DIRECT O_DIRECT #endif -#ifdef OS_O_ATOMIC -#define FIO_O_ATOMIC OS_O_ATOMIC -#else -#define FIO_O_ATOMIC 0 -#endif - #ifndef FIO_HAVE_HUGETLB #define SHM_HUGETLB 0 #define MAP_HUGETLB 0 @@ -152,10 +162,6 @@ extern int fio_cpus_split(os_cpu_mask_t *mask, unsigned int cpu); #define OS_RAND_MAX RAND_MAX #endif -#ifndef FIO_HAVE_RAWBIND -#define fio_lookup_raw(dev, majdev, mindev) 1 -#endif - #ifndef FIO_PREFERRED_ENGINE #define FIO_PREFERRED_ENGINE "psync" #endif @@ -345,10 +351,12 @@ static inline unsigned long long get_fs_free_size(const char *path) } #endif -#ifndef FIO_HAVE_CPU_ONLINE_SYSCONF -static inline unsigned int cpus_online(void) +#ifndef FIO_HAVE_CPU_CONF_SYSCONF +static inline unsigned int cpus_configured(void) { - return sysconf(_SC_NPROCESSORS_ONLN); + int nr_cpus = sysconf(_SC_NPROCESSORS_CONF); + + return nr_cpus >= 1 ? nr_cpus : 1; } #endif @@ -356,7 +364,7 @@ static inline unsigned int cpus_online(void) #ifdef FIO_HAVE_CPU_AFFINITY static inline int CPU_COUNT(os_cpu_mask_t *mask) { - int max_cpus = cpus_online(); + int max_cpus = cpus_configured(); int nr_cpus, i; for (i = 0, nr_cpus = 0; i < max_cpus; i++) @@ -407,4 +415,13 @@ static inline bool os_cpu_has(cpu_features feature) # define fio_mkdir(path, mode) mkdir(path, mode) #endif +#ifdef _SC_CLK_TCK +static inline void os_clk_tck(long *clk_tck) +{ + *clk_tck = sysconf(_SC_CLK_TCK); +} +#else +extern void os_clk_tck(long *clk_tck); +#endif + #endif /* FIO_OS_H */