45 #ifndef ENET_RM_PRIV_H_ 46 #define ENET_RM_PRIV_H_ 67 #define ENET_RM_PRIVATE_IOCTL(x) (ENET_IOCTL_TYPE_PRIVATE | \ 68 ENET_IOCTL_RM_BASE | \ 69 ENET_IOCTL_PER_GENERIC | \ 79 typedef enum EnetRm_PrivIoctls_e
139 typedef struct EnetRm_ValidatePermissionInArgs_s
151 typedef struct EnetRm_AllocInternalRxFlowInArgs_s
163 typedef struct EnetRm_FreeInternalRxFlowInArgs_s
183 typedef struct EnetRm_Cfg_s
216 typedef struct EnetRm_ResEntry_s
231 typedef struct EnetRm_CoreResInfo_s
243 typedef struct EnetRm_CoreResTbl_s
255 typedef struct EnetRm_TxChObj_s
273 typedef struct EnetRm_RxFlowIdxObj_s
294 typedef struct EnetRm_MacAddressObj_s
309 typedef struct EnetRm_CoreAttachInfo_s
321 typedef struct EnetRm_Obj_s
Input args for ENET_RM_IOCTL_INTERNAL_ALLOC_RX_FLOW command.
Definition: enet_rm_priv.h:151
EnetRm_MacAddressPool macList
Definition: enet_rm_priv.h:210
EnetQ resQ
Definition: enet_rm_priv.h:237
Enet_Type
Ethernet peripheral type.
Definition: enet_types.h:195
Attach core.
Definition: enet_rm_priv.h:97
A generic node structure for a single link list.
Definition: enet_queue.h:73
EnetRm_Obj * EnetRm_Handle
Enet RM module handle.
Definition: enet_rm_priv.h:348
Input args for ENET_RM_IOCTL_VALIDATE_PERMISSION command.
Definition: enet_rm_priv.h:139
#define ENET_CFG_REMOTE_CLIENT_CORES_MAX
Maximum number of client core that the Enet driver can serve.
Definition: enet_cfg.h:142
uint32_t internalAllocCount
Definition: enet_rm_priv.h:279
This file contains the type definitions and helper macros for the Enet software queue.
uint32_t numCores
Definition: enet_rm_priv.h:246
Enet Resource Manager driver object.
Definition: enet_rm_priv.h:321
#define ENET_CFG_RM_RX_CH_MAX
Maximum number of RX channels that Enet RM can manage.
Definition: enet_cfg.h:151
uint32_t numRxCh
Definition: enet_rm_priv.h:195
Enet_Type enetType
Definition: enet_rm_priv.h:186
EnetRm_Cfg cfg
Definition: enet_rm_priv.h:327
Detach core.
Definition: enet_rm_priv.h:106
Internal RX flow allocation.
Definition: enet_rm_priv.h:115
Generic queue.
Definition: enet_queue.h:82
EnetQ_Node node
Definition: enet_rm_priv.h:219
Internal RX flow free.
Definition: enet_rm_priv.h:124
uint32_t internalAllocCoreId
Definition: enet_rm_priv.h:276
EnetRm_TxChObj txObj
Definition: enet_rm_priv.h:330
Ethernet Module object.
Definition: enet_mod.h:136
#define ENET_CFG_RM_TX_CH_MAX
Maximum number of TX channels that Enet RM can manage.
Definition: enet_cfg.h:148
Resource table of all cores.
Definition: enet_rm_priv.h:243
MAC address resources.
Definition: enet_rm_priv.h:294
Resources of a given core.
Definition: enet_rm_priv.h:231
Validate IOCTL permission.
Definition: enet_rm_priv.h:88
uint32_t resCnt
Definition: enet_rm_priv.h:297
EnetRm_MacAddressObj macObj
Definition: enet_rm_priv.h:339
void EnetRm_close(EnetMod_Handle hMod)
Close Enet RM module.
Input args for ENET_RM_IOCTL_FREE_RX_FLOW command.
Definition: enet_rm_priv.h:163
#define ENET_RM_NUM_RXCHAN_MAX
Maximum number of RX channels (i.e. sets of flows).
Definition: enet_rm.h:100
uint32_t txPSILThreadIdOffset
Definition: enet_rm_priv.h:258
This file contains the type definitions and helper macros for the Enet Resource Manager module.
uint32_t cmd
Definition: enet_rm_priv.h:142
EnetRm_CoreResTbl_t macTbl
Definition: enet_rm_priv.h:300
uint32_t id
Definition: enet_rm_priv.h:225
uint32_t flowIdx
Definition: enet_rm_priv.h:172
EnetRm_FreeRxFlowInArgs EnetRm_ValidateRxFlowInArgs
Input args for ENET_RM_IOCTL_VALIDATE_RX_FLOW command.
Definition: enet_rm_priv.h:178
RX resources.
Definition: enet_rm_priv.h:273
EnetRm_PrivIoctls
Enet RM private IOCTL commands.
Definition: enet_rm_priv.h:79
TX resources.
Definition: enet_rm_priv.h:255
int32_t EnetRm_rejoin(EnetMod_Handle hMod, Enet_Type enetType, uint32_t instId)
Rejoin Enet RM module for a running peripheral.
This file contains the OSAL API of the Enet driver.
EnetRm_CoreResTbl_t txResTbl
Definition: enet_rm_priv.h:264
EnetRm_ResPrms resPartInfo
Definition: enet_rm_priv.h:204
Enet RM MAC address pool.
Definition: enet_rm.h:250
Enet RM resource parameters.
Definition: enet_rm.h:201
uint32_t resCnt
Definition: enet_rm_priv.h:261
Information about attached cores.
Definition: enet_rm_priv.h:309
Input args for ENET_RM_IOCTL_FREE_RX_FLOW command.
Definition: enet_rm.h:307
uint32_t ownerCoreId
Definition: enet_rm_priv.h:222
Enet IOCTL param.
Definition: enet_ioctl.h:229
uint32_t coreId
Definition: enet_rm_priv.h:145
int32_t EnetRm_ioctl(EnetMod_Handle hMod, uint32_t cmd, Enet_IoctlPrms *prms)
Run an IOCTL operation on Enet RM.
EnetRm_CoreResTbl_t rxResTbl
Definition: enet_rm_priv.h:285
Validate RX flow is allocated resource and is from a attached core.
Definition: enet_rm_priv.h:133
Enet RM configuration parameters.
Definition: enet_rm_priv.h:183
uint32_t instId
Definition: enet_rm_priv.h:189
struct EnetMod_Obj_s * EnetMod_Handle
Ethernet Module handle.
Definition: enet_mod.h:71
EnetRm_IoctlPermissionTable ioctlPermissionInfo
Definition: enet_rm_priv.h:207
uint32_t numRxCh
Definition: enet_rm_priv.h:336
int32_t EnetRm_open(EnetMod_Handle hMod, Enet_Type enetType, uint32_t instId, const void *cfg, uint32_t cfgSize)
Open and initialize Enet RM module.
uint32_t coreId
Definition: enet_rm_priv.h:154
#define ENET_RM_PRIVATE_IOCTL(x)
Helper macro to create private IOCTL commands for Enet RM module.
Definition: enet_rm_priv.h:67
uint32_t numCores
Definition: enet_rm_priv.h:312
uint32_t resCnt
Definition: enet_rm_priv.h:282
Enet RM IOCTL permission table.
Definition: enet_rm.h:232
uint32_t chIdx
Definition: enet_rm_priv.h:157
EnetRm_CoreAttachInfo coreAttachObj
Definition: enet_rm_priv.h:342
This file contains the type definitions and helper macros for the Enet Module interface.
EnetMod_Obj enetMod
Definition: enet_rm_priv.h:324
uint32_t coreId
Definition: enet_rm_priv.h:234
uint32_t coreId
Definition: enet_rm_priv.h:166
Resource manager entry.
Definition: enet_rm_priv.h:216
#define ENET_CFG_RM_MAC_ADDR_MAX
Maximum number of MAC addresses that Enet RM can manage.
Definition: enet_cfg.h:145
uint32_t chIdx
Definition: enet_rm_priv.h:169
This file contains the Enet configuration parameters.