Macros | Typedefs | Enumerations | Functions
enet_dma_pktutils.h File Reference

Enet DMA utility API to check packet and descriptor ownership states during development and debug. More...

#include <stdarg.h>

Macros

#define ENET_UTILS_GET_STATE(state, mask, bitshift)
 
#define ENET_UTILS_SET_STATE(state, mask, bitshift, value)
 
#define ENET_UTILS_DRIVER_STATE_MASK   (0x000000FFU)
 
#define ENET_UTILS_DRIVER_STATE_BIT_SHIFT   (0U)
 
#define ENET_UTILS_MEMUTILS_STATE_MASK   (0x0000FF00U)
 
#define ENET_UTILS_MEMUTILS_STATE_BIT_SHIFT   (8U)
 
#define ENET_UTILS_APP_STATE_MASK   (0x00FF0000U)
 
#define ENET_UTILS_APP_STATE_BIT_SHIFT   (16U)
 
#define ENET_UTILS_GET_PKT_DRIVER_STATE(state)
 
#define ENET_UTILS_SET_PKT_DRIVER_STATE(state, value)
 
#define ENET_UTILS_GET_PKT_MEMUTILS_STATE(state)
 
#define ENET_UTILS_SET_PKT_MEMUTILS_STATE(state, value)
 
#define ENET_UTILS_GET_PKT_APP_STATE(state)
 
#define ENET_UTILS_SET_PKT_APP_STATE(state, value)
 
#define ENET_UTILS_MEMUTILS_DESCSTATE_MASK   (0x000000FFU)
 
#define ENET_UTILS_MEMUTILS_DESCSTATE_SHIFT   (0U)
 
#define ENET_UTILS_GET_DESC_MEMUTILS_STATE(state)
 
#define ENET_UTILS_SET_DESC_MEMUTILS_STATE(state, value)
 

Typedefs

typedef enum
EnetDma_DescStateMemMgr_e 
EnetDma_DescStateMemMgr
 Enet DMA Descriptor state. More...
 
typedef enum EnetDma_PktStateApp_e EnetDma_PktStateApp
 App Pkt state. More...
 
typedef enum EnetDma_PktStateDma_e EnetDma_PktStateDma
 DMA Pkt state. More...
 
typedef enum
EnetDma_PktStateMemMgr_e 
EnetDma_PktStateMemMgr
 Enet DMA Pkt state. More...
 
typedef enum
EnetDma_PktStateModuleType_e 
EnetDma_PktStateModuleType
 Enet DMA Pkt state. More...
 

Enumerations

enum  EnetDma_DescStateMemMgr_e { ENET_DESCSTATE_MEMMGR_FREE = 0U, ENET_DESCSTATE_MEMMGR_ALLOC }
 Enet DMA Descriptor state. More...
 
enum  EnetDma_PktStateApp_e { ENET_PKTSTATE_APP_WITH_FREEQ = 0U, ENET_PKTSTATE_APP_WITH_READYQ, ENET_PKTSTATE_APP_WITH_DRIVER }
 App Pkt state. More...
 
enum  EnetDma_PktStateDma_e { ENET_PKTSTATE_DMA_WITH_HW = 0U, ENET_PKTSTATE_DMA_NOT_WITH_HW }
 DMA Pkt state. More...
 
enum  EnetDma_PktStateMemMgr_e { ENET_PKTSTATE_MEMMGR_FREE = 0U, ENET_PKTSTATE_MEMMGR_ALLOC }
 Enet DMA Pkt state. More...
 
enum  EnetDma_PktStateModuleType_e { ENET_PKTSTATE_MODULE_APP = 0U, ENET_PKTSTATE_MODULE_DRIVER, ENET_PKTSTATE_MODULE_MEMUTILS }
 Enet DMA Pkt state. More...
 

Functions

void EnetDma_checkPktState (uint32_t *pStateVar, EnetDma_PktStateModuleType module, uint32_t expectedState, uint32_t newState)
 Packet state check & set API for app, memory manager and dma driver. More...
 
void EnetDma_checkDescState (uint32_t *pStateVar, EnetDma_DescStateMemMgr expectedState, EnetDma_DescStateMemMgr newState)
 Descriptor state check & set API for descriptor memory manager. More...
 

Detailed Description

Enet DMA utility API to check packet and descriptor ownership states during development and debug.

Macro Definition Documentation

#define ENET_UTILS_GET_DESC_MEMUTILS_STATE (   state)
Value:
(ENET_UTILS_GET_STATE(state, \
ENET_UTILS_MEMUTILS_DESCSTATE_MASK, \
ENET_UTILS_MEMUTILS_DESCSTATE_SHIFT))
#define ENET_UTILS_GET_PKT_APP_STATE (   state)
Value:
(ENET_UTILS_GET_STATE(state, \
ENET_UTILS_APP_STATE_MASK, \
ENET_UTILS_APP_STATE_BIT_SHIFT))
#define ENET_UTILS_GET_PKT_DRIVER_STATE (   state)
Value:
(ENET_UTILS_GET_STATE(state, \
ENET_UTILS_DRIVER_STATE_MASK, \
ENET_UTILS_DRIVER_STATE_BIT_SHIFT))
#define ENET_UTILS_GET_PKT_MEMUTILS_STATE (   state)
Value:
(ENET_UTILS_GET_STATE(state, \
ENET_UTILS_MEMUTILS_STATE_MASK, \
ENET_UTILS_MEMUTILS_STATE_BIT_SHIFT))
#define ENET_UTILS_GET_STATE (   state,
  mask,
  bitshift 
)
Value:
({while (false) {; } \
})
#define ENET_UTILS_SET_DESC_MEMUTILS_STATE (   state,
  value 
)
Value:
(ENET_UTILS_SET_STATE(state, \
ENET_UTILS_MEMUTILS_DESCSTATE_MASK, \
ENET_UTILS_MEMUTILS_DESCSTATE_SHIFT, \
value))
#define ENET_UTILS_SET_PKT_APP_STATE (   state,
  value 
)
Value:
(ENET_UTILS_SET_STATE(state, \
ENET_UTILS_APP_STATE_MASK, \
ENET_UTILS_APP_STATE_BIT_SHIFT, \
value))
#define ENET_UTILS_SET_PKT_DRIVER_STATE (   state,
  value 
)
Value:
(ENET_UTILS_SET_STATE(state, \
ENET_UTILS_DRIVER_STATE_MASK, \
ENET_UTILS_DRIVER_STATE_BIT_SHIFT, \
value))
#define ENET_UTILS_SET_PKT_MEMUTILS_STATE (   state,
  value 
)
Value:
(ENET_UTILS_SET_STATE(state, \
ENET_UTILS_MEMUTILS_STATE_MASK, \
ENET_UTILS_MEMUTILS_STATE_BIT_SHIFT, \
value))
#define ENET_UTILS_SET_STATE (   state,
  mask,
  bitshift,
  value 
)
Value:
({while (false) {; } \
})

Typedef Documentation

Enet DMA Descriptor state.

DMA descriptor state used by Enet DMA driver for sanity check.

App Pkt state.

Packet state for application

DMA Pkt state.

Packet state for DMA

Enet DMA Pkt state.

Packet state for memory manager

Enet DMA Pkt state.

Type of Enet DMA Pkt state.

Enumeration Type Documentation

Enet DMA Descriptor state.

DMA descriptor state used by Enet DMA driver for sanity check.

Enumerator
ENET_DESCSTATE_MEMMGR_FREE 

Desc free

ENET_DESCSTATE_MEMMGR_ALLOC 

Desc Allocated

App Pkt state.

Packet state for application

Enumerator
ENET_PKTSTATE_APP_WITH_FREEQ 

Packet with APP Free queue

ENET_PKTSTATE_APP_WITH_READYQ 

Packet with APP Ready queue

ENET_PKTSTATE_APP_WITH_DRIVER 

Packet with Driver

DMA Pkt state.

Packet state for DMA

Enumerator
ENET_PKTSTATE_DMA_WITH_HW 

Packet with HW

ENET_PKTSTATE_DMA_NOT_WITH_HW 

Packet not with HW

Enet DMA Pkt state.

Packet state for memory manager

Enumerator
ENET_PKTSTATE_MEMMGR_FREE 

Packet free

ENET_PKTSTATE_MEMMGR_ALLOC 

Packet Allocated

Enet DMA Pkt state.

Type of Enet DMA Pkt state.

Enumerator
ENET_PKTSTATE_MODULE_APP 

Module type is app

ENET_PKTSTATE_MODULE_DRIVER 

Module type is DMA Driver

ENET_PKTSTATE_MODULE_MEMUTILS 

Module type is MEM Mgr

Function Documentation

void EnetDma_checkDescState ( uint32_t *  pStateVar,
EnetDma_DescStateMemMgr  expectedState,
EnetDma_DescStateMemMgr  newState 
)

Descriptor state check & set API for descriptor memory manager.

This development time API checks expected state and sets new descriptor state. This is used by modules handling the Desc to confirm the Desc is returned and allocated in correct state. Only memutils modules uses it now for checking if desc is free or allocated while allocating or freeing desc respectively.

Parameters
pStateVar[IN/OUT] Pointer to Desc state variable.
expectedState[IN] State Desc is expected to be.
newState[IN] New state Desc is set to.
Note
- memory manager may not allocate the descState as this is optional check for MemMgr.
void EnetDma_checkPktState ( uint32_t *  pStateVar,
EnetDma_PktStateModuleType  module,
uint32_t  expectedState,
uint32_t  newState 
)

Packet state check & set API for app, memory manager and dma driver.

This development time API checks expected state and sets new packet state. This is used by modules handling the packet to confirm the packet is returned and allocated in correct state. Memutils checks (free, allocated), dma driver checks (with Hw, with driver) and app checks which queue it belongs

Parameters
pStateVar[IN/OUT] Pointer to packet state variable of packet structure EnetDma_PktInfo
module[IN] Module id. Refer to EnetDma_PktStateModuleType
expectedState[IN] State packet is expected to be.
newState[IN] New state packet is set to.
Note
- Optional for MemMgr and app. DMA driver mandatory uses when ENET_CFG_DEV_ERROR is defined.

Copyright 2020, Texas Instruments Incorporated