|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
A book data source: resident (zero-copy) or paged (demand-fetched). More...
#include <book_paged.h>
Data Fields | |
| const uint8_t * | base |
| Resident blob base, or NULL in paged mode. | |
| ra8_vmem_t * | vm |
| Paged page cache, or NULL in resident mode. | |
| uint32_t | object_id |
| Paged: the book's ::ra8_vsource object id. | |
| uint32_t | frame_bytes |
| Paged: ::ra8_vmem frame size, for slice math. | |
| uint32_t | size |
| Total blob length in bytes. | |
| book_header_t | hdr |
| Resident copy of the blob header. | |
A book data source: resident (zero-copy) or paged (demand-fetched).
Exactly one mode is active. Resident mode sets base (the validated blob) with vm NULL: reads are base + off, identical to the book.h accessors. Paged mode sets vm (an initialised ::ra8_vmem fronting the book's ::ra8_vsource object) with base NULL: reads fault frames in through the cache and copy the requested slice out. The 100-byte header is copied into hdr at bind time in both modes so header fields are always available without a fault. Populate via book_src_resident / book_src_paged; treat the fields as read-only afterwards.
Definition at line 69 of file book_paged.h.
| const uint8_t* book_src_t::base |
Resident blob base, or NULL in paged mode.
Definition at line 70 of file book_paged.h.
Referenced by book_chapter_text_src(), book_src_paged(), book_src_read(), and book_src_resident().
| uint32_t book_src_t::frame_bytes |
Paged: ::ra8_vmem frame size, for slice math.
Definition at line 73 of file book_paged.h.
Referenced by book_src_paged(), book_src_resident(), and internal_book_src_read_paged().
| book_header_t book_src_t::hdr |
Resident copy of the blob header.
Definition at line 75 of file book_paged.h.
Referenced by book_chapter_text_src(), book_src_image(), book_src_paged(), book_src_prefetch_chapter(), book_src_resident(), internal_book_image_row(), internal_book_image_row_gray8(), internal_paged_node(), internal_paged_visit_node(), sh_decode_cover(), sh_rabook_label(), and sh_src_string().
| uint32_t book_src_t::object_id |
Paged: the book's ::ra8_vsource object id.
Definition at line 72 of file book_paged.h.
Referenced by book_src_paged(), book_src_prefetch_chapter(), book_src_resident(), and internal_book_src_read_paged().
| uint32_t book_src_t::size |
Total blob length in bytes.
Definition at line 74 of file book_paged.h.
Referenced by book_src_paged(), book_src_read(), book_src_resident(), internal_book_image_row(), internal_book_image_row_gray8(), internal_paged_emit_run(), and internal_paged_str_short().
| ra8_vmem_t* book_src_t::vm |
Paged page cache, or NULL in resident mode.
Definition at line 71 of file book_paged.h.
Referenced by book_src_paged(), book_src_prefetch_chapter(), book_src_read(), book_src_resident(), internal_book_src_read_paged(), and sh_rabook_label().