25static const char*
const s_tag =
"ra8_arena";
53 return (v & (v - 1U)) == 0U;
63 arena->
base = (uint8_t*)base;
79 const uintptr_t cur = (uintptr_t)arena->
base + (uintptr_t)arena->
used;
80 const uintptr_t mask = (uintptr_t)align - 1U;
81 const uintptr_t aligned = (cur + mask) & ~mask;
82 const uintptr_t end = (uintptr_t)arena->
base + (uintptr_t)arena->
size;
86 if ((uintptr_t)bytes > (end - aligned)) {
89 *out_ptr = (
void*)aligned;
90 arena->
used = (uint32_t)((aligned + (uintptr_t)bytes) - (uintptr_t)arena->
base);
98 *out_remaining = arena->
size - arena->
used;
static const char * s_tag
Logging / check tag.
static bool internal_is_pow2(uint32_t v)
Test whether v is a power of two.
ra8_err_t ra8_arena_carve(ra8_arena_t *arena, uint32_t bytes, uint32_t align, void **out_ptr)
Carve an aligned sub-block from the arena (bump; no free).
ra8_err_t ra8_arena_remaining(const ra8_arena_t *arena, uint32_t *out_remaining)
Report the bytes still available in the arena.
ra8_err_t ra8_arena_init(ra8_arena_t *arena, void *base, uint32_t size)
Bind a bump arena over a caller-owned tier region.
Init-time bump arena – carves per-tier slab backing, zero-heap.
Annotation-attribute framework macros for ra8-firmware.
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).
Validation and Error-Checking Macros for ra8-firmware.
#define RA8_CHECK_NULL_PTR(ptr, tag, message)
Reject nullptr pointer, returning k_ra8_err_null_ptr.
Error Code Definitions for ra8-firmware.
@ k_ra8_err_no_mem
Static buffer exhausted (no dynamic memory on this project).
@ k_ra8_err_invalid_arg
Invalid function argument.
@ k_ra8_ok
Success – operation completed with all postconditions satisfied.
@ k_ra8_err_invalid_size
Invalid size parameter (too large, too small, or misaligned).
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Caller-owned bump-arena state over one tier region.
uint32_t size
Region length in bytes.
uint8_t * base
First byte of the tier region.
uint32_t used
High-water mark (bytes carved so far).