File: igzip_level_buf_structs.h

package info (click to toggle)
libisal 2.31.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,780 kB
  • sloc: asm: 44,577; ansic: 42,149; sh: 915; makefile: 619; pascal: 345
file content (48 lines) | stat: -rw-r--r-- 1,303 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef IGZIP_LEVEL_BUF_STRUCTS_H
#define IGZIP_LEVEL_BUF_STRUCTS_H

#include "igzip_lib.h"
#include "huff_codes.h"
#include "encode_df.h"

#define MATCH_BUF_SIZE (4 * 1024)

struct hash8k_buf {
        uint16_t hash_table[IGZIP_HASH8K_HASH_SIZE];
};

struct hash_hist_buf {
        uint16_t hash_table[IGZIP_HASH_HIST_SIZE];
};

struct hash_map_buf {
        uint16_t hash_table[IGZIP_HASH_MAP_HASH_SIZE];
        struct deflate_icf *matches_next;
        struct deflate_icf *matches_end;
        struct deflate_icf matches[MATCH_BUF_SIZE];
        struct deflate_icf overflow[ISAL_LOOK_AHEAD];
};

#define MAX_LVL_BUF_SIZE sizeof(struct hash_map_buf)

struct level_buf {
        struct hufftables_icf encode_tables;
        struct isal_mod_hist hist;
        uint32_t deflate_hdr_count;
        uint32_t deflate_hdr_extra_bits;
        uint8_t deflate_hdr[ISAL_DEF_MAX_HDR_SIZE];
        struct deflate_icf *icf_buf_next;
        uint64_t icf_buf_avail_out;
        struct deflate_icf *icf_buf_start;
        union {
                struct hash8k_buf hash8k;
                struct hash_hist_buf hash_hist;
                struct hash_map_buf hash_map;

                struct hash8k_buf lvl1;
                struct hash_hist_buf lvl2;
                struct hash_map_buf lvl3;
        };
};

#endif