101dfbcc4SRoy Oursler #ifndef IGZIP_LEVEL_BUF_STRUCTS_H 201dfbcc4SRoy Oursler #define IGZIP_LEVEL_BUF_STRUCTS_H 301dfbcc4SRoy Oursler 44ae2d1beSRoy Oursler #include "igzip_lib.h" 501dfbcc4SRoy Oursler #include "huff_codes.h" 601dfbcc4SRoy Oursler #include "encode_df.h" 701dfbcc4SRoy Oursler 84ae2d1beSRoy Oursler #define MATCH_BUF_SIZE (4 * 1024) 94ae2d1beSRoy Oursler 10*8965584aSRoy Oursler struct hash8k_buf { 117a12bcb2SRoy Oursler uint16_t hash_table[IGZIP_HASH8K_HASH_SIZE]; 12fe68f02dSRoy Oursler }; 13fe68f02dSRoy Oursler 14*8965584aSRoy Oursler struct hash_hist_buf { 15*8965584aSRoy Oursler uint16_t hash_table[IGZIP_HASH_HIST_SIZE]; 16*8965584aSRoy Oursler }; 17*8965584aSRoy Oursler 187a12bcb2SRoy Oursler struct hash_map_buf { 197a12bcb2SRoy Oursler uint16_t hash_table[IGZIP_HASH_MAP_HASH_SIZE]; 204ae2d1beSRoy Oursler struct deflate_icf *matches_next; 214ae2d1beSRoy Oursler struct deflate_icf *matches_end; 224ae2d1beSRoy Oursler struct deflate_icf matches[MATCH_BUF_SIZE]; 234ae2d1beSRoy Oursler struct deflate_icf overflow[ISAL_LOOK_AHEAD]; 244ae2d1beSRoy Oursler }; 254ae2d1beSRoy Oursler 267a12bcb2SRoy Oursler #define MAX_LVL_BUF_SIZE sizeof(struct hash_map_buf) 274ae2d1beSRoy Oursler 284ae2d1beSRoy Oursler struct level_buf { 2901dfbcc4SRoy Oursler struct hufftables_icf encode_tables; 30fe68f02dSRoy Oursler struct isal_mod_hist hist; 3101dfbcc4SRoy Oursler uint32_t deflate_hdr_count; 3201dfbcc4SRoy Oursler uint32_t deflate_hdr_extra_bits; 3301dfbcc4SRoy Oursler uint8_t deflate_hdr[ISAL_DEF_MAX_HDR_SIZE]; 3401dfbcc4SRoy Oursler struct deflate_icf *icf_buf_next; 3501dfbcc4SRoy Oursler uint64_t icf_buf_avail_out; 364ae2d1beSRoy Oursler struct deflate_icf *icf_buf_start; 37fe68f02dSRoy Oursler union { 38*8965584aSRoy Oursler struct hash8k_buf hash8k; 39*8965584aSRoy Oursler struct hash_hist_buf hash_hist; 407a12bcb2SRoy Oursler struct hash_map_buf hash_map; 417a12bcb2SRoy Oursler 42*8965584aSRoy Oursler struct hash8k_buf lvl1; 43*8965584aSRoy Oursler struct hash_hist_buf lvl2; 44*8965584aSRoy Oursler struct hash_map_buf lvl3; 4501dfbcc4SRoy Oursler }; 46fe68f02dSRoy Oursler }; 474ae2d1beSRoy Oursler 4801dfbcc4SRoy Oursler #endif 49