From 023a1df091f9d42f826ee3737190db5de9c823b0 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 23 Sep 2010 12:56:46 -0400 Subject: [PATCH] ext2fs: add ext2fs_get_memalign() function Signed-off-by: "Theodore Ts'o" --- debian/e2fslibs.symbols | 1 + lib/ext2fs/ext2fs.h | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/debian/e2fslibs.symbols b/debian/e2fslibs.symbols index c5a6a0b0..12d7d325 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 26749414..bc0d7cef 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