diff options
author | Douglas Gilbert <dgilbert@interlog.com> | 2013-10-14 19:29:37 +0000 |
---|---|---|
committer | Douglas Gilbert <dgilbert@interlog.com> | 2013-10-14 19:29:37 +0000 |
commit | 189211afbafc77fdc22b7ec2cfe75fa313f12049 (patch) | |
tree | 0075f06941a30a4296d51dd443e92a9e139dce1b /src/sg_read.c | |
parent | e8a28a4bffdb40f9d19faae694b3cea794bb2dbb (diff) | |
download | sg3_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.c | 9 |
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) { |