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_IoctlMajor_e
IOCTL base number.
Definition: enet_ioctl.h:194
#define ENET_IOCTL_TYPE(x)
Helper macro to set the IOCTL type.
Definition: enet_ioctl.h:90
uint32_t inArgsSize
Definition: enet_ioctl.h:259
Definition: enet_ioctl.h:197
#define ENET_IOCTL_MAJ(x)
Helper macro to set the IOCTL major number.
Definition: enet_ioctl.h:96
Definition: enet_ioctl.h:212
uint32_t outArgsSize
Definition: enet_ioctl.h:244
Definition: enet_ioctl.h:206
Enet_IoctlPer_e
IOCTL peripheral types.
Definition: enet_ioctl.h:176
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
Definition: enet_ioctl.h:182
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
Definition: enet_ioctl.h:215
#define ENET_EMALFORMEDIOCTL
Malformed IOCTL (args pointer or size not as expected).
Definition: enet_types.h:118
Definition: enet_ioctl.h:224
Definition: enet_ioctl.h:218
uint32_t outArgsSize
Definition: enet_ioctl.h:262
Definition: enet_ioctl.h:167
#define NULL
Define NULL if not defined.
Definition: csl_types.h:107
uint32_t cmd
Definition: enet_ioctl.h:256
Definition: enet_ioctl.h:185
Definition: enet_ioctl.h:221
Definition: enet_ioctl.h:179
Definition: enet_ioctl.h:188
Enet IOCTL param.
Definition: enet_ioctl.h:232
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
Definition: enet_ioctl.h:203
Definition: enet_ioctl.h:209
uint32_t inArgsSize
Definition: enet_ioctl.h:238
Enet IOCTL expected param sizes.
Definition: enet_ioctl.h:253
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
Definition: enet_ioctl.h:200
const void * inArgs
Definition: enet_ioctl.h:235
#define ENET_SOK
Success.
Definition: enet_types.h:76
void * outArgs
Definition: enet_ioctl.h:241
Definition: enet_ioctl.h:170
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
Enet_IoctlType_e
IOCTL types.
Definition: enet_ioctl.h:164
#define ENET_IOCTL_PER(x)
Helper macro to set the IOCTL type.
Definition: enet_ioctl.h:93
This file contains the Enet configuration parameters.