ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_rar_entry_t Struct Reference

One decoded RAR block: a file member, a directory, or a skipped block. More...

#include <ra8_rar.h>

Data Fields

uint64_t data_off
 Absolute offset of the member's data area.
uint64_t pack_size
 Packed (stored/compressed) data length, bytes.
uint64_t unp_size
 Unpacked length, bytes.
uint64_t next_off
 Absolute offset of the next block header.
uint16_t name_len
 Name bytes copied into the caller buffer (clamped).
uint8_t method
 ra8_rar_method_t (normalised; 0 = store).
uint8_t is_file
 1 if this block is a file member header.
uint8_t is_dir
 1 if the file member is a directory entry.

Detailed Description

One decoded RAR block: a file member, a directory, or a skipped block.

Filled by ra8_rar_next. next_off always advances strictly past the current block, so a caller can walk the archive with a bounded loop. For a file member (is_file == 1) the data area is [data_off, data_off + pack_size); a STORE member (method == k_ra8_rar_method_store) has pack_size == unp_size literal bytes.

Invariant
next_off > <block offset> for every well-formed block.
is_file == 0 implies the name buffer is left empty.
See also
ra8_rar_next()
ra8_rar_extract_stored()
Since
Version 0.1.0

Definition at line 169 of file ra8_rar.h.

Field Documentation

◆ data_off

uint64_t ra8_rar_entry_t::data_off

◆ is_dir

uint8_t ra8_rar_entry_t::is_dir

1 if the file member is a directory entry.

Definition at line 177 of file ra8_rar.h.

Referenced by internal_add_member(), internal_rar4_file(), internal_rar5_file(), internal_rar_check_stored(), priv_comic_cbr_extract(), and ra8_rar_extract().

◆ is_file

uint8_t ra8_rar_entry_t::is_file

1 if this block is a file member header.

Definition at line 176 of file ra8_rar.h.

Referenced by internal_add_member(), internal_rar4_file(), internal_rar5_file(), internal_rar_check_stored(), priv_comic_cbr_extract(), and ra8_rar_extract().

◆ method

uint8_t ra8_rar_entry_t::method

◆ name_len

uint16_t ra8_rar_entry_t::name_len

Name bytes copied into the caller buffer (clamped).

Definition at line 174 of file ra8_rar.h.

Referenced by internal_rar4_file(), internal_rar5_file(), and priv_comic_cbr_open().

◆ next_off

uint64_t ra8_rar_entry_t::next_off

Absolute offset of the next block header.

Definition at line 173 of file ra8_rar.h.

Referenced by internal_rar4_block(), internal_rar4_file(), internal_rar5_block(), and priv_comic_cbr_open().

◆ pack_size

uint64_t ra8_rar_entry_t::pack_size

Packed (stored/compressed) data length, bytes.

Definition at line 171 of file ra8_rar.h.

Referenced by internal_add_member(), internal_rar4_file(), internal_rar5_file(), priv_comic_cbr_extract(), and ra8_rar_extract().

◆ unp_size

uint64_t ra8_rar_entry_t::unp_size

The documentation for this struct was generated from the following file: