23#ifndef READER_VMEM_MAX_BUDGET
25#define READER_VMEM_MAX_BUDGET (1024U)
29typedef enum : uint32_t {
Annotation-attribute framework macros for ra8-firmware.
#define RA8_PRIV
Module-private helper: shared across TUs but only inside one library.
Byte-range page cache with SLRU eviction (Layer 2, #147).
ra8_keycache_cell_t ra8_vmem_frame_t
Per-frame cache metadata (one caller-owned array entry per frame).
bool priv_rv_workspace_require(uint32_t budget, rv_workspace_need_t *need)
Query exact split-region requirements for one frame budget.
bool priv_rv_trace_reference(rv_trace_t *trace, uint32_t object_id, uint32_t frame)
Append one exact object/frame reference to a trace transaction.
void priv_rv_diag_u64(uint64_t value)
Write one unsigned decimal diagnostic without stdio.
void priv_rv_diag(const char *text)
Write one best-effort diagnostic fragment to standard error.
bool priv_rv_trace_begin(const char *path, rv_trace_t *trace)
Begin one unpublished same-directory trace transaction.
rv_internal_limit_t
Fixed composition and host-path limits.
@ k_rv_frame_bytes
Bytes per cache frame.
@ k_rv_host_path_cap
Hosted path capacity.
@ k_rv_host_name_cap
Hosted leaf capacity.
@ k_rv_bucket_count
Cache hash-bucket count.
void priv_rv_trace_abort(rv_trace_t *trace)
Close and unlink an unpublished trace.
bool priv_rv_trace_commit(rv_trace_t *trace)
Durably and atomically publish a complete trace.
bool priv_rv_workspace_bind(void *backing, size_t backing_bytes, const rv_workspace_need_t *need, rv_workspace_t *workspace)
Bind typed cache views into an aligned caller-owned backing.
The (object_id, frame-aligned offset) key the page cache hashes on.
Caller-owned atomic trace-publication state.
int trace_fd
Temporary trace handle.
int directory_fd
Parent directory handle.
char temp_name[k_rv_host_name_cap]
Temporary leaf.
bool temp_exists
Temp cleanup guard.
bool io_failed
Sticky exact-I/O fault.
char final_name[k_rv_host_name_cap]
Destination leaf.
uint64_t offset
Next trace byte offset.
Exact byte regions required for one cache budget.
size_t meta_offset
Metadata region offset.
size_t bucket_offset
Hash-bucket region offset.
size_t frame_bytes
Frame-pool region size.
size_t meta_bytes
Metadata region size.
size_t bucket_bytes
Hash-bucket region size.
size_t total_bytes
Exact workspace high-water.
size_t key_offset
Key region offset.
size_t frame_offset
Frame-pool region offset.
size_t key_bytes
Key region size.
Typed views carved from a caller's workspace.
ra8_vmem_key_t * keys
Per-frame key storage.
ra8_vmem_frame_t * meta
Per-frame metadata.
uint8_t * frame_mem
Page-frame pool.
int32_t * buckets
Hash-bucket index heads.