aboutsummaryrefslogtreecommitdiff
path: root/src/sg_read.c
diff options
context:
space:
mode:
authorDouglas Gilbert <dgilbert@interlog.com>2013-10-14 19:29:37 +0000
committerDouglas Gilbert <dgilbert@interlog.com>2013-10-14 19:29:37 +0000
commit189211afbafc77fdc22b7ec2cfe75fa313f12049 (patch)
tree0075f06941a30a4296d51dd443e92a9e139dce1b /src/sg_read.c
parente8a28a4bffdb40f9d19faae694b3cea794bb2dbb (diff)
downloadsg3_utils-189211afbafc77fdc22b7ec2cfe75fa313f12049.tar.gz
avoid getpagesize() with sysconf() and use posix_memalign()
git-svn-id: https://svn.bingwo.ca/repos/sg3_utils/trunk@521 6180dd3e-e324-4e3e-922d-17de1ae2f315
Diffstat (limited to 'src/sg_read.c')
-rw-r--r--src/sg_read.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/sg_read.c b/src/sg_read.c
index 395ae137..28473c4d 100644
--- a/src/sg_read.c
+++ b/src/sg_read.c
@@ -48,7 +48,7 @@
#include "sg_io_linux.h"
-static const char * version_str = "1.20 20130603";
+static const char * version_str = "1.20 20131014";
#define DEF_BLOCK_SIZE 512
#define DEF_BLOCKS_PER_TRANSFER 128
@@ -423,7 +423,11 @@ int main(int argc, char * argv[])
int ret = 0;
size_t psz;
- psz = getpagesize();
+#if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE)
+ psz = sysconf(_SC_PAGESIZE); /* POSIX.1 (was getpagesize()) */
+#else
+ psz = 4096; /* give up, pick likely figure */
+#endif
inf[0] = '\0';
for (k = 1; k < argc; k++) {
@@ -654,6 +658,7 @@ int main(int argc, char * argv[])
"storage\n");
return SG_LIB_CAT_OTHER;
}
+ /* perhaps use posix_memalign() instead */
wrkPos = (unsigned char *)(((unsigned long)wrkBuff + psz - 1) &
(~(psz - 1)));
} else if (do_mmap) {