solaris: add os_phys_mem() implementation
authorTomohiro Kusumi <tkusumi@tuxera.com>
Fri, 3 Nov 2017 16:46:02 +0000 (18:46 +0200)
committerJens Axboe <axboe@kernel.dk>
Fri, 3 Nov 2017 16:48:35 +0000 (10:48 -0600)
Copied from os/os-linux.h. The standard sysconf(3C) names work on
Solaris (actually compiled/tested on illumos) as well.

Signed-off-by: Tomohiro Kusumi <tkusumi@tuxera.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
os/os-solaris.h

index a6cd3766a5761a632a03ba7216c3a0a28e4556ee..644807c5084fdf9d5f1c35a30a0daa97af24bc45 100644 (file)
@@ -66,7 +66,14 @@ static inline int blockdev_invalidate_cache(struct fio_file *f)
 
 static inline unsigned long long os_phys_mem(void)
 {
-       return 0;
+       long pagesize, pages;
+
+       pagesize = sysconf(_SC_PAGESIZE);
+       pages = sysconf(_SC_PHYS_PAGES);
+       if (pages == -1 || pagesize == -1)
+               return 0;
+
+       return (unsigned long long) pages * (unsigned long long) pagesize;
 }
 
 static inline void os_random_seed(unsigned long seed, os_random_state_t *rs)