ROOT-Sim core
3.0.0-rc.2
A General-Purpose Multi-threaded Parallel/Distributed Simulation Library
|
A Buddy System implementation. More...
#include <datatypes/bitmap.h>
#include <assert.h>
#include <stdalign.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
Go to the source code of this file.
Classes | |
struct | buddy_state |
The checkpointable memory context of a single buddy system. More... | |
struct | buddy_realloc_res |
Macros | |
#define | B_TOTAL_EXP 16U |
#define | B_BLOCK_EXP 6U |
#define | next_exp_of_2(i) (sizeof(i) * CHAR_BIT - intrinsics_clz(i)) |
#define | buddy_allocation_block_compute(req_size) next_exp_of_2(max(req_size, 1U << B_BLOCK_EXP) - 1); |
#define | buddy_left_child(i) (((i) << 1U) + 1U) |
#define | buddy_right_child(i) (((i) << 1U) + 2U) |
#define | buddy_parent(i) ((((i) + 1) >> 1U) - 1U) |
Functions | |
void | buddy_init (struct buddy_state *self) |
void * | buddy_malloc (struct buddy_state *self, uint_fast8_t req_blks_exp) |
uint_fast32_t | buddy_free (struct buddy_state *self, void *ptr) |
struct buddy_realloc_res | buddy_best_effort_realloc (struct buddy_state *self, void *ptr, size_t req_size) |
void | buddy_dirty_mark (struct buddy_state *self, const void *ptr, size_t s) |
A Buddy System implementation.