X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=include%2Fwimlib%2Flzx.h;h=50d80f620de6333510004947cefc2c42eb77c9a7;hb=e3a7c6c725964662f4ad1fcfe21d2da742499b8a;hp=f72bfb1bc16921ec6a23ce285fa7b0b9424509f4;hpb=157d002da341c9109c5c065893ae82c6dbf5d4e8;p=wimlib diff --git a/include/wimlib/lzx.h b/include/wimlib/lzx.h index f72bfb1b..50d80f62 100644 --- a/include/wimlib/lzx.h +++ b/include/wimlib/lzx.h @@ -71,7 +71,7 @@ #define LZX_ALIGNEDCODE_NUM_SYMBOLS 8 #define LZX_ALIGNEDCODE_TABLEBITS 7 -#define LZX_ALIGNEDCODE_ELEMENT_SIZE 3 +#define LZX_ALIGNEDCODE_ELEMENT_SIZE 3 /* Maximum allowed length of Huffman codewords. */ #define LZX_MAX_MAIN_CODEWORD_LEN 16 @@ -95,7 +95,7 @@ extern const u8 lzx_extra_bits[LZX_MAX_POSITION_SLOTS]; #endif -/* Given the number of a LZX position slot, return the number of extra bits that +/* Given the number of an LZX position slot, return the number of extra bits that * are needed to encode the match offset. */ static inline unsigned lzx_get_num_extra_bits(unsigned position_slot) @@ -122,7 +122,7 @@ extern const u32 lzx_position_base[LZX_MAX_POSITION_SLOTS]; * the formatted offset without actually looking at the array. */ static inline unsigned -lzx_get_position_slot_raw(unsigned formatted_offset) +lzx_get_position_slot_raw(u32 formatted_offset) { if (formatted_offset >= 196608) { return (formatted_offset >> 17) + 34; @@ -134,7 +134,7 @@ lzx_get_position_slot_raw(unsigned formatted_offset) } } -extern bool lzx_window_size_valid(u32 window_size); +extern bool lzx_window_size_valid(size_t window_size); extern unsigned lzx_get_num_main_syms(u32 window_size); #define LZX_NUM_RECENT_OFFSETS 3 @@ -148,6 +148,8 @@ struct lzx_lru_queue { * as (n + LZX_OFFSET_OFFSET). */ #define LZX_OFFSET_OFFSET (LZX_NUM_RECENT_OFFSETS - 1) +/* Initialize the LZX least-recently-used match offset queue at the beginning of + * a new window for either decompression or compression. */ static inline void lzx_lru_queue_init(struct lzx_lru_queue *queue) { @@ -155,4 +157,10 @@ lzx_lru_queue_init(struct lzx_lru_queue *queue) queue->R[i] = 1; } +extern void +lzx_do_e8_preprocessing(u8 *data, s32 size); + +extern void +lzx_undo_e8_preprocessing(u8 *data, s32 size); + #endif /* _WIMLIB_LZX_H */