Banjo API 0.0.1
Multi-purpose C99 API
|
Data Structures | |
struct | bj_memory_callbacks |
Custom allocation callbacks. More... | |
Typedefs | |
typedef void *(* | bj_malloc_fn) (void *p_user_data, size_t size) |
Memory allocation callback. | |
typedef void *(* | bj_realloc_fn) (void *p_user_data, void *p_original, size_t size) |
Memory reallocation callback. | |
typedef void(* | bj_free_fn) (void *p_user_data, void *p_memory) |
Memory free callback. | |
typedef struct bj_memory_callbacks | bj_memory_callbacks |
Custom allocation callbacks. | |
Functions | |
void * | bj_malloc (size_t size) |
Allocate size bytes of memory. | |
void * | bj_calloc (size_t size) |
Allocate size bytes of zero-initialized memory. | |
void * | bj_realloc (void *p_memory, size_t size) |
Reallocate a memory block to a new size. | |
void | bj_free (void *p_memory) |
Free a previously allocated memory block. | |
void | bj_memory_set_defaults (const bj_memory_callbacks *p_allocator) |
Set the global default memory allocators. | |
void | bj_memory_unset_defaults (void) |
Reset the global default allocators to system defaults. | |
void * | bj_memcpy (void *p_dest, const void *p_src, size_t mem_size) |
Copy mem_size bytes from p_src to p_dest . | |
void * | bj_memmove (void *p_dest, const void *p_src, size_t mem_size) |
Move mem_size bytes from p_src to p_dest . | |
int | bj_memcmp (const void *p_block_a, const void *p_block_b, size_t size) |
Compare two memory blocks. | |
void | bj_memset (void *p_dest, uint8_t value, size_t mem_size) |
Fill mem_size bytes at p_dest with value . | |
void | bj_memzero (void *p_dest, size_t mem_size) |
Zero out mem_size bytes at p_dest . | |
struct bj_memory_callbacks |
This structure holds function pointers for allocation, reallocation, and deallocation callbacks along with user data.
These callbacks can be assigned per-object or set globally with bj_memory_set_defaults.
Data Fields | ||
---|---|---|
bj_malloc_fn | fn_allocation | Allocation function pointer. |
bj_free_fn | fn_free | Deallocation function pointer. |
bj_realloc_fn | fn_reallocation | Reallocation function pointer. |
void * | p_user_data | General purpose context data. |
typedef void(* bj_free_fn) (void *p_user_data, void *p_memory) |
Used in bj_memory_callbacks to set the function used for custom deallocations.
p_user_data | General purpose context data. |
p_memory | Object memory to dispose. |
typedef void *(* bj_malloc_fn) (void *p_user_data, size_t size) |
Used in bj_memory_callbacks to set the function used for custom allocations.
p_user_data | General purpose context data. |
size | Allocation size in bytes requested by the caller. |
typedef struct bj_memory_callbacks bj_memory_callbacks |
This structure holds function pointers for allocation, reallocation, and deallocation callbacks along with user data.
These callbacks can be assigned per-object or set globally with bj_memory_set_defaults.
typedef void *(* bj_realloc_fn) (void *p_user_data, void *p_original, size_t size) |
Used in bj_memory_callbacks to set the function used for custom reallocations.
p_user_data | General purpose context data. |
p_original | Initial object to reallocate. |
size | Allocation size in bytes requested by the caller. |
void * bj_calloc | ( | size_t | size | ) |
The returned memory is set to zero bytes.
[in] | size | Number of bytes to allocate. |
void bj_free | ( | void * | p_memory | ) |
[in] | p_memory | Pointer to memory to free. |
p_memory
must have been allocated by bj_malloc or bj_realloc. void * bj_malloc | ( | size_t | size | ) |
[in] | size | Number of bytes to allocate. |
int bj_memcmp | ( | const void * | p_block_a, |
const void * | p_block_b, | ||
size_t | size ) |
[in] | p_block_a | Pointer to first memory block. |
[in] | p_block_b | Pointer to second memory block. |
[in] | size | Number of bytes to compare. |
void * bj_memcpy | ( | void * | p_dest, |
const void * | p_src, | ||
size_t | mem_size ) |
[in] | p_dest | Destination pointer. |
[in] | p_src | Source pointer. |
[in] | mem_size | Number of bytes to copy. |
p_dest
. void * bj_memmove | ( | void * | p_dest, |
const void * | p_src, | ||
size_t | mem_size ) |
Similar to bj_memcpy but handles overlapping memory regions safely.
[in] | p_dest | Destination pointer. |
[in] | p_src | Source pointer. |
[in] | mem_size | Number of bytes to move. |
p_dest
. void bj_memory_set_defaults | ( | const bj_memory_callbacks * | p_allocator | ) |
If p_allocator
is NULL
, resets to system defaults (malloc
, realloc
, free
).
[in] | p_allocator | Pointer to custom allocator callbacks. |
void bj_memory_unset_defaults | ( | void | ) |
Sets allocators back to standard system functions (malloc
, realloc
, free
).
void bj_memset | ( | void * | p_dest, |
uint8_t | value, | ||
size_t | mem_size ) |
[in] | p_dest | Destination pointer. |
[in] | value | Byte value to fill. |
[in] | mem_size | Number of bytes to fill. |
void bj_memzero | ( | void * | p_dest, |
size_t | mem_size ) |
Effectively calls bj_memset with zero.
[in] | p_dest | Destination pointer. |
[in] | mem_size | Number of bytes to zero. |
void * bj_realloc | ( | void * | p_memory, |
size_t | size ) |
[in] | p_memory | Pointer to previously allocated memory. |
[in] | size | Number of bytes to allocate. |
p_memory
must have been allocated by bj_malloc or bj_realloc.