SEcube
SEcube Open Source Library - Device
Macros | Functions
se3_memory.c File Reference

Memory management (session allocator) More...

#include "se3_memory.h"

Macros

#define SE3_MEM_SIZE_GET(x, val)   SE3_GET16(x, 0, (val))
 
#define SE3_MEM_SIZE_SET(x, val)   SE3_SET16(x, 0, (val))
 
#define SE3_MEM_INFO_GET(x, info)   SE3_GET16(x, 2, info)
 
#define SE3_MEM_INFO_SET(x, info)   SE3_SET16(x, 2, info)
 
#define SE3_MEM_INFO_MAKE(id, valid)   ((id) | ((valid)?(1):(0)) << 15 )
 
#define SE3_MEM_INFO_ISVALID(info)   SE3_BIT_TEST(info, 15)
 
#define SE3_MEM_INFO_ID(info)   ((info) & ~(1<<15))
 

Functions

void se3_mem_reset (se3_mem *mem)
 release all entries More...
 
void se3_mem_init (se3_mem *mem, size_t index_size, uint8_t **index, size_t buf_size, uint8_t *buf)
 initialize memory allocator More...
 
static void se3_mem_compact (uint8_t *p, uint8_t *end)
 
static uint8_t * se3_mem_defrag (se3_mem *mem)
 
int32_t se3_mem_alloc (se3_mem *mem, size_t size)
 allocate one entry More...
 
uint8_t * se3_mem_ptr (se3_mem *mem, int32_t id)
 get pointer to entry in buffer More...
 
void se3_mem_free (se3_mem *mem, int32_t id)
 release single entry More...
 

Detailed Description

Memory management (session allocator)

Author
Nicola Ferri

Function Documentation

int32_t se3_mem_alloc ( se3_mem mem,
size_t  size 
)

allocate one entry

Parameters
memmemory buffer object
sizeallocation size
void se3_mem_free ( se3_mem mem,
int32_t  id 
)

release single entry

Parameters
memmemory buffer object
idof the entry
void se3_mem_init ( se3_mem mem,
size_t  index_size,
uint8_t **  index,
size_t  buf_size,
uint8_t *  buf 
)

initialize memory allocator

Parameters
memmemory buffer object
index_sizenumber of elements in index
indexpointer to the index buffer (array[index_size] of pointers)
buf_sizenumber of bytes in data buffer
bufpointer to data buffer
uint8_t* se3_mem_ptr ( se3_mem mem,
int32_t  id 
)

get pointer to entry in buffer

Parameters
memmemory buffer object
idof the entry
void se3_mem_reset ( se3_mem mem)

release all entries

Parameters
memmemory buffer object