rsys

Basic data structures and low-level features
git clone git://git.meso-star.fr/rsys.git
Log | Files | Refs | README | LICENSE

commit 0566b8f493dd227135d1102403999fccef3683ce
parent 4d9aedf0e1c5091570233b29d270d3127bbffcb5
Author: vaplv <vaplv@free.fr>
Date:   Wed,  6 Nov 2013 15:46:10 +0100

Slight changes on the mem_allocator API

Diffstat:
Msrc/mem_allocator.c | 52+++++++++++++++++++++++++++-------------------------
Msrc/mem_allocator.h | 20++++++++++----------
2 files changed, 37 insertions(+), 35 deletions(-)

diff --git a/src/mem_allocator.c b/src/mem_allocator.c @@ -19,9 +19,9 @@ struct alloc_counter { static void* default_alloc (void* data, - size_t size, + const size_t size, const char* filename, - unsigned int fileline) + const unsigned int fileline) { void* mem = NULL; @@ -69,10 +69,10 @@ default_free(void* data, void* mem) static void* default_calloc (void* data, - size_t nbelmts, - size_t size, + const size_t nbelmts, + const size_t size, const char* filename, - unsigned int fileline) + const unsigned int fileline) { void* mem = NULL; const size_t alloc_size = nbelmts * size; @@ -88,9 +88,9 @@ static void* default_realloc (void* data, void* mem, - size_t size, + const size_t size, const char* filename, - unsigned int fileline) + const unsigned int fileline) { void* new_mem = NULL; @@ -125,10 +125,10 @@ default_realloc static void* default_aligned_alloc (void* data, - size_t size, - size_t alignment, + const size_t size, + const size_t alignment, const char* filename, - unsigned int fileline) + const unsigned int fileline) { void* mem = NULL; @@ -222,15 +222,16 @@ struct mem_node { static void* proxy_aligned_alloc (void* data, - size_t size, - size_t align, + const size_t size, + const size_t align, const char* filename, - unsigned int fileline) + const unsigned int fileline) { struct proxy_data* proxy_data = NULL; char* mem = NULL; size_t node_header_size = 0; size_t node_size = 0; + size_t align_adjusted = 0; struct mem_node* node = NULL; ASSERT(data); @@ -238,17 +239,18 @@ proxy_aligned_alloc if((IS_POWER_OF_2(align) == 0) || align > 32768) return NULL; - align = align < PROXY_DEFAULT_ALIGNMENT ? PROXY_DEFAULT_ALIGNMENT : align; + align_adjusted = align < PROXY_DEFAULT_ALIGNMENT + ? PROXY_DEFAULT_ALIGNMENT : align; - node_header_size = ALIGN_SIZE(sizeof(struct mem_node), align); + node_header_size = ALIGN_SIZE(sizeof(struct mem_node), align_adjusted); node_size = node_header_size + size; - node = MEM_ALIGNED_ALLOC(proxy_data->allocator, node_size, align); + node = MEM_ALIGNED_ALLOC(proxy_data->allocator, node_size, align_adjusted); if(!node) return NULL; mem = (char*)((uintptr_t)node + (uintptr_t)node_header_size); - mem[-1] = (char)(align & 0xFF); - mem[-2] = (char)((align >> 8) & 0xFF); + mem[-1] = (char)(align_adjusted & 0xFF); + mem[-2] = (char)((align_adjusted >> 8) & 0xFF); node->next = proxy_data->node_list; node->prev = NULL; node->filename = filename; @@ -263,9 +265,9 @@ proxy_aligned_alloc static void* proxy_alloc (void* data, - size_t size, + const size_t size, const char* filename, - unsigned int fileline) + const unsigned int fileline) { return proxy_aligned_alloc (data, size, PROXY_DEFAULT_ALIGNMENT, filename, fileline); @@ -274,10 +276,10 @@ proxy_alloc static void* proxy_calloc (void* data, - size_t nbelmts, - size_t size, + const size_t nbelmts, + const size_t size, const char* filename, - unsigned int fileline) + const unsigned int fileline) { size_t allocation_size = nbelmts * size; void* mem = proxy_aligned_alloc @@ -319,9 +321,9 @@ static void* proxy_realloc (void* data, void* mem, - size_t size, + const size_t size, const char* filename, - unsigned int fileline) + const unsigned int fileline) { if(size == 0) { proxy_free(data, mem); diff --git a/src/mem_allocator.h b/src/mem_allocator.h @@ -10,30 +10,30 @@ struct mem_allocator { void* (*alloc) (void* data, - size_t size, + const size_t size, const char* filename, - unsigned int fileline); + const unsigned int fileline); void* (*calloc) (void* data, - size_t nbelmts, - size_t size, + const size_t nbelmts, + const size_t size, const char* filename, - unsigned int fileline); + const unsigned int fileline); void* (*realloc) (void* data, void* mem, - size_t size, + const size_t size, const char* filename, - unsigned int fileline); + const unsigned int fileline); void* (*aligned_alloc) (void* data, - size_t size, - size_t alignment, + const size_t size, + const size_t alignment, const char* filename, - unsigned int fileline); + const unsigned int fileline); void (*free) (void* data,