xref: /dpdk/drivers/compress/octeontx/include/zip_regs.h (revision 938f3f5f9048a6f7e48ad4d120ec60d7d37ac4d2)
143e610bbSSunila Sahu /* SPDX-License-Identifier: BSD-3-Clause
243e610bbSSunila Sahu  * Copyright(c) 2018 Cavium, Inc
343e610bbSSunila Sahu  */
443e610bbSSunila Sahu 
543e610bbSSunila Sahu #ifndef _RTE_OCTEONTX_ZIP_REGS_H_
643e610bbSSunila Sahu #define _RTE_OCTEONTX_ZIP_REGS_H_
743e610bbSSunila Sahu 
843e610bbSSunila Sahu 
943e610bbSSunila Sahu /**
1043e610bbSSunila Sahu  * Enumeration zip_cc
1143e610bbSSunila Sahu  *
1243e610bbSSunila Sahu  * ZIP compression coding Enumeration
1343e610bbSSunila Sahu  * Enumerates ZIP_INST_S[CC].
1443e610bbSSunila Sahu  */
1597573583SFerruh Yigit enum zip_cc {
1643e610bbSSunila Sahu 	ZIP_CC_DEFAULT = 0,
1743e610bbSSunila Sahu 	ZIP_CC_DYN_HUFF,
1843e610bbSSunila Sahu 	ZIP_CC_FIXED_HUFF,
1943e610bbSSunila Sahu 	ZIP_CC_LZS
2097573583SFerruh Yigit };
2143e610bbSSunila Sahu 
2243e610bbSSunila Sahu /**
2343e610bbSSunila Sahu  * Register (NCB) zip_vq#_ena
2443e610bbSSunila Sahu  *
2543e610bbSSunila Sahu  * ZIP VF Queue Enable Register
2643e610bbSSunila Sahu  * If a queue is disabled, ZIP CTL stops fetching instructions from the queue.
2743e610bbSSunila Sahu  */
2843e610bbSSunila Sahu typedef union {
2943e610bbSSunila Sahu 	uint64_t u;
3043e610bbSSunila Sahu 	struct zip_vqx_ena_s {
3143e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 0 - Big Endian */
3243e610bbSSunila Sahu 		uint64_t reserved_1_63         : 63;
3343e610bbSSunila Sahu 		uint64_t ena                   : 1;
3443e610bbSSunila Sahu #else /* Word 0 - Little Endian */
3543e610bbSSunila Sahu 		uint64_t ena                   : 1;
3643e610bbSSunila Sahu 		uint64_t reserved_1_63         : 63;
3743e610bbSSunila Sahu #endif /* Word 0 - End */
3843e610bbSSunila Sahu 	} s;
3943e610bbSSunila Sahu } zip_vqx_ena_t;
4043e610bbSSunila Sahu 
4143e610bbSSunila Sahu /**
4243e610bbSSunila Sahu  * Register (NCB) zip_vq#_sbuf_addr
4343e610bbSSunila Sahu  *
4443e610bbSSunila Sahu  * ZIP VF Queue Starting Buffer Address Registers
4543e610bbSSunila Sahu  * These registers set the buffer parameters for the instruction queues.
4643e610bbSSunila Sahu  * When quiescent (i.e.
4743e610bbSSunila Sahu  * outstanding doorbell count is 0), it is safe to rewrite this register
4843e610bbSSunila Sahu  * to effectively reset the
4943e610bbSSunila Sahu  * command buffer state machine.
5043e610bbSSunila Sahu  * These registers must be programmed after software programs the
5143e610bbSSunila Sahu  * corresponding ZIP_QUE()_SBUF_CTL.
5243e610bbSSunila Sahu  */
5343e610bbSSunila Sahu typedef union {
5443e610bbSSunila Sahu 	uint64_t u;
5543e610bbSSunila Sahu 	struct zip_vqx_sbuf_addr_s {
5643e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 0 - Big Endian */
5743e610bbSSunila Sahu 		uint64_t reserved_49_63        : 15;
5843e610bbSSunila Sahu 		uint64_t ptr                   : 42;
5943e610bbSSunila Sahu 		uint64_t off                   : 7;
6043e610bbSSunila Sahu #else /* Word 0 - Little Endian */
6143e610bbSSunila Sahu 		uint64_t off                   : 7;
6243e610bbSSunila Sahu 		uint64_t ptr                   : 42;
6343e610bbSSunila Sahu 		uint64_t reserved_49_63        : 15;
6443e610bbSSunila Sahu #endif /* Word 0 - End */
6543e610bbSSunila Sahu 	} s;
66a80ea5c0SMahipal Challa 
67a80ea5c0SMahipal Challa 	struct zip_vqx_sbuf_addr_s9x {
68a80ea5c0SMahipal Challa #if defined(__BIG_ENDIAN_BITFIELD) /* Word 0 - Big Endian */
69a80ea5c0SMahipal Challa 		uint64_t reserved_53_63        : 11;
70a80ea5c0SMahipal Challa 		uint64_t ptr                   : 46;
71a80ea5c0SMahipal Challa 		uint64_t off                   : 7;
72a80ea5c0SMahipal Challa #else /* Word 0 - Little Endian */
73a80ea5c0SMahipal Challa 		uint64_t off                   : 7;
74a80ea5c0SMahipal Challa 		uint64_t ptr                   : 46;
75a80ea5c0SMahipal Challa 		uint64_t reserved_53_63        : 11;
76a80ea5c0SMahipal Challa #endif /* Word 0 - End */
77a80ea5c0SMahipal Challa 	} s9x;
7843e610bbSSunila Sahu } zip_vqx_sbuf_addr_t;
7943e610bbSSunila Sahu 
8043e610bbSSunila Sahu /**
8143e610bbSSunila Sahu  * Register (NCB) zip_que#_doorbell
8243e610bbSSunila Sahu  *
8343e610bbSSunila Sahu  * ZIP Queue Doorbell Registers
8443e610bbSSunila Sahu  * Doorbells for the ZIP instruction queues.
8543e610bbSSunila Sahu  */
8643e610bbSSunila Sahu typedef union {
8743e610bbSSunila Sahu 	uint64_t u;
8843e610bbSSunila Sahu 	struct zip_quex_doorbell_s {
8943e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 0 - Big Endian */
9043e610bbSSunila Sahu 		uint64_t reserved_20_63        : 44;
9143e610bbSSunila Sahu 		uint64_t dbell_cnt             : 20;
9243e610bbSSunila Sahu #else /* Word 0 - Little Endian */
9343e610bbSSunila Sahu 		uint64_t dbell_cnt             : 20;
9443e610bbSSunila Sahu 		uint64_t reserved_20_63        : 44;
9543e610bbSSunila Sahu #endif /* Word 0 - End */
9643e610bbSSunila Sahu 	} s;
9743e610bbSSunila Sahu } zip_quex_doorbell_t;
9843e610bbSSunila Sahu 
9943e610bbSSunila Sahu /**
10043e610bbSSunila Sahu  * Structure zip_nptr_s
10143e610bbSSunila Sahu  *
10243e610bbSSunila Sahu  * ZIP Instruction Next-Chunk-Buffer Pointer (NPTR) Structure
10343e610bbSSunila Sahu  * This structure is used to chain all the ZIP instruction buffers
10443e610bbSSunila Sahu  * together. ZIP instruction buffers are managed
10543e610bbSSunila Sahu  * (allocated and released) by software.
10643e610bbSSunila Sahu  */
10743e610bbSSunila Sahu union zip_nptr_s {
10843e610bbSSunila Sahu 	uint64_t u;
10943e610bbSSunila Sahu 	struct zip_nptr_s_s {
11043e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 0 - Big Endian */
11143e610bbSSunila Sahu 		uint64_t addr                  : 64;
11243e610bbSSunila Sahu #else /* Word 0 - Little Endian */
11343e610bbSSunila Sahu 		uint64_t addr                  : 64;
11443e610bbSSunila Sahu #endif /* Word 0 - End */
11543e610bbSSunila Sahu 	} s;
11643e610bbSSunila Sahu };
11743e610bbSSunila Sahu 
11843e610bbSSunila Sahu /**
11943e610bbSSunila Sahu  * generic ptr address
12043e610bbSSunila Sahu  */
12143e610bbSSunila Sahu union zip_zptr_addr_s {
12243e610bbSSunila Sahu 	/** This field can be used to set/clear all bits, or do bitwise
12343e610bbSSunila Sahu 	 * operations over the entire structure.
12443e610bbSSunila Sahu 	 */
12543e610bbSSunila Sahu 	uint64_t u;
12643e610bbSSunila Sahu 	/** generic ptr address */
12743e610bbSSunila Sahu 	struct {
12843e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 0 - Big Endian */
12943e610bbSSunila Sahu 		uint64_t addr : 64;
13043e610bbSSunila Sahu #else /* Word 0 - Little Endian */
13143e610bbSSunila Sahu 		uint64_t addr : 64;
13243e610bbSSunila Sahu #endif /* Word 0 - End */
13343e610bbSSunila Sahu 	} s;
13443e610bbSSunila Sahu };
13543e610bbSSunila Sahu 
13643e610bbSSunila Sahu /**
13743e610bbSSunila Sahu  * generic ptr ctl
13843e610bbSSunila Sahu  */
13943e610bbSSunila Sahu union zip_zptr_ctl_s {
14043e610bbSSunila Sahu 	/** This field can be used to set/clear all bits, or do bitwise
14143e610bbSSunila Sahu 	 * operations over the entire structure.
14243e610bbSSunila Sahu 	 */
14343e610bbSSunila Sahu 	uint64_t u;
14443e610bbSSunila Sahu 	/** generic ptr ctl */
14543e610bbSSunila Sahu 	struct {
14643e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 1 - Big Endian */
14743e610bbSSunila Sahu 		uint64_t reserved_112_127      : 16;
14843e610bbSSunila Sahu 		uint64_t length                : 16;
14943e610bbSSunila Sahu 		uint64_t reserved_67_95        : 29;
15043e610bbSSunila Sahu 		uint64_t fw                    : 1;
15143e610bbSSunila Sahu 		uint64_t nc                    : 1;
15243e610bbSSunila Sahu 		uint64_t data_be               : 1;
15343e610bbSSunila Sahu #else /* Word 1 - Little Endian */
15443e610bbSSunila Sahu 		uint64_t data_be               : 1;
15543e610bbSSunila Sahu 		uint64_t nc                    : 1;
15643e610bbSSunila Sahu 		uint64_t fw                    : 1;
15743e610bbSSunila Sahu 		uint64_t reserved_67_95        : 29;
15843e610bbSSunila Sahu 		uint64_t length                : 16;
15943e610bbSSunila Sahu 		uint64_t reserved_112_127      : 16;
16043e610bbSSunila Sahu #endif /* Word 1 - End */
16143e610bbSSunila Sahu 	} s;
16243e610bbSSunila Sahu 
16343e610bbSSunila Sahu };
16443e610bbSSunila Sahu 
16543e610bbSSunila Sahu /**
16643e610bbSSunila Sahu  * Structure zip_inst_s
16743e610bbSSunila Sahu  *
16843e610bbSSunila Sahu  * ZIP Instruction Structure
16943e610bbSSunila Sahu  * Each ZIP instruction has 16 words (they are called IWORD0 to IWORD15
17043e610bbSSunila Sahu  * within the structure).
17143e610bbSSunila Sahu  */
17243e610bbSSunila Sahu union zip_inst_s {
17343e610bbSSunila Sahu 	/** This field can be used to set/clear all bits, or do bitwise
17443e610bbSSunila Sahu 	 * operations over the entire structure.
17543e610bbSSunila Sahu 	 */
17643e610bbSSunila Sahu 	uint64_t u[16];
17743e610bbSSunila Sahu 	/** ZIP Instruction Structure */
17843e610bbSSunila Sahu 	struct zip_inst_s_s {
17943e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 0 - Big Endian */
18043e610bbSSunila Sahu 		/** Done interrupt */
18143e610bbSSunila Sahu 		uint64_t doneint               : 1;
18243e610bbSSunila Sahu 		/** reserved */
18343e610bbSSunila Sahu 		uint64_t reserved_56_62        : 7;
18443e610bbSSunila Sahu 		/**  Total output length */
18543e610bbSSunila Sahu 		uint64_t totaloutputlength     : 24;
18643e610bbSSunila Sahu 		/** reserved */
18743e610bbSSunila Sahu 		uint64_t reserved_27_31        : 5;
18843e610bbSSunila Sahu 		/** EXNUM */
18943e610bbSSunila Sahu 		uint64_t exn                   : 3;
19043e610bbSSunila Sahu 		/**  HASH IV */
19143e610bbSSunila Sahu 		uint64_t iv                    : 1;
19243e610bbSSunila Sahu 		/** EXBITS */
19343e610bbSSunila Sahu 		uint64_t exbits                : 7;
19443e610bbSSunila Sahu 		/** Hash more-in-file */
19543e610bbSSunila Sahu 		uint64_t hmif                  : 1;
19643e610bbSSunila Sahu 		/** Hash Algorithm and enable */
19743e610bbSSunila Sahu 		uint64_t halg                  : 3;
19843e610bbSSunila Sahu 		/** Sync flush*/
19943e610bbSSunila Sahu 		uint64_t sf                    : 1;
20043e610bbSSunila Sahu 		/** Compression speed/storage */
20143e610bbSSunila Sahu 		uint64_t ss                    : 2;
20243e610bbSSunila Sahu 		/** Compression coding */
20343e610bbSSunila Sahu 		uint64_t cc                    : 2;
20443e610bbSSunila Sahu 		/** End of input data */
20543e610bbSSunila Sahu 		uint64_t ef                    : 1;
20643e610bbSSunila Sahu 		/** Beginning of file */
20743e610bbSSunila Sahu 		uint64_t bf                    : 1;
20843e610bbSSunila Sahu 		/** Comp/decomp operation */
20943e610bbSSunila Sahu 		uint64_t op                    : 2;
2107be78d02SJosh Soref 		/** Data scatter */
21143e610bbSSunila Sahu 		uint64_t ds                    : 1;
21243e610bbSSunila Sahu 		/** Data gather */
21343e610bbSSunila Sahu 		uint64_t dg                    : 1;
21443e610bbSSunila Sahu 		/** History gather */
21543e610bbSSunila Sahu 		uint64_t hg                    : 1;
21643e610bbSSunila Sahu #else /* Word 0 - Little Endian */
21743e610bbSSunila Sahu 		uint64_t hg                    : 1;
21843e610bbSSunila Sahu 		uint64_t dg                    : 1;
21943e610bbSSunila Sahu 		uint64_t ds                    : 1;
22043e610bbSSunila Sahu 		uint64_t op                    : 2;
22143e610bbSSunila Sahu 		uint64_t bf                    : 1;
22243e610bbSSunila Sahu 		uint64_t ef                    : 1;
22343e610bbSSunila Sahu 		uint64_t cc                    : 2;
22443e610bbSSunila Sahu 		uint64_t ss                    : 2;
22543e610bbSSunila Sahu 		uint64_t sf                    : 1;
22643e610bbSSunila Sahu 		uint64_t halg                  : 3;
22743e610bbSSunila Sahu 		uint64_t hmif                  : 1;
22843e610bbSSunila Sahu 		uint64_t exbits                : 7;
22943e610bbSSunila Sahu 		uint64_t iv                    : 1;
23043e610bbSSunila Sahu 		uint64_t exn                   : 3;
23143e610bbSSunila Sahu 		uint64_t reserved_27_31        : 5;
23243e610bbSSunila Sahu 		uint64_t totaloutputlength     : 24;
23343e610bbSSunila Sahu 		uint64_t reserved_56_62        : 7;
23443e610bbSSunila Sahu 		uint64_t doneint               : 1;
23543e610bbSSunila Sahu 
23643e610bbSSunila Sahu #endif /* Word 0 - End */
23743e610bbSSunila Sahu 
23843e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 1 - Big Endian */
23943e610bbSSunila Sahu 		/** History length */
24043e610bbSSunila Sahu 		uint64_t historylength         : 16;
24143e610bbSSunila Sahu 		/** reserved */
24243e610bbSSunila Sahu 		uint64_t reserved_96_111       : 16;
24343e610bbSSunila Sahu 		/** adler/crc32 checksum*/
24443e610bbSSunila Sahu 		uint64_t adlercrc32            : 32;
24543e610bbSSunila Sahu #else /* Word 1 - Little Endian */
24643e610bbSSunila Sahu 		uint64_t adlercrc32            : 32;
24743e610bbSSunila Sahu 		uint64_t reserved_96_111       : 16;
24843e610bbSSunila Sahu 		uint64_t historylength         : 16;
24943e610bbSSunila Sahu #endif /* Word 1 - End */
25043e610bbSSunila Sahu 
25143e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 2 - Big Endian */
25243e610bbSSunila Sahu 		/** Decompression Context Pointer Address */
25343e610bbSSunila Sahu 		union zip_zptr_addr_s  ctx_ptr_addr;
25443e610bbSSunila Sahu #else /* Word 2 - Little Endian */
25543e610bbSSunila Sahu 		union zip_zptr_addr_s  ctx_ptr_addr;
25643e610bbSSunila Sahu #endif /* Word 2 - End */
25743e610bbSSunila Sahu 
25843e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD)
25943e610bbSSunila Sahu 		/** Decompression Context Pointer Control */
26043e610bbSSunila Sahu 		union zip_zptr_ctl_s   ctx_ptr_ctl;
26143e610bbSSunila Sahu #else /* Word 3 - Little Endian */
26243e610bbSSunila Sahu 		union zip_zptr_ctl_s   ctx_ptr_ctl;
26343e610bbSSunila Sahu #endif /* Word 3 - End */
26443e610bbSSunila Sahu 
26543e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD)
26643e610bbSSunila Sahu 		/** Decompression history pointer address */
26743e610bbSSunila Sahu 		union zip_zptr_addr_s  his_ptr_addr;
26843e610bbSSunila Sahu #else /* Word 4 - Little Endian */
26943e610bbSSunila Sahu 		union zip_zptr_addr_s  his_ptr_addr;
27043e610bbSSunila Sahu #endif /* Word 4 - End */
27143e610bbSSunila Sahu 
27243e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD)
27343e610bbSSunila Sahu 		/** Decompression history pointer control */
27443e610bbSSunila Sahu 		union zip_zptr_ctl_s   his_ptr_ctl;
27543e610bbSSunila Sahu #else /* Word 5 - Little Endian */
27643e610bbSSunila Sahu 		union zip_zptr_ctl_s   his_ptr_ctl;
27743e610bbSSunila Sahu #endif /* Word 5 - End */
27843e610bbSSunila Sahu 
27943e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD)
28043e610bbSSunila Sahu 		/** Input and compression history pointer address */
28143e610bbSSunila Sahu 		union zip_zptr_addr_s  inp_ptr_addr;
28243e610bbSSunila Sahu #else /* Word 6 - Little Endian */
28343e610bbSSunila Sahu 		union zip_zptr_addr_s  inp_ptr_addr;
28443e610bbSSunila Sahu #endif /* Word 6 - End */
28543e610bbSSunila Sahu 
28643e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD)
28743e610bbSSunila Sahu 		/** Input and compression history pointer control */
28843e610bbSSunila Sahu 		union zip_zptr_ctl_s   inp_ptr_ctl;
28943e610bbSSunila Sahu #else /* Word 7 - Little Endian */
29043e610bbSSunila Sahu 		union zip_zptr_ctl_s   inp_ptr_ctl;
29143e610bbSSunila Sahu #endif /* Word 7 - End */
29243e610bbSSunila Sahu 
29343e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD)
29443e610bbSSunila Sahu 		/** Output pointer address */
29543e610bbSSunila Sahu 		union zip_zptr_addr_s  out_ptr_addr;
29643e610bbSSunila Sahu #else /* Word 8 - Little Endian */
29743e610bbSSunila Sahu 		union zip_zptr_addr_s  out_ptr_addr;
29843e610bbSSunila Sahu #endif /* Word 8 - End */
29943e610bbSSunila Sahu 
30043e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD)
30143e610bbSSunila Sahu 		/** Output pointer control */
30243e610bbSSunila Sahu 		union zip_zptr_ctl_s   out_ptr_ctl;
30343e610bbSSunila Sahu #else /* Word 9 - Little Endian */
30443e610bbSSunila Sahu 		union zip_zptr_ctl_s   out_ptr_ctl;
30543e610bbSSunila Sahu #endif /* Word 9 - End */
30643e610bbSSunila Sahu 
30743e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD)
30843e610bbSSunila Sahu 		/** Result pointer address */
30943e610bbSSunila Sahu 		union zip_zptr_addr_s  res_ptr_addr;
31043e610bbSSunila Sahu #else /* Word 10 - Little Endian */
31143e610bbSSunila Sahu 		union zip_zptr_addr_s  res_ptr_addr;
31243e610bbSSunila Sahu #endif /* Word 10 - End */
31343e610bbSSunila Sahu 
31443e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD)
31543e610bbSSunila Sahu 		/** Result pointer control */
31643e610bbSSunila Sahu 		union zip_zptr_ctl_s   res_ptr_ctl;
31743e610bbSSunila Sahu #else /* Word 11 - Little Endian */
31843e610bbSSunila Sahu 		union zip_zptr_ctl_s   res_ptr_ctl;
31943e610bbSSunila Sahu #endif /* Word 11 - End */
32043e610bbSSunila Sahu 
32143e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 12 - Big Endian */
32243e610bbSSunila Sahu 		/** reserved */
32343e610bbSSunila Sahu 		uint64_t reserved_812_831      : 20;
32443e610bbSSunila Sahu 		/** SSO guest group */
32543e610bbSSunila Sahu 		uint64_t ggrp                  : 10;
32643e610bbSSunila Sahu 		/** SSO tag type */
32743e610bbSSunila Sahu 		uint64_t tt                    : 2;
32843e610bbSSunila Sahu 		/** SSO tag */
32943e610bbSSunila Sahu 		uint64_t tag                   : 32;
33043e610bbSSunila Sahu #else /* Word 12 - Little Endian */
33143e610bbSSunila Sahu 		uint64_t tag                   : 32;
33243e610bbSSunila Sahu 		uint64_t tt                    : 2;
33343e610bbSSunila Sahu 		uint64_t ggrp                  : 10;
33443e610bbSSunila Sahu 		uint64_t reserved_812_831      : 20;
33543e610bbSSunila Sahu #endif /* Word 12 - End */
33643e610bbSSunila Sahu 
33743e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 13 - Big Endian */
33843e610bbSSunila Sahu 		/** Work queue entry pointer */
33943e610bbSSunila Sahu 		uint64_t wq_ptr                : 64;
34043e610bbSSunila Sahu #else /* Word 13 - Little Endian */
34143e610bbSSunila Sahu 		uint64_t wq_ptr                : 64;
34243e610bbSSunila Sahu #endif /* Word 13 - End */
34343e610bbSSunila Sahu 
34443e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD)
34543e610bbSSunila Sahu 		/** reserved */
34643e610bbSSunila Sahu 		uint64_t reserved_896_959      : 64;
34743e610bbSSunila Sahu #else /* Word 14 - Little Endian */
34843e610bbSSunila Sahu 		uint64_t reserved_896_959      : 64;
34943e610bbSSunila Sahu #endif /* Word 14 - End */
35043e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD)
35143e610bbSSunila Sahu 		/** Hash structure pointer */
35243e610bbSSunila Sahu 		uint64_t hash_ptr              : 64;
35343e610bbSSunila Sahu #else /* Word 15 - Little Endian */
35443e610bbSSunila Sahu 		uint64_t hash_ptr              : 64;
35543e610bbSSunila Sahu #endif /* Word 15 - End */
35643e610bbSSunila Sahu 	} /** ZIP 88xx Instruction Structure */zip88xx;
35743e610bbSSunila Sahu 
35843e610bbSSunila Sahu 	/** ZIP Instruction Structure */
35943e610bbSSunila Sahu 	struct zip_inst_s_cn83xx {
36043e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 0 - Big Endian */
36143e610bbSSunila Sahu 		/** Done interrupt */
36243e610bbSSunila Sahu 		uint64_t doneint               : 1;
36343e610bbSSunila Sahu 		/** reserved */
36443e610bbSSunila Sahu 		uint64_t reserved_56_62        : 7;
36543e610bbSSunila Sahu 		/**  Total output length */
36643e610bbSSunila Sahu 		uint64_t totaloutputlength     : 24;
36743e610bbSSunila Sahu 		/** reserved */
36843e610bbSSunila Sahu 		uint64_t reserved_27_31        : 5;
36943e610bbSSunila Sahu 		/** EXNUM */
37043e610bbSSunila Sahu 		uint64_t exn                   : 3;
37143e610bbSSunila Sahu 		/**  HASH IV */
37243e610bbSSunila Sahu 		uint64_t iv                    : 1;
37343e610bbSSunila Sahu 		/** EXBITS */
37443e610bbSSunila Sahu 		uint64_t exbits                : 7;
37543e610bbSSunila Sahu 		/** Hash more-in-file */
37643e610bbSSunila Sahu 		uint64_t hmif                  : 1;
37743e610bbSSunila Sahu 		/** Hash Algorithm and enable */
37843e610bbSSunila Sahu 		uint64_t halg                  : 3;
37943e610bbSSunila Sahu 		/** Sync flush*/
38043e610bbSSunila Sahu 		uint64_t sf                    : 1;
38143e610bbSSunila Sahu 		/** Compression speed/storage */
38243e610bbSSunila Sahu 		uint64_t ss                    : 2;
38343e610bbSSunila Sahu 		/** Compression coding */
38443e610bbSSunila Sahu 		uint64_t cc                    : 2;
38543e610bbSSunila Sahu 		/** End of input data */
38643e610bbSSunila Sahu 		uint64_t ef                    : 1;
38743e610bbSSunila Sahu 		/** Beginning of file */
38843e610bbSSunila Sahu 		uint64_t bf                    : 1;
38943e610bbSSunila Sahu 		/** Comp/decomp operation */
39043e610bbSSunila Sahu 		uint64_t op                    : 2;
3917be78d02SJosh Soref 		/** Data scatter */
39243e610bbSSunila Sahu 		uint64_t ds                    : 1;
39343e610bbSSunila Sahu 		/** Data gather */
39443e610bbSSunila Sahu 		uint64_t dg                    : 1;
39543e610bbSSunila Sahu 		/** History gather */
39643e610bbSSunila Sahu 		uint64_t hg                    : 1;
39743e610bbSSunila Sahu #else /* Word 0 - Little Endian */
39843e610bbSSunila Sahu 		uint64_t hg                    : 1;
39943e610bbSSunila Sahu 		uint64_t dg                    : 1;
40043e610bbSSunila Sahu 		uint64_t ds                    : 1;
40143e610bbSSunila Sahu 		uint64_t op                    : 2;
40243e610bbSSunila Sahu 		uint64_t bf                    : 1;
40343e610bbSSunila Sahu 		uint64_t ef                    : 1;
40443e610bbSSunila Sahu 		uint64_t cc                    : 2;
40543e610bbSSunila Sahu 		uint64_t ss                    : 2;
40643e610bbSSunila Sahu 		uint64_t sf                    : 1;
40743e610bbSSunila Sahu 		uint64_t halg                  : 3;
40843e610bbSSunila Sahu 		uint64_t hmif                  : 1;
40943e610bbSSunila Sahu 		uint64_t exbits                : 7;
41043e610bbSSunila Sahu 		uint64_t iv                    : 1;
41143e610bbSSunila Sahu 		uint64_t exn                   : 3;
41243e610bbSSunila Sahu 		uint64_t reserved_27_31        : 5;
41343e610bbSSunila Sahu 		uint64_t totaloutputlength     : 24;
41443e610bbSSunila Sahu 		uint64_t reserved_56_62        : 7;
41543e610bbSSunila Sahu 		uint64_t doneint               : 1;
41643e610bbSSunila Sahu #endif /* Word 0 - End */
41743e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 1 - Big Endian */
41843e610bbSSunila Sahu 		/** History length */
41943e610bbSSunila Sahu 		uint64_t historylength         : 16;
42043e610bbSSunila Sahu 		/** reserved */
42143e610bbSSunila Sahu 		uint64_t reserved_96_111       : 16;
42243e610bbSSunila Sahu 		/** adler/crc32 checksum*/
42343e610bbSSunila Sahu 		uint64_t adlercrc32            : 32;
42443e610bbSSunila Sahu #else /* Word 1 - Little Endian */
42543e610bbSSunila Sahu 		uint64_t adlercrc32            : 32;
42643e610bbSSunila Sahu 		uint64_t reserved_96_111       : 16;
42743e610bbSSunila Sahu 		uint64_t historylength         : 16;
42843e610bbSSunila Sahu #endif /* Word 1 - End */
42943e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 2 - Big Endian */
43043e610bbSSunila Sahu 		/** Decompression Context Pointer Address */
43143e610bbSSunila Sahu 		union zip_zptr_addr_s  ctx_ptr_addr;
43243e610bbSSunila Sahu #else /* Word 2 - Little Endian */
43343e610bbSSunila Sahu 		union zip_zptr_addr_s  ctx_ptr_addr;
43443e610bbSSunila Sahu #endif /* Word 2 - End */
43543e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 3 - Big Endian */
43643e610bbSSunila Sahu 		/** Decompression Context Pointer Control */
43743e610bbSSunila Sahu 		union zip_zptr_ctl_s   ctx_ptr_ctl;
43843e610bbSSunila Sahu #else /* Word 3 - Little Endian */
43943e610bbSSunila Sahu 		union zip_zptr_ctl_s   ctx_ptr_ctl;
44043e610bbSSunila Sahu #endif /* Word 3 - End */
44143e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 4 - Big Endian */
44243e610bbSSunila Sahu 		/** Decompression history pointer address */
44343e610bbSSunila Sahu 		union zip_zptr_addr_s  his_ptr_addr;
44443e610bbSSunila Sahu #else /* Word 4 - Little Endian */
44543e610bbSSunila Sahu 		union zip_zptr_addr_s  his_ptr_addr;
44643e610bbSSunila Sahu #endif /* Word 4 - End */
44743e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 5 - Big Endian */
44843e610bbSSunila Sahu 		/** Decompression history pointer control */
44943e610bbSSunila Sahu 		union zip_zptr_ctl_s   his_ptr_ctl;
45043e610bbSSunila Sahu #else /* Word 5 - Little Endian */
45143e610bbSSunila Sahu 		union zip_zptr_ctl_s   his_ptr_ctl;
45243e610bbSSunila Sahu #endif /* Word 5 - End */
45343e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 6 - Big Endian */
45443e610bbSSunila Sahu 		/** Input and compression history pointer address */
45543e610bbSSunila Sahu 		union zip_zptr_addr_s  inp_ptr_addr;
45643e610bbSSunila Sahu #else /* Word 6 - Little Endian */
45743e610bbSSunila Sahu 		union zip_zptr_addr_s  inp_ptr_addr;
45843e610bbSSunila Sahu #endif /* Word 6 - End */
45943e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 7 - Big Endian */
46043e610bbSSunila Sahu 		/** Input and compression history pointer control */
46143e610bbSSunila Sahu 		union zip_zptr_ctl_s   inp_ptr_ctl;
46243e610bbSSunila Sahu #else /* Word 7 - Little Endian */
46343e610bbSSunila Sahu 		union zip_zptr_ctl_s   inp_ptr_ctl;
46443e610bbSSunila Sahu #endif /* Word 7 - End */
46543e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 8 - Big Endian */
46643e610bbSSunila Sahu 		/** Output pointer address */
46743e610bbSSunila Sahu 		union zip_zptr_addr_s  out_ptr_addr;
46843e610bbSSunila Sahu #else /* Word 8 - Little Endian */
46943e610bbSSunila Sahu 		union zip_zptr_addr_s  out_ptr_addr;
47043e610bbSSunila Sahu #endif /* Word 8 - End */
47143e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 9 - Big Endian */
47243e610bbSSunila Sahu 		/** Output pointer control */
47343e610bbSSunila Sahu 		union zip_zptr_ctl_s   out_ptr_ctl;
47443e610bbSSunila Sahu #else /* Word 9 - Little Endian */
47543e610bbSSunila Sahu 		union zip_zptr_ctl_s   out_ptr_ctl;
47643e610bbSSunila Sahu #endif /* Word 9 - End */
47743e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 10 - Big Endian */
47843e610bbSSunila Sahu 		/** Result pointer address */
47943e610bbSSunila Sahu 		union zip_zptr_addr_s  res_ptr_addr;
48043e610bbSSunila Sahu #else /* Word 10 - Little Endian */
48143e610bbSSunila Sahu 		union zip_zptr_addr_s  res_ptr_addr;
48243e610bbSSunila Sahu #endif /* Word 10 - End */
48343e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 11 - Big Endian */
48443e610bbSSunila Sahu 		/** Result pointer control */
48543e610bbSSunila Sahu 		union zip_zptr_ctl_s   res_ptr_ctl;
48643e610bbSSunila Sahu #else /* Word 11 - Little Endian */
48743e610bbSSunila Sahu 		union zip_zptr_ctl_s   res_ptr_ctl;
48843e610bbSSunila Sahu #endif /* Word 11 - End */
48943e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 12 - Big Endian */
49043e610bbSSunila Sahu 		/** reserved */
49143e610bbSSunila Sahu 		uint64_t reserved_812_831      : 20;
49243e610bbSSunila Sahu 		/** SSO guest group */
49343e610bbSSunila Sahu 		uint64_t ggrp                  : 10;
49443e610bbSSunila Sahu 		/** SSO tag type */
49543e610bbSSunila Sahu 		uint64_t tt                    : 2;
49643e610bbSSunila Sahu 		/** SSO tag */
49743e610bbSSunila Sahu 		uint64_t tag                   : 32;
49843e610bbSSunila Sahu #else /* Word 12 - Little Endian */
49943e610bbSSunila Sahu 		uint64_t tag                   : 32;
50043e610bbSSunila Sahu 		uint64_t tt                    : 2;
50143e610bbSSunila Sahu 		uint64_t ggrp                  : 10;
50243e610bbSSunila Sahu 		uint64_t reserved_812_831      : 20;
50343e610bbSSunila Sahu #endif /* Word 12 - End */
50443e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 13 - Big Endian */
50543e610bbSSunila Sahu 		/** Work queue entry pointer */
50643e610bbSSunila Sahu 		uint64_t wq_ptr                : 64;
50743e610bbSSunila Sahu #else /* Word 13 - Little Endian */
50843e610bbSSunila Sahu 		uint64_t wq_ptr                : 64;
50943e610bbSSunila Sahu #endif /* Word 13 - End */
51043e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 14 - Big Endian */
51143e610bbSSunila Sahu 		/** reserved */
51243e610bbSSunila Sahu 		uint64_t reserved_896_959      : 64;
51343e610bbSSunila Sahu #else /* Word 14 - Little Endian */
51443e610bbSSunila Sahu 		uint64_t reserved_896_959      : 64;
51543e610bbSSunila Sahu #endif /* Word 14 - End */
51643e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 15 - Big Endian */
51743e610bbSSunila Sahu 		/** Hash structure pointer */
51843e610bbSSunila Sahu 		uint64_t hash_ptr              : 64;
51943e610bbSSunila Sahu #else /* Word 15 - Little Endian */
52043e610bbSSunila Sahu 		uint64_t hash_ptr              : 64;
52143e610bbSSunila Sahu #endif /* Word 15 - End */
52243e610bbSSunila Sahu 	} /** ZIP 83xx Instruction Structure */s;
52343e610bbSSunila Sahu };
52443e610bbSSunila Sahu 
52543e610bbSSunila Sahu /**
52643e610bbSSunila Sahu  * Structure zip_zres_s
52743e610bbSSunila Sahu  *
52843e610bbSSunila Sahu  * ZIP Result Structure
52943e610bbSSunila Sahu  * The ZIP coprocessor writes the result structure after it completes the
53043e610bbSSunila Sahu  * invocation. The result structure is exactly 24 bytes, and each invocation
53143e610bbSSunila Sahu  * of the ZIP coprocessor produces exactly one result structure.
53243e610bbSSunila Sahu  */
53343e610bbSSunila Sahu union zip_zres_s {
53443e610bbSSunila Sahu 	/** This field can be used to set/clear all bits, or do bitwise
53543e610bbSSunila Sahu 	 * operations over the entire structure.
53643e610bbSSunila Sahu 	 */
53743e610bbSSunila Sahu 	uint64_t u[8];
53843e610bbSSunila Sahu 	/** ZIP Result Structure */
53943e610bbSSunila Sahu 	struct zip_zres_s_s {
54043e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 0 - Big Endian */
54143e610bbSSunila Sahu 		/** crc32 checksum of uncompressed stream */
54243e610bbSSunila Sahu 		uint64_t crc32                 : 32;
54343e610bbSSunila Sahu 		/** adler32 checksum of uncompressed stream*/
54443e610bbSSunila Sahu 		uint64_t adler32               : 32;
54543e610bbSSunila Sahu #else /* Word 0 - Little Endian */
54643e610bbSSunila Sahu 		uint64_t adler32               : 32;
54743e610bbSSunila Sahu 		uint64_t crc32                 : 32;
54843e610bbSSunila Sahu #endif /* Word 0 - End */
54943e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 1 - Big Endian */
55043e610bbSSunila Sahu 		/** Total numer of Bytes produced in output stream */
55143e610bbSSunila Sahu 		uint64_t totalbyteswritten     : 32;
55243e610bbSSunila Sahu 		/** Total number of bytes processed from the input stream */
55343e610bbSSunila Sahu 		uint64_t totalbytesread        : 32;
55443e610bbSSunila Sahu #else /* Word 1 - Little Endian */
55543e610bbSSunila Sahu 		uint64_t totalbytesread        : 32;
55643e610bbSSunila Sahu 		uint64_t totalbyteswritten     : 32;
55743e610bbSSunila Sahu #endif /* Word 1 - End */
55843e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 2 - Big Endian */
55943e610bbSSunila Sahu 		/** Total number of compressed input bits
56043e610bbSSunila Sahu 		 * consumed to decompress all blocks in the file
56143e610bbSSunila Sahu 		 */
56243e610bbSSunila Sahu 		uint64_t totalbitsprocessed    : 32;
56343e610bbSSunila Sahu 		/** Done interrupt*/
56443e610bbSSunila Sahu 		uint64_t doneint               : 1;
56543e610bbSSunila Sahu 		/** reserved */
56643e610bbSSunila Sahu 		uint64_t reserved_155_158      : 4;
56743e610bbSSunila Sahu 		/** EXNUM */
56843e610bbSSunila Sahu 		uint64_t exn                   : 3;
56943e610bbSSunila Sahu 		/** reserved */
57043e610bbSSunila Sahu 		uint64_t reserved_151          : 1;
57143e610bbSSunila Sahu 		/** EXBITS */
57243e610bbSSunila Sahu 		uint64_t exbits                : 7;
57343e610bbSSunila Sahu 		/** reserved */
57443e610bbSSunila Sahu 		uint64_t reserved_137_143      : 7;
57543e610bbSSunila Sahu 		/** End of file */
57643e610bbSSunila Sahu 		uint64_t ef                    : 1;
57743e610bbSSunila Sahu 		/** Completion/error code */
57843e610bbSSunila Sahu 		uint64_t compcode              : 8;
57943e610bbSSunila Sahu #else /* Word 2 - Little Endian */
58043e610bbSSunila Sahu 		uint64_t compcode              : 8;
58143e610bbSSunila Sahu 		uint64_t ef                    : 1;
58243e610bbSSunila Sahu 		uint64_t reserved_137_143      : 7;
58343e610bbSSunila Sahu 		uint64_t exbits                : 7;
58443e610bbSSunila Sahu 		uint64_t reserved_151          : 1;
58543e610bbSSunila Sahu 		uint64_t exn                   : 3;
58643e610bbSSunila Sahu 		uint64_t reserved_155_158      : 4;
58743e610bbSSunila Sahu 		uint64_t doneint               : 1;
58843e610bbSSunila Sahu 		uint64_t totalbitsprocessed    : 32;
58943e610bbSSunila Sahu #endif /* Word 2 - End */
59043e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 3 - Big Endian */
59143e610bbSSunila Sahu 		/** reserved */
59243e610bbSSunila Sahu 		uint64_t reserved_253_255      : 3;
59343e610bbSSunila Sahu 		/** Hash length in bytes */
59443e610bbSSunila Sahu 		uint64_t hshlen                : 61;
59543e610bbSSunila Sahu #else /* Word 3 - Little Endian */
59643e610bbSSunila Sahu 		uint64_t hshlen                : 61;
59743e610bbSSunila Sahu 		uint64_t reserved_253_255      : 3;
59843e610bbSSunila Sahu #endif /* Word 3 - End */
59943e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 4 - Big Endian */
60043e610bbSSunila Sahu 		/** Double-word 0 of computed hash */
60143e610bbSSunila Sahu 		uint64_t hash0                 : 64;
60243e610bbSSunila Sahu #else /* Word 4 - Little Endian */
60343e610bbSSunila Sahu 		uint64_t hash0                 : 64;
60443e610bbSSunila Sahu #endif /* Word 4 - End */
60543e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 5 - Big Endian */
60643e610bbSSunila Sahu 		/** Double-word 1 of computed hash */
60743e610bbSSunila Sahu 		uint64_t hash1                 : 64;
60843e610bbSSunila Sahu #else /* Word 5 - Little Endian */
60943e610bbSSunila Sahu 		uint64_t hash1                 : 64;
61043e610bbSSunila Sahu #endif /* Word 5 - End */
61143e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 6 - Big Endian */
61243e610bbSSunila Sahu 		/** Double-word 2 of computed hash */
61343e610bbSSunila Sahu 		uint64_t hash2                 : 64;
61443e610bbSSunila Sahu #else /* Word 6 - Little Endian */
61543e610bbSSunila Sahu 		uint64_t hash2                 : 64;
61643e610bbSSunila Sahu #endif /* Word 6 - End */
61743e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 7 - Big Endian */
61843e610bbSSunila Sahu 		/** Double-word 3 of computed hash */
61943e610bbSSunila Sahu 		uint64_t hash3                 : 64;
62043e610bbSSunila Sahu #else /* Word 7 - Little Endian */
62143e610bbSSunila Sahu 		uint64_t hash3                 : 64;
62243e610bbSSunila Sahu #endif /* Word 7 - End */
62343e610bbSSunila Sahu 	} /** ZIP Result Structure */s;
62443e610bbSSunila Sahu };
62543e610bbSSunila Sahu 
62643e610bbSSunila Sahu /**
62743e610bbSSunila Sahu  * Structure zip_zptr_s
62843e610bbSSunila Sahu  *
62943e610bbSSunila Sahu  * ZIP Generic Pointer Structure
63043e610bbSSunila Sahu  * This structure is the generic format of pointers in ZIP_INST_S.
63143e610bbSSunila Sahu  */
63243e610bbSSunila Sahu union zip_zptr_s {
63343e610bbSSunila Sahu 	/** This field can be used to set/clear all bits, or do bitwise
63443e610bbSSunila Sahu 	 * operations over the entire structure.
63543e610bbSSunila Sahu 	 */
63643e610bbSSunila Sahu 	uint64_t u[2];
63743e610bbSSunila Sahu 	/** ZIP Generic Pointer Structure */
63843e610bbSSunila Sahu 	struct zip_zptr_s_s {
63943e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 0 - Big Endian */
64043e610bbSSunila Sahu 		/** Pointer to Data or scatter-gather list */
64143e610bbSSunila Sahu 		uint64_t addr                  : 64;
64243e610bbSSunila Sahu #else /* Word 0 - Little Endian */
64343e610bbSSunila Sahu 		uint64_t addr                  : 64;
64443e610bbSSunila Sahu #endif /* Word 0 - End */
64543e610bbSSunila Sahu #if defined(__BIG_ENDIAN_BITFIELD) /* Word 1 - Big Endian */
64643e610bbSSunila Sahu 		/** reserved */
64743e610bbSSunila Sahu 		uint64_t reserved_112_127      : 16;
64843e610bbSSunila Sahu 		/** Length of Data or scatter-gather list*/
64943e610bbSSunila Sahu 		uint64_t length                : 16;
65043e610bbSSunila Sahu 		/** reserved */
65143e610bbSSunila Sahu 		uint64_t reserved_67_95        : 29;
65243e610bbSSunila Sahu 		/** Full-block write */
65343e610bbSSunila Sahu 		uint64_t fw                    : 1;
65443e610bbSSunila Sahu 		/** No cache allocation */
65543e610bbSSunila Sahu 		uint64_t nc                    : 1;
65643e610bbSSunila Sahu 		/** reserved */
65743e610bbSSunila Sahu 		uint64_t data_be               : 1;
65843e610bbSSunila Sahu #else /* Word 1 - Little Endian */
65943e610bbSSunila Sahu 		uint64_t data_be               : 1;
66043e610bbSSunila Sahu 		uint64_t nc                    : 1;
66143e610bbSSunila Sahu 		uint64_t fw                    : 1;
66243e610bbSSunila Sahu 		uint64_t reserved_67_95        : 29;
66343e610bbSSunila Sahu 		uint64_t length                : 16;
66443e610bbSSunila Sahu 		uint64_t reserved_112_127      : 16;
66543e610bbSSunila Sahu #endif /* Word 1 - End */
66643e610bbSSunila Sahu 	} /** ZIP Generic Pointer Structure */s;
66743e610bbSSunila Sahu };
66843e610bbSSunila Sahu 
66943e610bbSSunila Sahu /**
67043e610bbSSunila Sahu  * Enumeration zip_comp_e
67143e610bbSSunila Sahu  *
67243e610bbSSunila Sahu  * ZIP Completion Enumeration
67343e610bbSSunila Sahu  * Enumerates the values of ZIP_ZRES_S[COMPCODE].
67443e610bbSSunila Sahu  */
67543e610bbSSunila Sahu #define ZIP_COMP_E_NOTDONE       (0)
67643e610bbSSunila Sahu #define ZIP_COMP_E_SUCCESS       (1)
67743e610bbSSunila Sahu #define ZIP_COMP_E_DTRUNC        (2)
67843e610bbSSunila Sahu #define ZIP_COMP_E_DSTOP         (3)
67943e610bbSSunila Sahu #define ZIP_COMP_E_ITRUNC        (4)
68043e610bbSSunila Sahu #define ZIP_COMP_E_RBLOCK        (5)
68143e610bbSSunila Sahu #define ZIP_COMP_E_NLEN          (6)
68243e610bbSSunila Sahu #define ZIP_COMP_E_BADCODE       (7)
68343e610bbSSunila Sahu #define ZIP_COMP_E_BADCODE2      (8)
68443e610bbSSunila Sahu #define ZIP_COMP_E_ZERO_LEN      (9)
68543e610bbSSunila Sahu #define ZIP_COMP_E_PARITY        (0xa)
68643e610bbSSunila Sahu #define ZIP_COMP_E_FATAL         (0xb)
68743e610bbSSunila Sahu #define ZIP_COMP_E_TIMEOUT       (0xc)
68843e610bbSSunila Sahu #define ZIP_COMP_E_INSTR_ERR     (0xd)
68943e610bbSSunila Sahu #define ZIP_COMP_E_HCTX_ERR      (0xe)
690*938f3f5fSMahipal Challa #define ZIP_COMP_E_PTR_ERR       (0xf)
69143e610bbSSunila Sahu #define ZIP_COMP_E_STOP          (3)
69243e610bbSSunila Sahu 
69343e610bbSSunila Sahu /**
69443e610bbSSunila Sahu  * Enumeration zip_op_e
69543e610bbSSunila Sahu  *
69643e610bbSSunila Sahu  * ZIP Operation Enumeration
69743e610bbSSunila Sahu  * Enumerates ZIP_INST_S[OP].
69843e610bbSSunila Sahu  * Internal:
69943e610bbSSunila Sahu  */
70043e610bbSSunila Sahu #define ZIP_OP_E_DECOMP   (0)
70143e610bbSSunila Sahu #define ZIP_OP_E_NOCOMP   (1)
70243e610bbSSunila Sahu #define ZIP_OP_E_COMP     (2)
70343e610bbSSunila Sahu 
70443e610bbSSunila Sahu /**
70543e610bbSSunila Sahu  * Enumeration zip compression levels
70643e610bbSSunila Sahu  *
70743e610bbSSunila Sahu  * ZIP Compression Level Enumeration
70843e610bbSSunila Sahu  * Enumerates ZIP_INST_S[SS].
70943e610bbSSunila Sahu  * Internal:
71043e610bbSSunila Sahu  */
71143e610bbSSunila Sahu #define ZIP_COMP_E_LEVEL_MAX  (0)
71243e610bbSSunila Sahu #define ZIP_COMP_E_LEVEL_MED  (1)
71343e610bbSSunila Sahu #define ZIP_COMP_E_LEVEL_LOW  (2)
71443e610bbSSunila Sahu #define ZIP_COMP_E_LEVEL_MIN  (3)
71543e610bbSSunila Sahu 
71643e610bbSSunila Sahu #endif	/* _RTE_ZIP_REGS_H_ */
717