ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_rabook_container.h
Go to the documentation of this file.
1
19#pragma once
20
21#include <stdint.h>
22
23#include "ra8_err.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
42 uint32_t offset,
43 uint8_t* dst,
44 uint32_t requested,
45 uint32_t* out_read);
46
59typedef ra8_err_t (*ra8_rabook_write_at_fn)(void* ctx,
60 uint64_t offset,
61 const uint8_t* src,
62 uint32_t requested,
63 uint32_t* out_written);
64
66typedef struct {
67 uint8_t* input;
68 uint8_t* compressed;
69 void* compressor;
70 uint64_t* offsets;
71 uint32_t input_cap;
72 uint32_t compressed_cap;
73 uint32_t compressor_cap;
74 uint32_t offset_cap;
76
116 void* read_ctx,
117 uint32_t flat_len,
118 uint32_t chunk_bytes,
119 ra8_rabook_write_at_fn write_at,
120 void* write_ctx,
122 uint64_t* out_len);
123
124#ifdef __cplusplus
125} /* extern "C" */
126#endif
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
ra8_err_t(* ra8_rabook_write_at_fn)(void *ctx, uint64_t offset, const uint8_t *src, uint32_t requested, uint32_t *out_written)
Write a bounded range at an absolute staging-destination offset.
ra8_err_t ra8_rabook_container_write(ra8_rabook_flat_read_fn read, void *read_ctx, uint32_t flat_len, uint32_t chunk_bytes, ra8_rabook_write_at_fn write_at, void *write_ctx, ra8_rabook_container_workspace_t *ws, uint64_t *out_len)
Stream one flat RABOOK1 blob into a chunked RBKC staging object.
ra8_err_t(* ra8_rabook_flat_read_fn)(void *ctx, uint32_t offset, uint8_t *dst, uint32_t requested, uint32_t *out_read)
Read a bounded range from the flat RABOOK1 source.
Caller-owned transient storage for one RBKC write.
uint32_t compressor_cap
Writable bytes at compressor.
uint8_t * compressed
One complete zlib stream.
uint64_t * offsets
Payload-relative offset table.
uint32_t offset_cap
Number of uint64 entries at offsets.
uint32_t input_cap
Writable bytes at input.
uint32_t compressed_cap
Writable bytes at compressed.
uint8_t * input
One uncompressed flat chunk.
void * compressor
tdefl_compressor storage, 8-byte aligned.