librfn
An ad-hoc utility library
Data Structures | Typedefs | Functions
Bitstream pack/unpack

Insert and extract data from a bitstream. More...

Data Structures

struct  rf_pack
 

Typedefs

typedef struct rf_pack rf_pack_t
 

Functions

void rf_pack_init (rf_pack_t *pack, void *p, unsigned int sz)
 
int rf_pack_remaining (rf_pack_t *pack)
 
void rf_pack_bytes (rf_pack_t *pack, void *p, unsigned int sz)
 
void rf_pack_char (rf_pack_t *pack, char c)
 
void rf_pack_s8 (rf_pack_t *pack, int8_t s8)
 
void rf_pack_u8 (rf_pack_t *pack, int16_t u8)
 
void rf_pack_s16be (rf_pack_t *pack, int16_t s16)
 
void rf_pack_s16le (rf_pack_t *pack, int16_t s16)
 
void rf_pack_u16be (rf_pack_t *pack, uint16_t u16)
 
void rf_pack_u16le (rf_pack_t *pack, uint16_t u16)
 
void rf_pack_s32be (rf_pack_t *pack, int32_t s32)
 
void rf_pack_s32le (rf_pack_t *pack, int32_t s32)
 
void rf_pack_u32be (rf_pack_t *pack, uint32_t u32)
 
void rf_pack_u32le (rf_pack_t *pack, uint32_t u32)
 
void rf_unpack_bytes (rf_pack_t *pack, void *p, unsigned int sz)
 
char rf_unpack_char (rf_pack_t *pack)
 
int8_t rf_unpack_s8 (rf_pack_t *pack)
 
uint8_t rf_unpack_u8 (rf_pack_t *pack)
 
int16_t rf_unpack_s16be (rf_pack_t *pack)
 
int16_t rf_unpack_s16le (rf_pack_t *pack)
 
uint16_t rf_unpack_u16be (rf_pack_t *pack)
 
uint16_t rf_unpack_u16le (rf_pack_t *pack)
 
int32_t rf_unpack_s32be (rf_pack_t *pack)
 
int32_t rf_unpack_s32le (rf_pack_t *pack)
 
uint32_t rf_unpack_u32be (rf_pack_t *pack)
 
uint32_t rf_unpack_u32le (rf_pack_t *pack)
 

Detailed Description

Insert and extract data from a bitstream.

Todo:
At present the smallest unit of data that can be packed/unpacked is a byte. This makes this code insufficient for data compression.

Typedef Documentation

typedef struct rf_pack rf_pack_t

Function Documentation

void rf_pack_bytes ( rf_pack_t pack,
void *  p,
unsigned int  sz 
)

Definition at line 38 of file pack.c.

void rf_pack_char ( rf_pack_t pack,
char  c 
)
void rf_pack_init ( rf_pack_t pack,
void *  p,
unsigned int  sz 
)

Definition at line 21 of file pack.c.

int rf_pack_remaining ( rf_pack_t pack)

Definition at line 28 of file pack.c.

void rf_pack_s16be ( rf_pack_t pack,
int16_t  s16 
)
void rf_pack_s16le ( rf_pack_t pack,
int16_t  s16 
)

Definition at line 52 of file pack.c.

void rf_pack_s32be ( rf_pack_t pack,
int32_t  s32 
)
void rf_pack_s32le ( rf_pack_t pack,
int32_t  s32 
)

Definition at line 78 of file pack.c.

void rf_pack_s8 ( rf_pack_t pack,
int8_t  s8 
)
void rf_pack_u16be ( rf_pack_t pack,
uint16_t  u16 
)

Definition at line 60 of file pack.c.

void rf_pack_u16le ( rf_pack_t pack,
uint16_t  u16 
)

Definition at line 68 of file pack.c.

void rf_pack_u32be ( rf_pack_t pack,
uint32_t  u32 
)
void rf_pack_u32le ( rf_pack_t pack,
uint32_t  u32 
)

Definition at line 89 of file pack.c.

void rf_pack_u8 ( rf_pack_t pack,
int16_t  u8 
)
void rf_unpack_bytes ( rf_pack_t pack,
void *  p,
unsigned int  sz 
)

Definition at line 106 of file pack.c.

char rf_unpack_char ( rf_pack_t pack)

Definition at line 120 of file pack.c.

int16_t rf_unpack_s16be ( rf_pack_t pack)
int16_t rf_unpack_s16le ( rf_pack_t pack)
int32_t rf_unpack_s32be ( rf_pack_t pack)
int32_t rf_unpack_s32le ( rf_pack_t pack)
int8_t rf_unpack_s8 ( rf_pack_t pack)

Definition at line 128 of file pack.c.

uint16_t rf_unpack_u16be ( rf_pack_t pack)
uint16_t rf_unpack_u16le ( rf_pack_t pack)

Definition at line 148 of file pack.c.

uint32_t rf_unpack_u32be ( rf_pack_t pack)
uint32_t rf_unpack_u32le ( rf_pack_t pack)

Definition at line 159 of file pack.c.

uint8_t rf_unpack_u8 ( rf_pack_t pack)

Definition at line 136 of file pack.c.