22 const uint8_t* source,
26 if (written ==
nullptr) {
30 if (memory ==
nullptr) {
33 if (source ==
nullptr) {
39 if (requested > ((uint64_t)memory->
capacity - offset)) {
42 if (requested != 0U) {
43 (void)
memcpy(&memory->
bytes[(
size_t)offset], source, requested);
45 const uint32_t end = (uint32_t)offset + requested;
46 if (end > memory->
length) {
59 if (out_read ==
nullptr) {
63 if (context ==
nullptr) {
66 if (destination ==
nullptr) {
70 if (offset > memory->
length) {
73 if (requested > (memory->
length - offset)) {
76 if (requested != 0U) {
77 (void)
memcpy(destination, &memory->
bytes[offset], requested);
79 *out_read = requested;
103 const uint8_t* source,
105 uint32_t* out_written)
128 const uint8_t* source,
130 uint32_t* out_written)
132 if (context ==
nullptr) {
163 const uint8_t* source,
165 uint32_t* out_written)
195 uint64_t* packed_size)
197 if (packed_size ==
nullptr) {
201 if (source ==
nullptr) {
204 if (config ==
nullptr) {
207 if (workspace ==
nullptr) {
210 if (workspace->
image ==
nullptr) {
213 if (workspace->
flat ==
nullptr) {
216 if (workspace->
packed ==
nullptr) {
219 if (source_size == 0U) {
238 uint64_t* packed_size)
259 uint32_t flat_size = 0U;
265 if (flat_size != flat.
length) {
280 if (*packed_size != packed.
length) {
Annotation-attribute framework macros for ra8-firmware.
#define RA8_PRIV
Module-private helper: shared across TUs but only inside one library.
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).
@ k_ra8_err_validation_failed
Validation rule failed (caller-supplied invariant not satisfied).
@ k_ra8_ok
Success – operation completed with all postconditions satisfied.
@ k_ra8_err_null_ptr
Pointer was NULL where a valid pointer was required.
@ k_ra8_err_invalid_size
Invalid size parameter (too large, too small, or misaligned).
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
void * memcpy(void *dst, const void *src, size_t n)
Copy memory area between non-overlapping regions.
ra8_err_t ra8_rabook_comic_init(ra8_rabook_comic_t *comic, const ra8_rabook_comic_workspace_t *workspace, ra8_rabook_image_read_fn image_read, ra8_rabook_comic_write_at_fn image_write, void *image_ctx, uint16_t max_image_edge, uint8_t pixel_format)
Initialize one bounded streaming comic builder.
ra8_err_t ra8_rabook_comic_add_page(ra8_rabook_comic_t *comic, const char *page_id, const uint8_t *source, size_t source_size)
Normalize and append one source image as one comic chapter.
ra8_err_t ra8_rabook_comic_finish(ra8_rabook_comic_t *comic, const ra8_rabook_comic_metadata_t *metadata, ra8_rabook_write_fn write, void *write_ctx, uint32_t *out_len)
Finalize the completed comic as one canonical flat RABOOK1 stream.
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.
Mutable state for one image-sequence-to-RABOOK build.