summaryrefslogtreecommitdiffstats
path: root/src/isa-l/igzip/encode_df.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/isa-l/igzip/encode_df.h')
-rw-r--r--src/isa-l/igzip/encode_df.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/isa-l/igzip/encode_df.h b/src/isa-l/igzip/encode_df.h
new file mode 100644
index 000000000..f3e4f754d
--- /dev/null
+++ b/src/isa-l/igzip/encode_df.h
@@ -0,0 +1,30 @@
+#ifndef ENCODE_DF_H
+#define ENCODE_DF_H
+
+#include <stdint.h>
+#include "igzip_lib.h"
+#include "huff_codes.h"
+
+/* Deflate Intermediate Compression Format */
+#define LIT_LEN_BIT_COUNT 10
+#define LIT_LEN_MASK ((1 << LIT_LEN_BIT_COUNT) - 1)
+#define DIST_LIT_BIT_COUNT 9
+#define DIST_LIT_MASK ((1 << DIST_LIT_BIT_COUNT) - 1)
+#define ICF_DIST_OFFSET LIT_LEN_BIT_COUNT
+#define NULL_DIST_SYM 30
+
+#define LEN_START ISAL_DEF_LIT_SYMBOLS
+#define LEN_OFFSET (LEN_START - ISAL_DEF_MIN_MATCH)
+#define LEN_MAX (LEN_OFFSET + ISAL_DEF_MAX_MATCH)
+#define LIT_START (NULL_DIST_SYM + 1)
+#define ICF_CODE_LEN 32
+
+struct deflate_icf {
+ uint32_t lit_len:LIT_LEN_BIT_COUNT;
+ uint32_t lit_dist:DIST_LIT_BIT_COUNT;
+ uint32_t dist_extra:ICF_CODE_LEN - DIST_LIT_BIT_COUNT - ICF_DIST_OFFSET;
+};
+
+struct deflate_icf *encode_deflate_icf(struct deflate_icf *next_in, struct deflate_icf *end_in,
+ struct BitBuf2 *bb, struct hufftables_icf * hufftables);
+#endif