libdragon
Loading...
Searching...
No Matches
Data Structures | Macros | Functions
shrinkler_dec.c File Reference

Data Structures

struct  shrinkler_asm_state_t
 Decompressor state (for assembly) More...
 
struct  shrinkler_ctx_t
 Decompressor state (for C) More...
 

Macros

#define ADJUST_SHIFT   4
 Shift amount for context probability adjustment.
 
#define NUM_SINGLE_CONTEXTS   1
 Number of single contexts.
 
#define NUM_CONTEXT_GROUPS   4
 Number of context groups

 
#define CONTEXT_GROUP_SIZE   256
 Size of each context group.
 
#define NUM_CONTEXTS   (NUM_SINGLE_CONTEXTS + NUM_CONTEXT_GROUPS * CONTEXT_GROUP_SIZE)
 Total number of contexts.
 
#define CONTEXT_KIND   0
 Context kind index.
 
#define CONTEXT_REPEATED   -1
 Context repeated index.
 
#define CONTEXT_GROUP_LIT   0
 Context group for literals.
 
#define CONTEXT_GROUP_OFFSET   2
 Context group for offsets.
 
#define CONTEXT_GROUP_LENGTH   3
 Context group for lengths.
 

Functions

void * decompress_shrinkler_full (const char *fn, int fd, size_t cmp_size, size_t size)
 Decompress a full Shrinkler-compressed file into a buffer.
 

Detailed Description

Author
Giovanni Bajo giova.nosp@m.nnib.nosp@m.ajo@g.nosp@m.mail.nosp@m..com

Data Structure Documentation

◆ shrinkler_asm_state_t

struct shrinkler_asm_state_t

Decompressor state (for assembly)

Data Fields
uint16_t contexts[NUM_CONTEXTS] Probability contexts.

◆ shrinkler_ctx_t

struct shrinkler_ctx_t

Decompressor state (for C)

Data Fields
uint16_t contexts[NUM_CONTEXTS] Probability contexts.
unsigned intervalsize Current interval size.
uint64_t intervalvalue Current interval value.
uint8_t * src Pointer to the input data.
int bits_left Number of bits left in the interval.

Function Documentation

◆ decompress_shrinkler_full()

void * decompress_shrinkler_full ( const char *  fn,
int  fd,
size_t  cmp_size,
size_t  size 
)

Decompress a full Shrinkler-compressed file into a buffer.

Parameters
fnFilename of the file to decompress
fdFile descriptor to read compressed data from.
cmp_sizeSize of the compressed data.
sizeSize of the decompressed data.
Returns
Newly-allocated buffer with decompressed contents