From: Theodore Ts'o Date: Thu, 23 Sep 2010 16:56:46 +0000 (-0400) Subject: ext2fs: add ext2fs_get_memalign() function X-Git-Tag: v1.41.13~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=023a1df091f9d42f826ee3737190db5de9c823b0;p=thirdparty%2Fe2fsprogs.git ext2fs: add ext2fs_get_memalign() function Signed-off-by: "Theodore Ts'o" --- diff --git a/debian/e2fslibs.symbols b/debian/e2fslibs.symbols index c5a6a0b03..12d7d3251 100644 --- a/debian/e2fslibs.symbols +++ b/debian/e2fslibs.symbols @@ -176,6 +176,7 @@ libext2fs.so.2 e2fslibs #MINVER# ext2fs_get_inode_bitmap_start@Base 1.37 ext2fs_get_library_version@Base 1.37 ext2fs_get_mem@Base 1.37 + ext2fs_get_memalign@Base 1.41.13 ext2fs_get_next_inode@Base 1.37 ext2fs_get_next_inode_full@Base 1.37 ext2fs_get_num_dirs@Base 1.37 diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h index 267494145..bc0d7cef9 100644 --- a/lib/ext2fs/ext2fs.h +++ b/lib/ext2fs/ext2fs.h @@ -52,6 +52,7 @@ extern "C" { #include #include #include +#include #if EXT2_FLAT_INCLUDES #include "e2_types.h" @@ -1147,7 +1148,8 @@ extern errcode_t ext2fs_write_bb_FILE(ext2_badblocks_list bb_list, /* inline functions */ extern errcode_t ext2fs_get_mem(unsigned long size, void *ptr); -extern errcode_t ext2fs_get_array(unsigned long count, unsigned long size, void *ptr); +extern errcode_t ext2fs_get_memalign(unsigned long size, + unsigned long align, void *ptr); extern errcode_t ext2fs_free_mem(void *ptr); extern errcode_t ext2fs_resize_mem(unsigned long old_size, unsigned long size, void *ptr); @@ -1202,6 +1204,21 @@ _INLINE_ errcode_t ext2fs_get_mem(unsigned long size, void *ptr) return 0; } +_INLINE_ errcode_t ext2fs_get_memalign(unsigned long size, + unsigned long align, void *ptr) +{ + errcode_t retval; + + if (align == 0) + align = 8; + if (retval = posix_memalign((void **) ptr, align, size)) { + if (retval == ENOMEM) + return EXT2_ET_NO_MEMORY; + return retval; + } + return 0; +} + _INLINE_ errcode_t ext2fs_get_array(unsigned long count, unsigned long size, void *ptr) { if (count && (-1UL)/count