1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(C) 2022 Marvell. 3 */ 4 5 #ifndef _ROC_CPT_SG_H_ 6 #define _ROC_CPT_SG_H_ 7 8 #define ROC_DMA_MODE_SG (1 << 7) 9 10 #define ROC_MAX_SG_IN_OUT_CNT 128 11 #define ROC_MAX_SG_CNT (ROC_MAX_SG_IN_OUT_CNT / 2) 12 13 #define ROC_SG_LIST_HDR_SIZE (8u) 14 #define ROC_SG_ENTRY_SIZE sizeof(struct roc_sglist_comp) 15 #define ROC_SG_MAX_COMP 25 16 #define ROC_SG_MAX_DLEN_SIZE (ROC_SG_LIST_HDR_SIZE + (ROC_SG_MAX_COMP * ROC_SG_ENTRY_SIZE)) 17 18 struct roc_sglist_comp { 19 union { 20 uint64_t len; 21 struct { 22 uint16_t len[4]; 23 } s; 24 } u; 25 uint64_t ptr[4]; 26 }; 27 28 struct roc_sg2list_comp { 29 union { 30 uint64_t len; 31 struct { 32 uint16_t len[3]; 33 uint16_t valid_segs; 34 } s; 35 } u; 36 uint64_t ptr[3]; 37 }; 38 39 #endif /* _ROC_CPT_SG_H_ */ 40