109 uint32_t frame_bytes);
323 uint32_t* out_misses,
324 uint32_t* out_evictions);
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
The one reusable hash + pin + evict cache engine (#147, #345).
ra8_err_t ra8_vmem_put(ra8_vmem_t *vm, void *page)
Release one pin on a frame previously returned by ra8_vmem_get.
ra8_err_t ra8_vmem_get(ra8_vmem_t *vm, uint32_t object_id, uint64_t offset, void **out_page)
Get (and pin) the frame holding object object_id at offset.
ra8_err_t(* ra8_vmem_loader_fn)(void *ctx, uint32_t object_id, uint64_t offset, uint8_t *frame, uint32_t frame_bytes)
Fill a frame with one page of an object (the storage DIP seam).
ra8_err_t ra8_vmem_init(ra8_vmem_t *vm, const ra8_vmem_cfg_t *cfg)
Initialise a page cache over caller-supplied storage.
ra8_err_t ra8_vmem_stats(const ra8_vmem_t *vm, uint32_t *out_hits, uint32_t *out_misses, uint32_t *out_evictions)
Report the cache hit / miss / eviction counters.
ra8_keycache_cell_t ra8_vmem_frame_t
Per-frame cache metadata (one caller-owned array entry per frame).
ra8_err_t ra8_vmem_prefetch(ra8_vmem_t *vm, uint32_t object_id, uint64_t offset)
Warm the frame holding object object_id at offset into the cache without holding a pin (single-thread...
Per-cell link metadata (one caller-owned array entry per cell).
Cache engine state (caller-owned; treat as private).
Caller-supplied storage + loader for ra8_vmem_init.
uint32_t bucket_count
Number of hash buckets (>= 1).
uint32_t frame_bytes
Bytes per frame (page size, e.g.
ra8_vmem_frame_t * meta
frame_count metadata entries.
int32_t * buckets
bucket_count hash-bucket heads.
uint32_t frame_count
Number of frames.
uint8_t protected_pct
SLRU protected-segment share, 1..100; 0 selects the 75% default.
uint8_t * frame_mem
frame_count * frame_bytes of page storage.
void * loader_ctx
Opaque context passed to loader.
ra8_vmem_key_t * keys
frame_count key-storage entries.
ra8_vmem_loader_fn loader
Page-fill callback (the storage DIP seam).
The (object_id, frame-aligned offset) key the page cache hashes on.
uint64_t offset
Frame-aligned byte offset of the cached page.
uint32_t object_id
Cached object id.
Page-cache state (caller-owned; treat as private).
ra8_vmem_cfg_t cfg
The configuration (copied at init).
ra8_keycache_t kc
The underlying SLRU cache engine.
uint32_t protected_cap
Resolved SLRU protected-segment capacity.