Data Structures | Macros | Typedefs | Enumerations
enet_ioctl.h File Reference

This file contains the type definitions and helper macros for the Enet IOCTL interface. More...

#include <stdint.h>
#include <stdbool.h>

Data Structures

struct  Enet_IoctlPrms_s
 Enet IOCTL param. More...
 

Macros

#define ENET_IOCTL_TYPE_OFFSET   (24U)
 IOCTL type bit offset.
 
#define ENET_IOCTL_PER_OFFSET   (16U)
 IOCTL hardware peripheral bit offset.
 
#define ENET_IOCTL_MAJOR_OFFSET   (8U)
 IOCTL major number bit offset.
 
#define ENET_IOCTL_MINOR_OFFSET   (0U)
 IOCTL minor number bit offset.
 
#define ENET_IOCTL_GET_TYPE(x)   ((x) & 0xFF000000U)
 Helper macro to get the IOCTL type (public/private).
 
#define ENET_IOCTL_GET_PER(x)   ((x) & 0x00FF0000U)
 Helper macro to get the peripheral type.
 
#define ENET_IOCTL_GET_MAJ(x)   ((x) & 0x0000FF00U)
 Helper macro to get the IOCTL major number.
 
#define ENET_IOCTL_GET_MIN(x)   ((x) & 0x000000FFU)
 Helper macro to get the IOCTL major number.
 
#define ENET_IOCTL_TYPE(x)   ((x) << ENET_IOCTL_TYPE_OFFSET)
 Helper macro to set the IOCTL type.
 
#define ENET_IOCTL_PER(x)   ((x) << ENET_IOCTL_PER_OFFSET)
 Helper macro to set the IOCTL type.
 
#define ENET_IOCTL_MAJ(x)   ((x) << ENET_IOCTL_MAJOR_OFFSET)
 Helper macro to set the IOCTL major number.
 
#define ENET_IOCTL_MIN(x)   ((x) << ENET_IOCTL_MINOR_OFFSET)
 Helper macro to set the IOCTL minor number.
 
#define ENET_IOCTL_SET_NO_ARGS(prms)
 Set null args for an IOCTL command that takes no arguments. More...
 
#define ENET_IOCTL_SET_IN_ARGS(prms, in)
 Set the input args for an IOCTL command. More...
 
#define ENET_IOCTL_SET_OUT_ARGS(prms, out)
 Set the output args for an IOCTL command. More...
 
#define ENET_IOCTL_SET_INOUT_ARGS(prms, in, out)
 Set the input and output args for an IOCTL command. More...
 
#define ENET_PUBLIC_IOCTL(x)   (ENET_IOCTL_ENET_BASE | ENET_IOCTL_MIN(x))
 Helper macro for Enet public IOCTL command ids.
 

Typedefs

typedef struct Enet_IoctlPrms_s Enet_IoctlPrms
 Enet IOCTL param. More...
 

Enumerations

enum  Enet_IoctlType_e { ENET_IOCTL_TYPE_PUBLIC = ENET_IOCTL_TYPE(0U), ENET_IOCTL_TYPE_PRIVATE = ENET_IOCTL_TYPE(1U) }
 IOCTL types. More...
 
enum  Enet_IoctlPer_e { ENET_IOCTL_PER_CPSW = ENET_IOCTL_PER(0U), ENET_IOCTL_PER_ICSSG = ENET_IOCTL_PER(1U), ENET_IOCTL_PER_GMAC = ENET_IOCTL_PER(2U) }
 IOCTL peripheral types. More...
 
enum  Enet_IoctlMajor_e {
  ENET_IOCTL_PER_BASE = ENET_IOCTL_MAJ(1U), ENET_IOCTL_FDB_BASE = ENET_IOCTL_MAJ(2U), ENET_IOCTL_TIMESYNC_BASE = ENET_IOCTL_MAJ(3U), ENET_IOCTL_HOSTPORT_BASE = ENET_IOCTL_MAJ(4U),
  ENET_IOCTL_MACPORT_BASE = ENET_IOCTL_MAJ(5U), ENET_IOCTL_MDIO_BASE = ENET_IOCTL_MAJ(6U), ENET_IOCTL_STATS_BASE = ENET_IOCTL_MAJ(7U)
}
 IOCTL base number. More...
 

Detailed Description

This file contains the type definitions and helper macros for the Enet IOCTL interface.


Copyright 2020, Texas Instruments Incorporated