From c64646f09c291e22bf10584bd842003a7980eb78 Mon Sep 17 00:00:00 2001 From: Steven Noonan Date: Fri, 22 Apr 2011 23:07:46 -0700 Subject: [PATCH 1/1] os-mac.h: implement blockdev_size() Signed-off-by: Steven Noonan Signed-off-by: Jens Axboe --- os/os-mac.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/os/os-mac.h b/os/os-mac.h index 1a0a8875..1d671414 100644 --- a/os/os-mac.h +++ b/os/os-mac.h @@ -2,6 +2,7 @@ #define FIO_OS_APPLE_H #include +#include #include #include #include @@ -19,7 +20,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 +107,17 @@ static inline int timer_delete(timer_t timer) 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; -- 2.25.1