X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=os%2Fos-mac.h;h=80c49f474e007ea461bd22eb30d16d5b646125de;hb=fddc6604f91ebf76d9090741f9d4f5a4d33be0c6;hp=42e1fea98e0bf9e01112f4cf55c5c2d3fab057f8;hpb=7e8ad197a8d219e2fc181c881143f11891e7d0d5;p=fio.git diff --git a/os/os-mac.h b/os/os-mac.h index 42e1fea9..80c49f47 100644 --- a/os/os-mac.h +++ b/os/os-mac.h @@ -1,6 +1,8 @@ #ifndef FIO_OS_APPLE_H #define FIO_OS_APPLE_H +#define FIO_OS os_mac + #include #include #include @@ -8,6 +10,9 @@ #include #include #include +#include +#include +#include #include "../file.h" @@ -22,9 +27,29 @@ #define FIO_HAVE_POSIXAIO #define FIO_HAVE_CLOCK_MONOTONIC #define FIO_USE_GENERIC_RAND +#define FIO_HAVE_GETTID +#define FIO_HAVE_CHARDEV_SIZE #define OS_MAP_ANON MAP_ANON +#if defined(__LITTLE_ENDIAN__) +#define FIO_LITTLE_ENDIAN +#elif defined(__BIG_ENDIAN__) +#define FIO_BIG_ENDIAN +#else +#error "Undefined byte order" +#endif + +#define fio_swap16(x) OSSwapInt16(x) +#define fio_swap32(x) OSSwapInt32(x) +#define fio_swap64(x) OSSwapInt64(x) + +/* + * OSX has a pitifully small shared memory segment by default, + * so default to a lower number of max jobs supported + */ +#define FIO_MAX_JOBS 128 + typedef off_t off64_t; /* OS X as of 10.6 doesn't have the timer_* functions. @@ -127,6 +152,19 @@ static inline int blockdev_size(struct fio_file *f, unsigned long long *bytes) return 0; } +static inline int chardev_size(struct fio_file *f, unsigned long long *bytes) +{ + /* + * Could be a raw block device, this is better than just assuming + * we can't get the size at all. + */ + if (!blockdev_size(f, bytes)) + return 0; + + *bytes = -1ULL; + return 0; +} + static inline int blockdev_invalidate_cache(struct fio_file *f) { return EINVAL; @@ -141,4 +179,9 @@ static inline unsigned long long os_phys_mem(void) sysctl(mib, 2, &mem, &len, NULL, 0); return mem; } + +static inline int gettid(void) +{ + return mach_thread_self(); +} #endif