⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 if_eex.h

📁 IXP425的BSP代码
💻 H
📖 第 1 页 / 共 2 页
字号:
typedef struct ac_iasetup       /* AC_IASETUP - Individual Address Setup */    {    UINT8  ciAddress[EA_SIZE];          /* local ethernet address */    UINT16 ciFill;    } AC_IASETUP;typedef struct ac_config        /* AC_CONFIG - i82586 Configure */    {    UINT8 byteCount;                    /* byte count */    UINT8 fifoLimit;                    /* FIFO limit */    UINT8 srdy_saveBad;                 /* SRD/~ARDY, save bad frames */    UINT8 addrLen_loopback;             /* address length, loopback */    UINT8 backoff;                      /* backoff method */    UINT8 interframe;                   /* interframe spacing */    UINT8 slotTimeLow;                  /* slot time -low byte */    UINT8 slotTimeHi_retry;             /* slot time -upper 3 bits, max retry */    UINT8 promiscuous;                  /* promiscuous mode, other stuff */    UINT8 carrier_collision;            /* carrier sense, collision detect */    UINT8 minFrame;                     /* minimum frame length */    UINT8 notUsed;    UINT16 ccFill;    } AC_CONFIG;typedef struct ac_mcast         /* AC_MCAST - Multicast Setup */    {    UINT16 cmMcCount;                   /* the number of bytes in MC list */    UINT8  cmAddrList[6 * N_MCAST];     /* mulitcast address list */    } AC_MCAST;typedef struct ac_tdr           /* AC_TDR - Time Domain Reflectometry */    {    UINT16 ctInfo;                      /* time, link OK, tx err, line err */    UINT16 ctReserve1;                  /* reserved */    } AC_TDR;typedef struct ac_dump          /* AC_DUMP - Dump */    {    EEX_SHORTLINK bufAddr;              /* address of dump buffer */    } AC_DUMP;/* Command Frame Description and defines */typedef struct cfd              /* CFD - Command Frame Descriptor */    {    volatile UINT16     cfdStatus;      /* command status */    UINT16              cfdCommand;     /* command */    EEX_SHORTLINK       link;           /* address of next CB */    union                               /* command dependent section */        {        struct ac_iasetup       cfd_iasetup;    /* IA setup */        struct ac_config        cfd_config;     /* config */        struct ac_mcast         cfd_mcast;      /* multicast setup */        struct ac_tdr           cfd_tdr;        /* TDR */        struct ac_dump          cfd_dump;       /* dump */        } cfd_cmd;    } CFD;#define cfdIASetup      cfd_cmd.cfd_iasetup#define cfdConfig       cfd_cmd.cfd_config#define cfdMcast        cfd_cmd.cfd_mcast#define cfdTransmit     cfd_cmd.cfd_transmit#define cfdTDR          cfd_cmd.cfd_tdr#define cfdDump         cfd_cmd.cfd_dump#define CFD_C_NOP       0x0000          /* No Operation */#define CFD_C_IASETUP   0x0001          /* Individual Address Setup */#define CFD_C_CONFIG    0x0002          /* Configure Chip */#define CFD_C_MASETUP   0x0003          /* Multicast Setup */#define CFD_C_XMIT      0x0004          /* Transmit (see below too ...) */#define CFD_C_TDR       0x0005          /* Time Domain Reflectometry */#define CFD_C_DUMP      0x0006          /* Dump Registers */#define CFD_C_DIAG      0x0007          /* Diagnose */#define CFD_C_INT       0x2000          /* 586 interrupts CPU after execution */#define CFD_C_SE        0x4000          /* CU should suspend after execution */#define CFD_C_EL        0x8000          /* End of command list */#define CFD_S_ABORTED   0x1000          /* Command was aborted via CU Abort */#define CFD_S_OK        0x2000          /* Command completed successfully */#define CFD_S_BUSY      0x4000          /* CU is executing this command */#define CFD_S_COMPLETE  0x8000          /* Command complete *//* 82586 Transmit/Receive Frames */typedef struct tfd              /* TFD - Transmit Frame Descriptor */    {    volatile UINT16     status;                 /* status field */    UINT16              command;                /* command field */    EEX_SHORTLINK       lNext;                  /* link to next desc. */    EEX_SHORTLINK       lBufDesc;               /* link to buf desc. */    } TFD;/* special TFD specific command block bit masks */#define CFD_S_COLL_MASK 0x000f          /* to access number of collisions */#define CFD_S_RETRY     0x0020          /* reached the max number of retries */#define CFD_S_HBEAT     0x0040          /* Heartbeat Indicator */#define CFD_S_TRDEF     0x0080          /* Transmission Deferred */#define CFD_S_DMA_UNDR  0x0100          /* DMA Underrun (no data) */#define CFD_S_NO_CTS    0x0200          /* Lost Clear To Send signal */#define CFD_S_NO_CRS    0x0400          /* No Carrier Sense */typedef struct tbd              /* TBD - Transmit Buffer Descriptor */    {    volatile UINT16     actCount;       /* Actual byte count */    EEX_SHORTLINK       lNext;          /* Address of next buffer descr. */    EEX_LINK            lBufAddr;       /* Address of this data buffer */    } TBD;/* TBD bits */#define ACT_COUNT_MASK  ~0xc000         /* length fields are 14 bits */#define TBD_S_EOF       0x8000          /* End-of-frame bit */#ifdef  EEX_AL_LOCtypedef struct tframe           /* TFRAME - all-in-one transmit frame */    {    TFD                 tfd;    TBD                 tbd;    char                buffer [FRAME_SIZE];    } TFRAME;#elsetypedef struct tframe           /* TFRAME - all-in-one transmit frame */    {    TFD                 tfd;    union        {        struct            {            char                header [EH_SIZE];            char                data [ETHERMTU];            } buff_struct;        char                buffer [FRAME_SIZE];        } buff_union;    TBD                 tbd;    } TFRAME;#endif  /* EEX_AL_LOC */typedef struct rfd              /* RFD - Receive Frame Descriptor */    {    volatile UINT16     status;                 /* status field */    UINT16              command;                /* command field */    EEX_SHORTLINK       lNext;                  /* link to next desc. */    EEX_SHORTLINK       lBufDesc;               /* link to buf desc. */    } RFD;/* RFD bit masks */#define RFD_S_EOP       0x0040          /* no EOP flag */#define RFD_S_SHORT     0x0080          /* fewer bytes than configured min. */#define RFD_S_DMA       0x0100          /* DMA Overrun failure to get bus */#define RFD_S_RSRC      0x0200          /* received, but ran out of buffers */#define RFD_S_ALGN      0x0400          /* received misaligned with CRC error */#define RFD_S_CRC       0x0800          /* received with CRC error */#define RFD_S_OK        0x2000          /* frame received successfully */#define RFD_S_BUSY      0x4000          /* frame reception ready/in progress */#define RFD_S_COMPLETE  0x8000          /* frame reception complete */#define RFD_M_SUSPEND   0x4000          /* suspend RU after receiving frame */#define RFD_M_EL        0x8000          /* end of RFD list */typedef struct rbd              /* RBD - Receive Buffer Descriptor */    {    volatile UINT16     actCount;       /* Actual byte count */    EEX_SHORTLINK       lNext;          /* Address of next buffer descr. */    EEX_LINK            lBufAddr;       /* Address of this data buffer */    UINT16              bufSize;        /* Size of data buffer */    } RBD;#define RBD_S_CNT_MASK  0x3fff          /* Mask for actual byte count */#define RBD_S_F_BIT     0x4000          /* actual count is valid */#define RBD_S_EOF       0x8000          /* end of frame */#define RBD_M_EL        0x8000          /* end of RBD list */#ifdef  EEX_AL_LOCtypedef struct rframe           /* RFRAME - all-in-one received frame */    {    RFD                 rfd;    RBD                 rbd;    char                buffer [FRAME_SIZE];    } RFRAME;#elsetypedef struct rframe           /* RFRAME - all-in-one received frame */    {    RFD                 rfd;    union        {        struct            {            char                header [EH_SIZE];            char                data [ETHERMTU];            } buff_struct;        char                buffer [FRAME_SIZE];        } buff_union;    RBD                 rbd;    } RFRAME;#endif  /* EEX_AL_LOC *//* Offsets into xFRAME structures to compute board emmory offsets */#define RF_COMMAND      2               /* command word */#define RF_LINK         4               /* link to next RFD */#define RB_OFFSET       6               /* dhe 10/24/94 offset of first RBD */#define RB_LINK         2               /* dhe 10/24/94 link to next RBD */#ifdef  EEX_AL_LOC#define RF_ACT_COUNT    8               /* actual count in RBD */#define RF_BUFFER       18              /* frame data buffer */#else#define RF_BUFFER       8               /* frame data buffer */#define RF_ACT_COUNT    (RF_BUFFER + FRAME_SIZE)#endif  /* EEX_AL_LOC */#define TF_COMMAND      2               /* command word */#define TF_LINK         4               /* link to next TFD */#ifdef  EEX_AL_LOC#define TF_ACT_COUNT    8               /* actual count in TBD */#define TF_BUFFER       16              /* frame data buffer */#else#define TF_BUFFER       8               /* frame header starts here */#define TF_OLDLENGTH    20              /* Take length from here */#define TF_NEWLENGTH    14              /* put it here to be part of TFD */#define TF_ACT_COUNT    (RF_BUFFER + FRAME_SIZE)#endif  /* EEX_AL_LOC */#if ((CPU_FAMILY==I960) && (defined __GNUC__))#pragma align 0                 /* turn off alignment requirement */#endif  /* CPU_FAMILY==I960 */#ifdef __cplusplus}#endif#endif /* __INCif_eexh */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -