|
AM64x MCU+ SDK
08.02.00
|
|
Go to the documentation of this file.
66 #define ENET_IOCTL_TYPE_OFFSET (24U)
69 #define ENET_IOCTL_PER_OFFSET (16U)
72 #define ENET_IOCTL_MAJOR_OFFSET (8U)
75 #define ENET_IOCTL_MINOR_OFFSET (0U)
78 #define ENET_IOCTL_GET_TYPE(x) ((x) & 0xFF000000U)
81 #define ENET_IOCTL_GET_PER(x) ((x) & 0x00FF0000U)
84 #define ENET_IOCTL_GET_MAJ(x) ((x) & 0x0000FF00U)
87 #define ENET_IOCTL_GET_MIN(x) ((x) & 0x000000FFU)
90 #define ENET_IOCTL_TYPE(x) ((x) << ENET_IOCTL_TYPE_OFFSET)
93 #define ENET_IOCTL_PER(x) ((x) << ENET_IOCTL_PER_OFFSET)
96 #define ENET_IOCTL_MAJ(x) ((x) << ENET_IOCTL_MAJOR_OFFSET)
99 #define ENET_IOCTL_MIN(x) ((x) << ENET_IOCTL_MINOR_OFFSET)
104 #define ENET_IOCTL_SET_NO_ARGS(prms) \
106 (prms)->inArgs = NULL; \
107 (prms)->inArgsSize = 0U; \
108 (prms)->outArgs = NULL; \
109 (prms)->outArgsSize = 0U; \
115 #define ENET_IOCTL_SET_IN_ARGS(prms, in) \
117 (prms)->inArgs = (in); \
118 (prms)->inArgsSize = sizeof(*(in)); \
119 (prms)->outArgs = NULL; \
120 (prms)->outArgsSize = 0U; \
126 #define ENET_IOCTL_SET_OUT_ARGS(prms, out) \
128 (prms)->inArgs = NULL; \
129 (prms)->inArgsSize = 0U; \
130 (prms)->outArgs = (out); \
131 (prms)->outArgsSize = sizeof(*(out)); \
137 #define ENET_IOCTL_SET_INOUT_ARGS(prms, in, out) \
139 (prms)->inArgs = (in); \
140 (prms)->inArgsSize = sizeof(*(in)); \
141 (prms)->outArgs = (out); \
142 (prms)->outArgsSize = sizeof(*(out)); \
149 #define ENET_IOCTL_VALID_PRMS(cmdId, inSize, outSize) \
150 [ENET_IOCTL_GET_MIN(cmdId)] = \
153 .inArgsSize = (inSize), \
154 .outArgsSize = (outSize), \
232 typedef struct Enet_IoctlPrms_s
253 typedef struct Enet_IoctlValidate_s
288 uint32_t inArgsSize);
316 uint32_t outArgsSize);
346 uint32_t outArgsSize);
348 #if ENET_CFG_IS_ON(DEV_ERROR)
385 int32_t Enet_validateIoctl(uint32_t cmd,
388 uint32_t numValidIoctls);
404 return ((prms != NULL) &&
412 return ((prms != NULL) &&
419 uint32_t outArgsSize)
421 return ((prms != NULL) &&
429 return ((prms != NULL) &&
437 uint32_t outArgsSize)
439 return ((prms != NULL) &&
@ ENET_IOCTL_PER_CPSW
Definition: enet_ioctl.h:182
Enet_IoctlMajor_e
IOCTL base number.
Definition: enet_ioctl.h:195
@ ENET_IOCTL_HOSTPORT_BASE
Definition: enet_ioctl.h:206
Enet IOCTL expected param sizes.
Definition: enet_ioctl.h:254
#define ENET_EMALFORMEDIOCTL
Malformed IOCTL (args pointer or size not as expected).
Definition: enet_types.h:118
uint32_t cmd
Definition: enet_ioctl.h:256
@ ENET_IOCTL_TYPE_PUBLIC
Definition: enet_ioctl.h:167
@ ENET_IOCTL_PER_BASE
Definition: enet_ioctl.h:197
#define ENET_IOCTL_MAJ(x)
Helper macro to set the IOCTL major number.
Definition: enet_ioctl.h:96
Enet_IoctlType_e
IOCTL types.
Definition: enet_ioctl.h:165
static uint32_t Enet_checkInArgs(const Enet_IoctlPrms *prms, uint32_t inArgsSize)
Check IOCTL input args for commands that expect an input.
Definition: enet_ioctl.h:401
Enet IOCTL param.
Definition: enet_ioctl.h:233
@ ENET_IOCTL_PER_GENERIC
Definition: enet_ioctl.h:179
@ ENET_IOCTL_STATS_BASE
Definition: enet_ioctl.h:215
@ ENET_IOCTL_PER_ICSSG
Definition: enet_ioctl.h:185
#define ENET_IOCTL_PER(x)
Helper macro to set the IOCTL type.
Definition: enet_ioctl.h:93
@ ENET_IOCTL_MDIO_BASE
Definition: enet_ioctl.h:212
@ ENET_IOCTL_FDB_BASE
Definition: enet_ioctl.h:200
@ ENET_IOCTL_PHY_BASE
Definition: enet_ioctl.h:218
Enet_IoctlPer_e
IOCTL peripheral types.
Definition: enet_ioctl.h:177
uint32_t inArgsSize
Definition: enet_ioctl.h:259
@ ENET_IOCTL_RM_BASE
Definition: enet_ioctl.h:221
@ ENET_IOCTL_PER_GMAC
Definition: enet_ioctl.h:188
static uint32_t Enet_checkNoOutArgs(const Enet_IoctlPrms *prms)
Check IOCTL output args for commands that don't have output.
Definition: enet_ioctl.h:427
@ ENET_IOCTL_MACPORT_BASE
Definition: enet_ioctl.h:209
@ ENET_IOCTL_TIMESYNC_BASE
Definition: enet_ioctl.h:203
const void * inArgs
Definition: enet_ioctl.h:235
@ ENET_IOCTL_TAS_BASE
Definition: enet_ioctl.h:224
@ ENET_IOCTL_TYPE_PRIVATE
Definition: enet_ioctl.h:170
#define ENET_SOK
Success.
Definition: enet_types.h:76
uint32_t inArgsSize
Definition: enet_ioctl.h:238
static uint32_t Enet_checkInOutArgs(const Enet_IoctlPrms *prms, uint32_t inArgsSize, uint32_t outArgsSize)
Check IOCTL input and output args.
Definition: enet_ioctl.h:435
static uint32_t Enet_checkNoInArgs(const Enet_IoctlPrms *prms)
Check IOCTL input args for commands that don't expect an input.
Definition: enet_ioctl.h:410
uint32_t outArgsSize
Definition: enet_ioctl.h:244
This file contains the Enet configuration parameters.
#define ENET_IOCTL_TYPE(x)
Helper macro to set the IOCTL type.
Definition: enet_ioctl.h:90
static uint32_t Enet_checkOutArgs(const Enet_IoctlPrms *prms, uint32_t outArgsSize)
Check IOCTL output args for commands that expect an output.
Definition: enet_ioctl.h:418
void * outArgs
Definition: enet_ioctl.h:241
uint32_t outArgsSize
Definition: enet_ioctl.h:262