xref: /isa-l/igzip/igzip_level_buf_structs.h (revision 55fbfabfc60f1002bc8133b730a59f6abd22cfce)
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