From: Madan Valluri Date: Tue, 4 Jul 2006 14:51:22 +0000 (+0000) Subject: libxfs/rdwr.c uses platform specific memalign paramater. X-Git-Tag: v2.9.0~70 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1aef52f8b77d3d7c8b3855e5323311a3c32bfb5c;p=thirdparty%2Fxfsprogs-dev.git libxfs/rdwr.c uses platform specific memalign paramater. Implement platform_memalignment function. --- diff --git a/libxfs/darwin.c b/libxfs/darwin.c index 4cdbe7e90..60780b049 100644 --- a/libxfs/darwin.c +++ b/libxfs/darwin.c @@ -100,3 +100,9 @@ platform_findrawpath(char *path) { return (path); } + +size_t +platform_memalignment(void) +{ + return sizeof(void *); +} diff --git a/libxfs/freebsd.c b/libxfs/freebsd.c index 845533b0b..26ef3a10f 100644 --- a/libxfs/freebsd.c +++ b/libxfs/freebsd.c @@ -160,3 +160,9 @@ platform_findrawpath(char *path) { return (path); } + +size_t +platform_memalignment(void) +{ + return sizeof(void *); +} diff --git a/libxfs/init.h b/libxfs/init.h index d54d8d4dc..4fc62841c 100644 --- a/libxfs/init.h +++ b/libxfs/init.h @@ -29,4 +29,5 @@ extern void platform_set_blocksize (int fd, char *path, int blocksize); extern void platform_flush_device (int fd, dev_t device); extern char *platform_findrawpath(char *path); extern int platform_aio_init(int aio_count); +extern size_t platform_memalignment(void); #endif /* LIBXFS_INIT_H */ diff --git a/libxfs/irix.c b/libxfs/irix.c index 28f471d91..d37a9783a 100644 --- a/libxfs/irix.c +++ b/libxfs/irix.c @@ -84,3 +84,9 @@ platform_findrawpath(char *path) { return findrawpath(path); } + +size_t +platform_memalignment(void) +{ + return sizeof(void *); +} diff --git a/libxfs/linux.c b/libxfs/linux.c index 2b2d59440..818904932 100644 --- a/libxfs/linux.c +++ b/libxfs/linux.c @@ -180,3 +180,9 @@ platform_findrawpath(char *path) { return (path); } + +size_t +platform_memalignment(void) +{ + return getpagesize(); +} diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c index 24648c176..9c9be01b0 100644 --- a/libxfs/rdwr.c +++ b/libxfs/rdwr.c @@ -19,6 +19,7 @@ #include #include #include +#include "init.h" #define BDSTRAT_SIZE (256 * 1024) #define min(x, y) ((x) < (y) ? (x) : (y)) @@ -26,11 +27,11 @@ static inline void * libxfs_memalign(size_t size) { - static size_t pagealign; + static size_t memalignment; - if (!pagealign) - pagealign = getpagesize(); - return memalign(pagealign, size); + if (!memalignment) + memalignment = platform_memalignment(); + return memalign(memalignment, size); } void