The following changes since commit 4c07ad86c6cc6e158c70a5c625f60144db03f20d: Switch all random generators to be decided by use_os_rand (2011-03-28 09:51:09 +0200) are available in the git repository at: git://git.kernel.dk/fio.git master Steven Noonan (2): os-mac.h: implement blockdev_size() os-mac.h: implement fio_set_odirect() os/os-mac.h | 22 +++++++++++++++++++++- 1 files changed, 21 insertions(+), 1 deletions(-) --- Diff of recent changes: diff --git a/os/os-mac.h b/os/os-mac.h index 1a0a887..42e1fea 100644 --- a/os/os-mac.h +++ b/os/os-mac.h @@ -2,6 +2,8 @@ #define FIO_OS_APPLE_H #include <errno.h> +#include <fcntl.h> +#include <sys/disk.h> #include <sys/sysctl.h> #include <sys/time.h> #include <unistd.h> @@ -19,7 +21,6 @@ #define FIO_HAVE_POSIXAIO #define FIO_HAVE_CLOCK_MONOTONIC -#define FIO_USE_GENERIC_BDEV_SIZE #define FIO_USE_GENERIC_RAND #define OS_MAP_ANON MAP_ANON @@ -107,6 +108,25 @@ static inline int timer_delete(timer_t timer) return 0; } +#define FIO_OS_DIRECTIO +static inline int fio_set_odirect(int fd) +{ + if (fcntl(fd, F_NOCACHE, 1) == -1) + return errno; + return 0; +} + +static inline int blockdev_size(struct fio_file *f, unsigned long long *bytes) +{ + uint64_t temp = 1; + if (ioctl(f->fd, DKIOCGETBLOCKCOUNT, bytes) == -1) + return errno; + if (ioctl(f->fd, DKIOCGETBLOCKSIZE, &temp) == -1) + return errno; + (*bytes) *= temp; + return 0; +} + static inline int blockdev_invalidate_cache(struct fio_file *f) { return EINVAL; -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html