ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_arena.h
Go to the documentation of this file.
1
34
35#pragma once
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41#include <stdint.h>
42
43#include "ra8_err.h"
44
56typedef struct {
57 uint8_t* base;
58 uint32_t size;
59 uint32_t used;
61
83[[nodiscard]] ra8_err_t ra8_arena_init(ra8_arena_t* arena, void* base, uint32_t size);
84
110[[nodiscard]] ra8_err_t
111ra8_arena_carve(ra8_arena_t* arena, uint32_t bytes, uint32_t align, void** out_ptr);
112
132[[nodiscard]] ra8_err_t ra8_arena_remaining(const ra8_arena_t* arena, uint32_t* out_remaining);
133
134#ifdef __cplusplus
135}
136#endif
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).
Definition ra8_arena.c:69
ra8_err_t ra8_arena_remaining(const ra8_arena_t *arena, uint32_t *out_remaining)
Report the bytes still available in the arena.
Definition ra8_arena.c:94
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.
Definition ra8_arena.c:56
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
Caller-owned bump-arena state over one tier region.
Definition ra8_arena.h:56
uint32_t size
Region length in bytes.
Definition ra8_arena.h:58
uint8_t * base
First byte of the tier region.
Definition ra8_arena.h:57
uint32_t used
High-water mark (bytes carved so far).
Definition ra8_arena.h:59