ext2fs: add ext2fs_get_memalign() function

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
bitmap-optimize
Theodore Ts'o 2010-09-23 12:56:46 -04:00
parent 792cce3092
commit 023a1df091
2 changed files with 19 additions and 1 deletions

View File

@ -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

View File

@ -52,6 +52,7 @@ extern "C" {
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#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<size)