46 #ifndef CSL_UDMAP_CPPI5_H_ 47 #define CSL_UDMAP_CPPI5_H_ 135 #define CSL_UDMAP_CPPI5_PD_DESCINFO_DTYPE_SHIFT ((uint32_t) 30U) 136 #define CSL_UDMAP_CPPI5_PD_DESCINFO_DTYPE_MASK (((uint32_t) 0x3U) << CSL_UDMAP_CPPI5_PD_DESCINFO_DTYPE_SHIFT) 137 #define CSL_UDMAP_CPPI5_PD_DESCINFO_DTYPE_VAL_HOST ((uint32_t) 1U) 138 #define CSL_UDMAP_CPPI5_PD_DESCINFO_DTYPE_VAL_MONO ((uint32_t) 2U) 139 #define CSL_UDMAP_CPPI5_PD_DESCINFO_DTYPE_VAL_TR ((uint32_t) 3U) 140 #define CSL_UDMAP_CPPI5_PD_DESCINFO_EINFO_SHIFT ((uint32_t) 29U) 141 #define CSL_UDMAP_CPPI5_PD_DESCINFO_EINFO_MASK (((uint32_t) 0x1U) << CSL_UDMAP_CPPI5_PD_DESCINFO_EINFO_SHIFT) 142 #define CSL_UDMAP_CPPI5_PD_DESCINFO_EINFO_VAL_NOT_PRESENT ((uint32_t) 0) 143 #define CSL_UDMAP_CPPI5_PD_DESCINFO_EINFO_VAL_IS_PRESENT ((uint32_t) 1U) 144 #define CSL_UDMAP_CPPI5_PD_DESCINFO_PSINFO_SHIFT ((uint32_t) 28U) 145 #define CSL_UDMAP_CPPI5_PD_DESCINFO_PSINFO_MASK (((uint32_t) 0x1U) << CSL_UDMAP_CPPI5_PD_DESCINFO_PSINFO_SHIFT) 146 #define CSL_UDMAP_CPPI5_PD_DESCINFO_PSINFO_VAL_IN_DESC ((uint32_t) 0) 147 #define CSL_UDMAP_CPPI5_PD_DESCINFO_PSINFO_VAL_IN_SOP_BUFFER ((uint32_t) 1U) 148 #define CSL_UDMAP_CPPI5_PD_DESCINFO_PSWCNT_SHIFT ((uint32_t) 22U) 149 #define CSL_UDMAP_CPPI5_PD_DESCINFO_PSWCNT_MASK (((uint32_t) 0x3FU) << CSL_UDMAP_CPPI5_PD_DESCINFO_PSWCNT_SHIFT) 150 #define CSL_UDMAP_CPPI5_PD_DESCINFO_PKTLEN_SHIFT ((uint32_t) 0) 151 #define CSL_UDMAP_CPPI5_PD_DESCINFO_PKTLEN_MASK (((uint32_t) 0x3FFFFFU) << CSL_UDMAP_CPPI5_PD_DESCINFO_PKTLEN_SHIFT) 153 #define CSL_UDMAP_CPPI5_PD_PKTINFO1_PKTERROR_SHIFT ((uint32_t) 28U) 154 #define CSL_UDMAP_CPPI5_PD_PKTINFO1_PKTERROR_MASK (((uint32_t) 0xFU) << CSL_UDMAP_CPPI5_PD_PKTINFO1_PKTERROR_SHIFT) 155 #define CSL_UDMAP_CPPI5_PD_PKTINFO1_PSFLGS_SHIFT ((uint32_t) 24U) 156 #define CSL_UDMAP_CPPI5_PD_PKTINFO1_PSFLGS_MASK (((uint32_t) 0xFU) << CSL_UDMAP_CPPI5_PD_PKTINFO1_PSFLGS_SHIFT) 157 #define CSL_UDMAP_CPPI5_PD_PKTINFO1_PKTID_SHIFT ((uint32_t) 14U) 158 #define CSL_UDMAP_CPPI5_PD_PKTINFO1_PKTID_MASK (((uint32_t) 0x3FFU) << CSL_UDMAP_CPPI5_PD_PKTINFO1_PKTID_SHIFT) 159 #define CSL_UDMAP_CPPI5_PD_PKTINFO1_FLOWID_SHIFT ((uint32_t) 0) 160 #define CSL_UDMAP_CPPI5_PD_PKTINFO1_FLOWID_MASK (((uint32_t) 0x3FFFU) << CSL_UDMAP_CPPI5_PD_PKTINFO1_FLOWID_SHIFT) 162 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_PKTTYPE_SHIFT ((uint32_t) 27U) 163 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_PKTTYPE_MASK (((uint32_t) 0x1FU) << CSL_UDMAP_CPPI5_PD_PKTINFO2_PKTTYPE_SHIFT) 164 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_RETPOLICY_SHIFT ((uint32_t) 18U) 165 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_RETPOLICY_MASK (((uint32_t) 0x1U) << CSL_UDMAP_CPPI5_PD_PKTINFO2_RETPOLICY_SHIFT) 166 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_RETPOLICY_VAL_ENTIRE_PKT ((uint32_t) 0) 167 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_RETPOLICY_VAL_BREAKUP_PKT ((uint32_t) 1U) 168 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_DATA_OFFSET_SHIFT ((uint32_t) 18U) 169 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_DATA_OFFSET_MASK (((uint32_t) 0x1FFU) << CSL_UDMAP_CPPI5_PD_PKTINFO2_DATA_OFFSET_SHIFT) 170 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_EARLYRET_SHIFT ((uint32_t) 17U) 171 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_EARLYRET_MASK (((uint32_t) 0x1U) << CSL_UDMAP_CPPI5_PD_PKTINFO2_EARLYRET_SHIFT) 172 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_EARLYRET_VAL_NO ((uint32_t) 0) 173 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_EARLYRET_VAL_YES ((uint32_t) 1U) 174 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_RETPUSHPOLICY_SHIFT ((uint32_t) 16U) 175 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_RETPUSHPOLICY_MASK (((uint32_t) 0x1U) << CSL_UDMAP_CPPI5_PD_PKTINFO2_RETPUSHPOLICY_SHIFT) 176 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_RETPUSHPOLICY_VAL_TO_TAIL ((uint32_t) 0) 177 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_RETPUSHPOLICY_VAL_TO_HEAD ((uint32_t) 1U) 178 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_RETQ_SHIFT ((uint32_t) 0) 179 #define CSL_UDMAP_CPPI5_PD_PKTINFO2_RETQ_MASK (((uint32_t) 0xFFFFU) << CSL_UDMAP_CPPI5_PD_PKTINFO2_RETQ_SHIFT) 181 #define CSL_UDMAP_CPPI5_PD_SRCDSTTAG_SRCTAG_SHIFT ((uint32_t) 16U) 182 #define CSL_UDMAP_CPPI5_PD_SRCDSTTAG_SRCTAG_MASK (((uint32_t) 0xFFFFU) << CSL_UDMAP_CPPI5_PD_SRCDSTTAG_SRCTAG_SHIFT) 183 #define CSL_UDMAP_CPPI5_PD_SRCDSTTAG_DSTTAG_SHIFT ((uint32_t) 0) 184 #define CSL_UDMAP_CPPI5_PD_SRCDSTTAG_DSTTAG_MASK (((uint32_t) 0xFFFFU) << CSL_UDMAP_CPPI5_PD_SRCDSTTAG_DSTTAG_SHIFT) 186 #define CSL_UDMAP_CPPI5_PD_BUFPTR_ASPACE_SHIFT ((uint64_t) 48UL) 187 #define CSL_UDMAP_CPPI5_PD_BUFPTR_ASPACE_MASK (((uint64_t) 0xFU) << CSL_UDMAP_CPPI5_PD_BUFPTR_ASPACE_SHIFT) 188 #define CSL_UDMAP_CPPI5_PD_BUFPTR_ADDR_SHIFT ((uint64_t) 0U) 189 #define CSL_UDMAP_CPPI5_PD_BUFPTR_ADDR_MASK (((uint64_t) 0x0000FFFFFFFFFFFFUL) << CSL_UDMAP_CPPI5_PD_BUFPTR_ADDR_SHIFT) 191 #define CSL_UDMAP_CPPI5_PD_BUFINFO1_LEN_SHIFT ((uint32_t) 0) 192 #define CSL_UDMAP_CPPI5_PD_BUFINFO1_LEN_MASK (((uint32_t) 0x3FFFFFU) << CSL_UDMAP_CPPI5_PD_BUFINFO1_LEN_SHIFT) 194 #define CSL_UDMAP_CPPI5_PD_ORGBUFLEN_LEN_SHIFT ((uint32_t) 0) 195 #define CSL_UDMAP_CPPI5_PD_ORGBUFLEN_LEN_MASK (((uint32_t) 0x3FFFFFU) << CSL_UDMAP_CPPI5_PD_ORGBUFLEN_LEN_SHIFT) 197 #define CSL_UDMAP_CPPI5_PD_ORGBUFPTR_ASPACE_SHIFT ((uint64_t) 48UL) 198 #define CSL_UDMAP_CPPI5_PD_ORGBUFPTR_ASPACE_MASK (((uint64_t) 0xFU) << CSL_UDMAP_CPPI5_PD_ORGBUFPTR_ASPACE_SHIFT) 199 #define CSL_UDMAP_CPPI5_PD_ORGBUFPTR_ADDR_SHIFT ((uint64_t) 0U) 200 #define CSL_UDMAP_CPPI5_PD_ORGBUFPTR_ADDR_MASK (((uint64_t) 0x0000FFFFFFFFFFFFUL) << CSL_UDMAP_CPPI5_PD_ORGBUFPTR_ADDR_SHIFT) 216 #define CSL_UDMAP_CPPI5_TRPD_DESCINFO_DTYPE_SHIFT ((uint32_t) 30U) 217 #define CSL_UDMAP_CPPI5_TRPD_DESCINFO_DTYPE_MASK (((uint32_t) 0x3U) << CSL_UDMAP_CPPI5_TRPD_DESCINFO_DTYPE_SHIFT) 218 #define CSL_UDMAP_CPPI5_TRPD_DESCINFO_RELOAD_SHIFT ((uint32_t) 20U) 219 #define CSL_UDMAP_CPPI5_TRPD_DESCINFO_RELOAD_MASK (((uint32_t) 0x1FFU) << CSL_UDMAP_CPPI5_TRPD_DESCINFO_RELOAD_SHIFT) 220 #define CSL_UDMAP_CPPI5_TRPD_DESCINFO_RLDIDX_SHIFT ((uint32_t) 14U) 221 #define CSL_UDMAP_CPPI5_TRPD_DESCINFO_RLDIDX_MASK (((uint32_t) 0x3FU) << CSL_UDMAP_CPPI5_TRPD_DESCINFO_RLDIDX_SHIFT) 222 #define CSL_UDMAP_CPPI5_TRPD_DESCINFO_LASTIDX_SHIFT ((uint32_t) 0) 223 #define CSL_UDMAP_CPPI5_TRPD_DESCINFO_LASTIDX_MASK (((uint32_t) 0x3FFFU) << CSL_UDMAP_CPPI5_TRPD_DESCINFO_LASTIDX_SHIFT) 225 #define CSL_UDMAP_CPPI5_TRPD_PKTINFO_PKTERROR_SHIFT ((uint32_t) 28U) 226 #define CSL_UDMAP_CPPI5_TRPD_PKTINFO_PKTERROR_MASK (((uint32_t) 0xFU) << CSL_UDMAP_CPPI5_TRPD_PKTINFO_PKTERROR_SHIFT) 227 #define CSL_UDMAP_CPPI5_TRPD_PKTINFO_RECSIZE_SHIFT ((uint32_t) 24U) 228 #define CSL_UDMAP_CPPI5_TRPD_PKTINFO_RECSIZE_MASK (((uint32_t) 0x7U) << CSL_UDMAP_CPPI5_TRPD_PKTINFO_RECSIZE_SHIFT) 229 #define CSL_UDMAP_CPPI5_TRPD_PKTINFO_RECSIZE_VAL_16B ((uint32_t) 0) 230 #define CSL_UDMAP_CPPI5_TRPD_PKTINFO_RECSIZE_VAL_32B ((uint32_t) 1U) 231 #define CSL_UDMAP_CPPI5_TRPD_PKTINFO_RECSIZE_VAL_64B ((uint32_t) 2U) 232 #define CSL_UDMAP_CPPI5_TRPD_PKTINFO_RECSIZE_VAL_128B ((uint32_t) 3U) 233 #define CSL_UDMAP_CPPI5_TRPD_PKTINFO_PKTID_SHIFT ((uint32_t) 14U) 234 #define CSL_UDMAP_CPPI5_TRPD_PKTINFO_PKTID_MASK (((uint32_t) 0x3FFU) << CSL_UDMAP_CPPI5_TRPD_PKTINFO_PKTID_SHIFT) 235 #define CSL_UDMAP_CPPI5_TRPD_PKTINFO_FLOWID_SHIFT ((uint32_t) 0) 236 #define CSL_UDMAP_CPPI5_TRPD_PKTINFO_FLOWID_MASK (((uint32_t) 0x3FFFU) << CSL_UDMAP_CPPI5_TRPD_PKTINFO_FLOWID_SHIFT) 238 #define CSL_UDMAP_CPPI5_TRPD_RETINFO_RETPOLICY_SHIFT ((uint32_t) 16U) 239 #define CSL_UDMAP_CPPI5_TRPD_RETINFO_RETPOLICY_MASK (((uint32_t) 0x1U) << CSL_UDMAP_CPPI5_TRPD_RETINFO_RETPOLICY_SHIFT) 240 #define CSL_UDMAP_CPPI5_TRPD_RETINFO_RETPOLICY_VAL_TO_TAIL ((uint32_t) 0) 241 #define CSL_UDMAP_CPPI5_TRPD_RETINFO_RETPOLICY_VAL_TO_HEAD ((uint32_t) 1U) 242 #define CSL_UDMAP_CPPI5_TRPD_RETINFO_RETQ_SHIFT ((uint32_t) 0) 243 #define CSL_UDMAP_CPPI5_TRPD_RETINFO_RETQ_MASK (((uint32_t) 0xFFFFU) << CSL_UDMAP_CPPI5_TRPD_RETINFO_RETQ_SHIFT) 245 #define CSL_UDMAP_CPPI5_TRPD_SRCDSTTAG_SRCTAG_SHIFT ((uint32_t) 16U) 246 #define CSL_UDMAP_CPPI5_TRPD_SRCDSTTAG_SRCTAG_MASK (((uint32_t) 0xFFFFU) << CSL_UDMAP_CPPI5_TRPD_SRCDSTTAG_SRCTAG_SHIFT) 247 #define CSL_UDMAP_CPPI5_TRPD_SRCDSTTAG_DSTTAG_SHIFT ((uint32_t) 0) 248 #define CSL_UDMAP_CPPI5_TRPD_SRCDSTTAG_DSTTAG_MASK (((uint32_t) 0xFFFFU) << CSL_UDMAP_CPPI5_TRPD_SRCDSTTAG_DSTTAG_SHIFT) 271 static inline int32_t
CSL_udmapCppi5RdEpiData(
const void *pDesc, uint32_t *pTsInfo, uint32_t *pSwInfo0, uint32_t *pSwInfo1, uint32_t *pSwInfo2 );
272 static inline void CSL_udmapCppi5WrEpiData(
const void *pDesc, uint32_t tsInfo, uint32_t swInfo0, uint32_t swInfo1, uint32_t swInfo2 );
288 static inline void CSL_udmapCppi5GetIds(
const void *pDesc, uint32_t *pPktId, uint32_t *pFlowId );
289 static inline void CSL_udmapCppi5SetIds(
void *pDesc, uint32_t descType, uint32_t pktId, uint32_t flowId );
290 static inline void CSL_udmapCppi5GetReturnPolicy(
const void *pDesc, uint32_t *pRetPolicy, uint32_t *pEarlyReturn, uint32_t *pRetPushPolicy, uint32_t *pRetQnum );
291 static inline void CSL_udmapCppi5SetReturnPolicy(
void *pDesc, uint32_t descType, uint32_t retPolicy, uint32_t earlyReturn, uint32_t retPushPolicy, uint32_t retQnum );
313 return (uint32_t)CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_DTYPE );
334 CSL_FINS( ((
CSL_UdmapCppi5HMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_DTYPE, descType );
361 pktLen = CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_PKTLEN );
365 pktLen = (uint32_t)CSL_FEXT( ((
const CSL_UdmapCppi5TRPD *)pDesc)->descInfo, UDMAP_CPPI5_TRPD_DESCINFO_LASTIDX ) + (uint32_t)1U;
397 CSL_FINS( ((
CSL_UdmapCppi5HMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_PKTLEN, pktLen );
401 CSL_FINS( ((
CSL_UdmapCppi5TRPD *)pDesc)->descInfo, UDMAP_CPPI5_TRPD_DESCINFO_LASTIDX, pktLen-1U );
417 CSL_FINS( ((
CSL_UdmapCppi5HMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_PKTLEN, pktLen );
432 CSL_FINS( ((
CSL_UdmapCppi5MMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_PKTLEN, pktLen );
447 CSL_FINS( ((
CSL_UdmapCppi5TRPD *)pDesc)->descInfo, UDMAP_CPPI5_TRPD_DESCINFO_LASTIDX, pktLen-1U );
481 return (uint32_t)CSL_FEXT( pDesc->
bufInfo1, UDMAP_CPPI5_PD_BUFINFO1_LEN );
500 pDesc->
bufPtr = physBufferAddr;
538 CSL_FINS( pDesc->
bufInfo1, UDMAP_CPPI5_PD_BUFINFO1_LEN, bufferLenBytes );
602 fieldVal = CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_EINFO );
603 return (fieldVal == (uint32_t)0U) ? (bool)
false : (
bool)
true;
622 CSL_FINS( ((
CSL_UdmapCppi5HMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_EINFO, (bEpiDataPresent==(
bool)
true) ? (uint32_t)1U : (uint32_t)0U );
641 uint32_t *pEpiData =
NULL;
677 static inline int32_t
CSL_udmapCppi5RdEpiData(
const void *pDesc, uint32_t *pTsInfo, uint32_t *pSwInfo0, uint32_t *pSwInfo1, uint32_t *pSwInfo2 )
682 if( pSrcEpiData != (
void *)0 )
684 *pTsInfo = *pSrcEpiData; pSrcEpiData++;
685 *pSwInfo0 = *pSrcEpiData; pSrcEpiData++;
686 *pSwInfo1 = *pSrcEpiData; pSrcEpiData++;
687 *pSwInfo2 = *pSrcEpiData;
710 static inline void CSL_udmapCppi5WrEpiData(
const void *pDesc, uint32_t tsInfo, uint32_t swInfo0, uint32_t swInfo1, uint32_t swInfo2 )
714 if( pDstEpiData != (
void *)0 )
716 *pDstEpiData = tsInfo; pDstEpiData++;
717 *pDstEpiData = swInfo0; pDstEpiData++;
718 *pDstEpiData = swInfo1; pDstEpiData++;
719 *pDstEpiData = swInfo2;
738 return (uint32_t)CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_PSINFO );
757 CSL_FINS( ((
CSL_UdmapCppi5HMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_PSINFO, psLoc );
775 return ((uint32_t)CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_PSWCNT )) * 4U;
796 CSL_FINS( ((
CSL_UdmapCppi5HMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_PSWCNT, (psDataLen/4U) );
822 uint32_t epiDataSize;
824 epiDataSize = (bEpiPresent == (bool)
false) ? (uint32_t)0U : (uint32_t)
sizeof(
CSL_UdmapCppi5Epi);
827 if( bInSopBuf == (
bool)true )
835 psDataAddr = (uint64_t)(uintptr_t)((
const uint8_t *)pDesc +
sizeof(
CSL_UdmapCppi5HMPD) + epiDataSize);
841 psDataAddr = (uint64_t)(uintptr_t)((
const uint8_t *)pDesc +
sizeof(
CSL_UdmapCppi5MMPD) + epiDataSize);
849 uint8_t *pPsData =
NULL;
853 if( psDataLen != (uint32_t)0U )
856 uint32_t epiDataSize;
861 uint32_t psLoc = CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->descInfo, UDMAP_CPPI5_PD_DESCINFO_PSINFO );
865 pPsData = (uint8_t *)((
const uint8_t *)pDesc +
sizeof(
CSL_UdmapCppi5HMPD) + epiDataSize);
876 pPsData = (uint8_t *)((
const uint8_t *)pDesc +
sizeof(
CSL_UdmapCppi5MMPD) + epiDataSize);
893 return (uint32_t)CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->srcDstTag, UDMAP_CPPI5_PD_SRCDSTTAG_SRCTAG );
907 return (uint32_t)CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->srcDstTag, UDMAP_CPPI5_PD_SRCDSTTAG_DSTTAG );
922 CSL_FINS( ((
CSL_UdmapCppi5HMPD *)pDesc)->srcDstTag, UDMAP_CPPI5_PD_SRCDSTTAG_SRCTAG, srcTag );
937 CSL_FINS( ((
CSL_UdmapCppi5HMPD *)pDesc)->srcDstTag, UDMAP_CPPI5_PD_SRCDSTTAG_DSTTAG, dstTag );
954 return (uint32_t)CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->pktInfo1, UDMAP_CPPI5_PD_PKTINFO1_PKTERROR );
971 return (uint32_t)CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->pktInfo1, UDMAP_CPPI5_PD_PKTINFO1_PSFLGS );
989 CSL_FINS( ((
CSL_UdmapCppi5HMPD *)pDesc)->pktInfo1, UDMAP_CPPI5_PD_PKTINFO1_PSFLGS, psFlags );
1006 return (uint32_t)CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->pktInfo2, UDMAP_CPPI5_PD_PKTINFO2_PKTTYPE );
1024 CSL_FINS( ((
CSL_UdmapCppi5HMPD *)pDesc)->pktInfo2, UDMAP_CPPI5_PD_PKTINFO2_PKTTYPE, pktType );
1044 *pPktId = CSL_FEXT( ((
const CSL_UdmapCppi5TRPD *)pDesc)->pktInfo, UDMAP_CPPI5_TRPD_PKTINFO_PKTID );
1045 *pFlowId = CSL_FEXT( ((
const CSL_UdmapCppi5TRPD *)pDesc)->pktInfo, UDMAP_CPPI5_TRPD_PKTINFO_FLOWID );
1049 *pPktId = CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->pktInfo1, UDMAP_CPPI5_PD_PKTINFO1_PKTID );
1050 *pFlowId = CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->pktInfo1, UDMAP_CPPI5_PD_PKTINFO1_FLOWID );
1074 v |= CSL_FMK( UDMAP_CPPI5_TRPD_PKTINFO_PKTID, pktId ) |
1075 CSL_FMK( UDMAP_CPPI5_TRPD_PKTINFO_FLOWID, flowId );
1082 v |= CSL_FMK( UDMAP_CPPI5_PD_PKTINFO1_PKTID, pktId ) |
1083 CSL_FMK( UDMAP_CPPI5_PD_PKTINFO1_FLOWID, flowId );
1105 static inline void CSL_udmapCppi5GetReturnPolicy(
const void *pDesc, uint32_t *pRetPolicy, uint32_t *pEarlyReturn, uint32_t *pRetPushPolicy, uint32_t *pRetQnum )
1113 *pRetPushPolicy = CSL_FEXT( ((
const CSL_UdmapCppi5TRPD *)pDesc)->retInfo, UDMAP_CPPI5_TRPD_RETINFO_RETPOLICY );
1114 *pRetQnum = CSL_FEXT( ((
const CSL_UdmapCppi5TRPD *)pDesc)->retInfo, UDMAP_CPPI5_TRPD_RETINFO_RETQ );
1124 *pRetPolicy = CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->pktInfo2, UDMAP_CPPI5_PD_PKTINFO2_RETPOLICY );
1126 *pEarlyReturn = CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->pktInfo2, UDMAP_CPPI5_PD_PKTINFO2_EARLYRET );
1127 *pRetPushPolicy = CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->pktInfo2, UDMAP_CPPI5_PD_PKTINFO2_RETPUSHPOLICY );
1128 *pRetQnum = CSL_FEXT( ((
const CSL_UdmapCppi5HMPD *)pDesc)->pktInfo2, UDMAP_CPPI5_PD_PKTINFO2_RETQ );
1169 static inline void CSL_udmapCppi5SetReturnPolicy(
void *pDesc, uint32_t descType, uint32_t retPolicy, uint32_t earlyReturn, uint32_t retPushPolicy, uint32_t retQnum )
1176 CSL_FMK( UDMAP_CPPI5_TRPD_RETINFO_RETPOLICY, retPushPolicy ) |
1177 CSL_FMK( UDMAP_CPPI5_TRPD_RETINFO_RETQ, retQnum ) ;
1189 v |= CSL_FMK( UDMAP_CPPI5_PD_PKTINFO2_RETPOLICY, retPolicy );
1192 v |= CSL_FMK( UDMAP_CPPI5_PD_PKTINFO2_EARLYRET, earlyReturn) |
1193 CSL_FMK( UDMAP_CPPI5_PD_PKTINFO2_RETPUSHPOLICY, retPushPolicy ) |
1194 CSL_FMK( UDMAP_CPPI5_PD_PKTINFO2_RETQ, retQnum );
1212 return (uint32_t)CSL_FEXT( pDesc->
pktInfo2, UDMAP_CPPI5_PD_PKTINFO2_DATA_OFFSET );
1229 CSL_FINS( ((
CSL_UdmapCppi5MMPD *)pDesc)->pktInfo2, UDMAP_CPPI5_PD_PKTINFO2_DATA_OFFSET, dataOffset );
1247 *pReloadEnable = (uint32_t)CSL_FEXT( pDesc->
descInfo, UDMAP_CPPI5_TRPD_DESCINFO_RELOAD );
1248 *pReloadIdx = (uint32_t)CSL_FEXT( pDesc->
descInfo, UDMAP_CPPI5_TRPD_DESCINFO_RLDIDX );
1276 CSL_FINS( pDesc->
descInfo, UDMAP_CPPI5_TRPD_DESCINFO_RELOAD, reloadEnable );
1277 CSL_FINS( pDesc->
descInfo, UDMAP_CPPI5_TRPD_DESCINFO_RLDIDX, reloadIdx );
1292 return (uint32_t)CSL_FEXT( pDesc->
pktInfo, UDMAP_CPPI5_TRPD_PKTINFO_RECSIZE );
1315 CSL_FINS( pDesc->
pktInfo, UDMAP_CPPI5_TRPD_PKTINFO_RECSIZE, entryStride );
1322 #endif // extern "C" static uint32_t CSL_udmapCppi5GetPktType(const void *pDesc)
Get packet type.
Definition: csl_udmap_cppi5.h:1004
static uint32_t CSL_udmapCppi5GetPktLen(const void *pDesc)
Get the packet length.
Definition: csl_udmap_cppi5.h:353
static bool CSL_udmapCppi5IsEpiDataPresent(const void *pDesc)
Is the EPI block present in the descriptor?
Definition: csl_udmap_cppi5.h:598
uint32_t pktInfo2
Definition: csl_udmap_cppi5.h:125
static void CSL_udmapCppi5SetBufferLen(CSL_UdmapCppi5HMPD *pDesc, uint32_t bufferLenBytes)
Set the buffer length.
Definition: csl_udmap_cppi5.h:536
static void CSL_udmapCppi5SetReturnPolicy(void *pDesc, uint32_t descType, uint32_t retPolicy, uint32_t earlyReturn, uint32_t retPushPolicy, uint32_t retQnum)
Set descriptor return policy information.
Definition: csl_udmap_cppi5.h:1169
static uint32_t CSL_udmapCppi5GetErrorFlags(const void *pDesc)
Get error flags.
Definition: csl_udmap_cppi5.h:952
static int32_t CSL_udmapCppi5RdEpiData(const void *pDesc, uint32_t *pTsInfo, uint32_t *pSwInfo0, uint32_t *pSwInfo1, uint32_t *pSwInfo2)
Read the EPI block data.
Definition: csl_udmap_cppi5.h:677
uint64_t orgBufPtr
Definition: csl_udmap_cppi5.h:110
uint32_t swInfo0
Definition: csl_udmap_cppi5.h:89
static void CSL_udmapCppi5SetDstTag(void *pDesc, uint32_t dstTag)
Set destination tag.
Definition: csl_udmap_cppi5.h:935
uint32_t swInfo1
Definition: csl_udmap_cppi5.h:90
static void CSL_udmapCppi5MonoSetPktLen(void *pDesc, uint32_t pktLen)
Set the packet length of mono mode packet descriptors.
Definition: csl_udmap_cppi5.h:430
static void CSL_udmapCppi5SetPsFlags(void *pDesc, uint32_t psFlags)
Set ps flags.
Definition: csl_udmap_cppi5.h:987
static uint64_t CSL_udmapCppi5GetBufferAddr(const CSL_UdmapCppi5HMPD *pDesc)
Get the buffer address.
Definition: csl_udmap_cppi5.h:462
Definition: csl_udmap_cppi5.h:205
static void CSL_udmapCppi5LinkDesc(CSL_UdmapCppi5HMPD *pDesc, uint64_t physBufferDescAddr)
Link a buffer descriptor to a descriptor.
Definition: csl_udmap_cppi5.h:579
static uint64_t CSL_udmapCppi5GetPsDataAddr(const void *pDesc, bool bInSopBuf, bool bEpiPresent)
Return address of the protocol-specific data.
Definition: csl_udmap_cppi5.h:818
uint64_t nextDescPtr
Definition: csl_udmap_cppi5.h:106
#define CSL_UDMAP_CPPI5_PD_DESCINFO_DTYPE_VAL_HOST
Definition: csl_udmap_cppi5.h:137
static void CSL_udmapCppi5SetPktLen(void *pDesc, uint32_t descType, uint32_t pktLen)
Set the packet length.
Definition: csl_udmap_cppi5.h:392
uint32_t descInfo
Definition: csl_udmap_cppi5.h:123
static void CSL_udmapCppi5TrGetReload(const CSL_UdmapCppi5TRPD *pDesc, uint32_t *pReloadEnable, uint32_t *pReloadIdx)
Get TR descriptor reload information.
Definition: csl_udmap_cppi5.h:1245
static void CSL_udmapCppi5TrSetReload(CSL_UdmapCppi5TRPD *pDesc, uint32_t reloadEnable, uint32_t reloadIdx)
Set TR descriptor reload information.
Definition: csl_udmap_cppi5.h:1274
static void CSL_udmapCppi5SetPsDataLoc(void *pDesc, uint32_t psLoc)
Set the location of the protocol-specific data.
Definition: csl_udmap_cppi5.h:755
static uint32_t CSL_udmapCppi5GetPsDataLen(const void *pDesc)
Get the number of bytes of protocol-specific data.
Definition: csl_udmap_cppi5.h:773
#define CSL_UDMAP_CPPI5_PD_DESCINFO_DTYPE_VAL_MONO
Definition: csl_udmap_cppi5.h:138
static void CSL_udmapCppi5MonoSetDataOffset(CSL_UdmapCppi5MMPD *pDesc, uint32_t dataOffset)
Set MONO descriptor data offset.
Definition: csl_udmap_cppi5.h:1227
uint32_t descInfo
Definition: csl_udmap_cppi5.h:207
static void CSL_udmapCppi5SetBufferAddr(CSL_UdmapCppi5HMPD *pDesc, uint64_t physBufferAddr)
Set the buffer address.
Definition: csl_udmap_cppi5.h:498
uint32_t srcDstTag
Definition: csl_udmap_cppi5.h:126
static uint32_t CSL_udmapCppi5GetDescType(const void *pDesc)
Get the descriptor type.
Definition: csl_udmap_cppi5.h:311
uint32_t swInfo2
Definition: csl_udmap_cppi5.h:91
#define CSL_UDMAP_CPPI5_PD_PKTINFO1_PKTID_MASK
Definition: csl_udmap_cppi5.h:158
uint32_t descInfo
Definition: csl_udmap_cppi5.h:102
uint32_t bufInfo1
Definition: csl_udmap_cppi5.h:108
#define CSL_UDMAP_CPPI5_TRPD_PKTINFO_PKTID_MASK
Definition: csl_udmap_cppi5.h:234
static uint32_t CSL_udmapCppi5MonoGetDataOffset(const CSL_UdmapCppi5MMPD *pDesc)
Get MONO descriptor data offset.
Definition: csl_udmap_cppi5.h:1210
static void CSL_udmapCppi5SetIds(void *pDesc, uint32_t descType, uint32_t pktId, uint32_t flowId)
Set IDs.
Definition: csl_udmap_cppi5.h:1066
#define CSL_UDMAP_CPPI5_PD_DESCINFO_DTYPE_VAL_TR
Definition: csl_udmap_cppi5.h:139
#define NULL
Define NULL if not defined.
Definition: csl_types.h:107
static void CSL_udmapCppi5SetOrgBufferLen(CSL_UdmapCppi5HMPD *pDesc, uint32_t bufferLenBytes)
Set the original buffer length.
Definition: csl_udmap_cppi5.h:555
static uint32_t CSL_udmapCppi5GetSrcTag(const void *pDesc)
Get source tag.
Definition: csl_udmap_cppi5.h:891
static void CSL_udmapCppi5SetSrcTag(void *pDesc, uint32_t srcTag)
Set source tag.
Definition: csl_udmap_cppi5.h:920
uint32_t pktInfo1
Definition: csl_udmap_cppi5.h:124
uint32_t pktInfo2
Definition: csl_udmap_cppi5.h:104
static void CSL_udmapCppi5SetDescType(void *pDesc, uint32_t descType)
Set the descriptor type.
Definition: csl_udmap_cppi5.h:332
static void CSL_udmapCppi5GetReturnPolicy(const void *pDesc, uint32_t *pRetPolicy, uint32_t *pEarlyReturn, uint32_t *pRetPushPolicy, uint32_t *pRetQnum)
Get descriptor return policy information.
Definition: csl_udmap_cppi5.h:1105
static uint8_t * CSL_udmapCppi5GetPsDataPtr(const void *pDesc)
Definition: csl_udmap_cppi5.h:847
#define CSL_UDMAP_CPPI5_TRPD_PKTINFO_FLOWID_MASK
Definition: csl_udmap_cppi5.h:236
uint64_t bufPtr
Definition: csl_udmap_cppi5.h:107
static void CSL_udmapCppi5WrEpiData(const void *pDesc, uint32_t tsInfo, uint32_t swInfo0, uint32_t swInfo1, uint32_t swInfo2)
Write the EPI block data.
Definition: csl_udmap_cppi5.h:710
static void CSL_udmapCppi5TrSetEntryStride(CSL_UdmapCppi5TRPD *pDesc, uint32_t nomElSz)
Set TR descriptor entry stride.
Definition: csl_udmap_cppi5.h:1313
uint32_t orgBufLen
Definition: csl_udmap_cppi5.h:109
#define CSL_UDMAP_CPPI5_PD_PKTINFO2_PKTTYPE_MASK
Definition: csl_udmap_cppi5.h:163
static uint32_t CSL_udmapCppi5GetDstTag(const void *pDesc)
Get destination tag.
Definition: csl_udmap_cppi5.h:905
static void CSL_udmapCppi5GetIds(const void *pDesc, uint32_t *pPktId, uint32_t *pFlowId)
Get IDs.
Definition: csl_udmap_cppi5.h:1038
static uint32_t CSL_udmapCppi5TrGetEntryStride(const CSL_UdmapCppi5TRPD *pDesc)
Get TR descriptor entry stride.
Definition: csl_udmap_cppi5.h:1290
static void CSL_udmapCppi5TrSetPktLen(void *pDesc, uint32_t pktLen)
Set the packet length of TR mode packet descriptors.
Definition: csl_udmap_cppi5.h:445
Monolithic-mode packet descriptor.
Definition: csl_udmap_cppi5.h:121
static void CSL_udmapCppi5SetPsDataLen(void *pDesc, uint32_t psDataLen)
Set the number of bytes of protocol-specific data.
Definition: csl_udmap_cppi5.h:794
static uint32_t CSL_udmapCppi5GetBufferLen(const CSL_UdmapCppi5HMPD *pDesc)
Get the buffer length.
Definition: csl_udmap_cppi5.h:479
#define CSL_UDMAP_CPPI5_PD_PKTINFO2_DATA_OFFSET_MASK
Definition: csl_udmap_cppi5.h:169
static void CSL_udmapCppi5HostSetPktLen(void *pDesc, uint32_t pktLen)
Set the packet length of host mode packet descriptors.
Definition: csl_udmap_cppi5.h:415
static uint32_t * CSL_udmapCppi5GetEpiDataPtr(const void *pDesc)
Return pointer to EPI block data.
Definition: csl_udmap_cppi5.h:639
#define CSL_UDMAP_CPPI5_PD_DESCINFO_PSINFO_VAL_IN_DESC
Definition: csl_udmap_cppi5.h:146
uint32_t tsInfo
Definition: csl_udmap_cppi5.h:88
uint32_t retInfo
Definition: csl_udmap_cppi5.h:209
static void CSL_udmapCppi5SetOrgBufferAddr(CSL_UdmapCppi5HMPD *pDesc, uint64_t physBufferAddr)
Set the original buffer address.
Definition: csl_udmap_cppi5.h:517
uint32_t srcDstTag
Definition: csl_udmap_cppi5.h:105
static uint32_t CSL_udmapCppi5GetPsDataLoc(const void *pDesc)
Get the location of the protocol-specific data.
Definition: csl_udmap_cppi5.h:736
static void CSL_udmapCppi5SetEpiDataPresent(void *pDesc, bool bEpiDataPresent)
Set indicator if the EPI block is present in the descriptor.
Definition: csl_udmap_cppi5.h:620
static void CSL_udmapCppi5SetPktType(void *pDesc, uint32_t pktType)
Set packet type.
Definition: csl_udmap_cppi5.h:1022
uint32_t srcDstTag
Definition: csl_udmap_cppi5.h:210
#define CSL_UDMAP_CPPI5_PD_PKTINFO1_FLOWID_MASK
Definition: csl_udmap_cppi5.h:160
Host-mode packet and buffer descriptor.
Definition: csl_udmap_cppi5.h:100
Extended Packet Info (EPI) block.
Definition: csl_udmap_cppi5.h:86
uint32_t pktInfo1
Definition: csl_udmap_cppi5.h:103
static uint32_t CSL_udmapCppi5GetPsFlags(const void *pDesc)
Get ps flags.
Definition: csl_udmap_cppi5.h:969
uint32_t pktInfo
Definition: csl_udmap_cppi5.h:208