X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=os%2Fos.h;h=d6ce9a778acf518b6811d13e88b093204b292a9d;hb=203913ea773a19dce4a885204e9d7681b89429fe;hp=189041f5546c20e703deaeb499683963fd5a6b1f;hpb=d5e3a0c6f5376e0d76143edb2c1622efd77f995f;p=fio.git diff --git a/os/os.h b/os/os.h index 189041f5..d6ce9a77 100644 --- a/os/os.h +++ b/os/os.h @@ -2,10 +2,24 @@ #define FIO_OS_H #include +#include #include #include #include +enum { + os_linux = 1, + os_aix, + os_freebsd, + os_hpux, + os_mac, + os_netbsd, + os_solaris, + os_windows, + + os_nr, +}; + #if defined(__linux__) #include "os-linux.h" #elif defined(__FreeBSD__) @@ -143,6 +157,47 @@ static inline uint64_t fio_swap64(uint64_t val) } #endif +#ifdef FIO_LITTLE_ENDIAN +#define __le16_to_cpu(x) (x) +#define __le32_to_cpu(x) (x) +#define __le64_to_cpu(x) (x) +#define __cpu_to_le16(x) (x) +#define __cpu_to_le32(x) (x) +#define __cpu_to_le64(x) (x) +#else +#define __le16_to_cpu(x) fio_swap16(x) +#define __le32_to_cpu(x) fio_swap32(x) +#define __le64_to_cpu(x) fio_swap64(x) +#define __cpu_to_le16(x) fio_swap16(x) +#define __cpu_to_le32(x) fio_swap32(x) +#define __cpu_to_le64(x) fio_swap64(x) +#endif + +#define le16_to_cpu(val) ({ \ + uint16_t *__val = &(val); \ + __le16_to_cpu(*__val); \ +}) +#define le32_to_cpu(val) ({ \ + uint32_t *__val = &(val); \ + __le32_to_cpu(*__val); \ +}) +#define le64_to_cpu(val) ({ \ + uint64_t *__val = &(val); \ + __le64_to_cpu(*__val); \ +}) +#define cpu_to_le16(val) ({ \ + uint16_t *__val = &(val); \ + __cpu_to_le16(*__val); \ +}) +#define cpu_to_le32(val) ({ \ + uint32_t *__val = &(val); \ + __cpu_to_le32(*__val); \ +}) +#define cpu_to_le64(val) ({ \ + uint64_t *__val = &(val); \ + __cpu_to_le64(*__val); \ +}) + #ifndef FIO_HAVE_BLKTRACE static inline int is_blktrace(const char *fname) {