1b4ce3594SNagadheeraj Rottela /* SPDX-License-Identifier: BSD-3-Clause 2b4ce3594SNagadheeraj Rottela * Copyright(C) 2024 Marvell. 3b4ce3594SNagadheeraj Rottela */ 4b4ce3594SNagadheeraj Rottela 5b4ce3594SNagadheeraj Rottela #ifndef _NITROX_COMP_REQMGR_H_ 6b4ce3594SNagadheeraj Rottela #define _NITROX_COMP_REQMGR_H_ 7b4ce3594SNagadheeraj Rottela 8f008628aSNagadheeraj Rottela struct nitrox_softreq; 9f008628aSNagadheeraj Rottela 10b4ce3594SNagadheeraj Rottela enum nitrox_comp_op { 11b4ce3594SNagadheeraj Rottela NITROX_COMP_OP_DECOMPRESS, 12b4ce3594SNagadheeraj Rottela NITROX_COMP_OP_COMPRESS, 13b4ce3594SNagadheeraj Rottela }; 14b4ce3594SNagadheeraj Rottela 15b4ce3594SNagadheeraj Rottela enum nitrox_comp_algo { 16b4ce3594SNagadheeraj Rottela NITROX_COMP_ALGO_DEFLATE_DEFAULT, 17b4ce3594SNagadheeraj Rottela NITROX_COMP_ALGO_DEFLATE_DYNHUFF, 18b4ce3594SNagadheeraj Rottela NITROX_COMP_ALGO_DEFLATE_FIXEDHUFF, 19b4ce3594SNagadheeraj Rottela NITROX_COMP_ALGO_LZS, 20b4ce3594SNagadheeraj Rottela }; 21b4ce3594SNagadheeraj Rottela 22b4ce3594SNagadheeraj Rottela enum nitrox_comp_level { 23b4ce3594SNagadheeraj Rottela NITROX_COMP_LEVEL_BEST, 24b4ce3594SNagadheeraj Rottela NITROX_COMP_LEVEL_MEDIUM, 25b4ce3594SNagadheeraj Rottela NITROX_COMP_LEVEL_LOWER, 26b4ce3594SNagadheeraj Rottela NITROX_COMP_LEVEL_LOWEST, 27b4ce3594SNagadheeraj Rottela }; 28b4ce3594SNagadheeraj Rottela 29b4ce3594SNagadheeraj Rottela enum nitrox_chksum_type { 30b4ce3594SNagadheeraj Rottela NITROX_CHKSUM_TYPE_CRC32, 31b4ce3594SNagadheeraj Rottela NITROX_CHKSUM_TYPE_ADLER32, 32b4ce3594SNagadheeraj Rottela NITROX_CHKSUM_TYPE_NONE, 33b4ce3594SNagadheeraj Rottela }; 34b4ce3594SNagadheeraj Rottela 35b4ce3594SNagadheeraj Rottela struct nitrox_comp_xform { 36b4ce3594SNagadheeraj Rottela enum nitrox_comp_op op; 37b4ce3594SNagadheeraj Rottela enum nitrox_comp_algo algo; 38b4ce3594SNagadheeraj Rottela enum nitrox_comp_level level; 39b4ce3594SNagadheeraj Rottela enum nitrox_chksum_type chksum_type; 40*6ea6bcddSNagadheeraj Rottela uint8_t *context; 41*6ea6bcddSNagadheeraj Rottela uint8_t *history_window; 42*6ea6bcddSNagadheeraj Rottela uint32_t chksum; 43*6ea6bcddSNagadheeraj Rottela uint16_t window_size; 44*6ea6bcddSNagadheeraj Rottela uint16_t hlen; 45*6ea6bcddSNagadheeraj Rottela uint8_t exn; 46*6ea6bcddSNagadheeraj Rottela uint8_t exbits; 47*6ea6bcddSNagadheeraj Rottela bool bf; 48b4ce3594SNagadheeraj Rottela }; 49b4ce3594SNagadheeraj Rottela 50f008628aSNagadheeraj Rottela int nitrox_process_comp_req(struct rte_comp_op *op, struct nitrox_softreq *sr); 51f008628aSNagadheeraj Rottela int nitrox_check_comp_req(struct nitrox_softreq *sr, struct rte_comp_op **op); 52f008628aSNagadheeraj Rottela void *nitrox_comp_instr_addr(struct nitrox_softreq *sr); 53f008628aSNagadheeraj Rottela struct rte_mempool *nitrox_comp_req_pool_create(struct rte_compressdev *cdev, 54f008628aSNagadheeraj Rottela uint32_t nobjs, uint16_t qp_id, 55f008628aSNagadheeraj Rottela int socket_id); 56f008628aSNagadheeraj Rottela void nitrox_comp_req_pool_free(struct rte_mempool *mp); 57f008628aSNagadheeraj Rottela 58b4ce3594SNagadheeraj Rottela #endif /* _NITROX_COMP_REQMGR_H_ */ 59