ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
book_chunked.h
Go to the documentation of this file.
1
50#pragma once
51
52#include <stdint.h>
53
54#include "book.h"
55#include "book_stream.h"
56#include "ra8_err.h"
57#include "ra8_vsource.h"
58
59#ifdef __cplusplus
60extern "C" {
61#endif
62
83typedef struct {
85 void* file_ctx;
87 const uint64_t* table;
89 uint8_t* staging;
90 uint32_t staging_cap;
91 uint64_t payload_off;
92 uint64_t inflated_total;
93 uint32_t chunk_bytes;
94 uint32_t chunk_count;
96
144 ra8_vsource_read_fn file_read,
145 void* file_ctx,
146 uint64_t file_len,
147 book_inflate_fn inflate,
148 uint64_t* table_buf,
149 uint32_t table_cap_entries,
150 uint8_t* staging,
151 uint32_t staging_cap);
152
190[[nodiscard]] ra8_err_t book_chunked_read(void* ctx, uint64_t offset, uint8_t* buf, uint32_t len);
191
233 uint8_t* chunk,
234 uint32_t chunk_cap,
235 uint8_t* scratch,
236 uint32_t scratch_cap,
237 book_header_t* out_header);
238
239#ifdef __cplusplus
240}
241#endif
Flat, execute-in-place container for a build-time "compiled" e-book.
ra8_err_t(* book_inflate_fn)(const void *src, size_t src_len, void *dst, size_t dst_cap, size_t *out_len)
Caller-supplied DEFLATE inflater used by book_open().
Definition book.h:656
ra8_err_t book_chunked_validate_strict(book_chunked_t *rd, uint8_t *chunk, uint32_t chunk_cap, uint8_t *scratch, uint32_t scratch_cap, book_header_t *out_header)
Strictly validate the complete flat blob behind an open RBKC reader.
ra8_err_t book_chunked_read(void *ctx, uint64_t offset, uint8_t *buf, uint32_t len)
Serve one chunk-aligned read of the inflated flat blob.
ra8_err_t book_chunked_open(book_chunked_t *rd, ra8_vsource_read_fn file_read, void *file_ctx, uint64_t file_len, book_inflate_fn inflate, uint64_t *table_buf, uint32_t table_cap_entries, uint8_t *staging, uint32_t staging_cap)
Open a chunked .rabook container for demand-paged chunk reads.
Strict, zero-allocation validation of a streamed RABOOK1 flat blob.
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
Virtual-memory object sources – the page-cache storage seam (Layer 1, #147).
ra8_err_t(* ra8_vsource_read_fn)(void *ctx, uint64_t offset, uint8_t *buf, uint32_t len)
Read len bytes at offset from a paged object's backing.
Definition ra8_vsource.h:79
One open chunked .rabook file: parsed geometry + caller storage.
uint64_t inflated_total
Served flat-blob length.
ra8_vsource_read_fn file_read
Container byte reader.
uint8_t * staging
Compressed-byte staging.
book_inflate_fn inflate_cb
zlib decompressor.
const uint64_t * table
Chunk offsets.
void * file_ctx
Reader context.
uint32_t chunk_count
Chunk count.
uint32_t table_cap_entries
Table entry capacity.
uint32_t chunk_bytes
Inflated bytes per chunk.
uint64_t payload_off
First stream file offset.
uint32_t staging_cap
Staging byte capacity.
Fixed 100-byte prologue describing every table and pool in the blob.
Definition book.h:246