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

📄 tigon3.h

📁 F:worksip2440a board可启动u-boot-like.tar.gz F:worksip2440a board可启动u-boot-like.tar.gz
💻 H
📖 第 1 页 / 共 5 页
字号:
#else /* BIG_ENDIAN_HOST */	    T3_16BIT_REGISTER Flags;	    T3_16BIT_REGISTER MaxLen;#endif	} s;	T3_32BIT_REGISTER MaxLen_Flags;    } u;    T3_32BIT_REGISTER NicRingAddr;} T3_RCB, *PT3_RCB;#define T3_RCB_FLAG_USE_EXT_RECV_BD                     BIT_0#define T3_RCB_FLAG_RING_DISABLED                       BIT_1/******************************************************************************//* Status block. *//******************************************************************************//* * Size of status block is actually 0x50 bytes.  Use 0x80 bytes for * cache line alignment. */#define T3_STATUS_BLOCK_SIZE                                    0x80typedef struct {    volatile LM_UINT32 Status;    #define STATUS_BLOCK_UPDATED                                BIT_0    #define STATUS_BLOCK_LINK_CHANGED_STATUS                    BIT_1    #define STATUS_BLOCK_ERROR                                  BIT_2    volatile LM_UINT32 StatusTag;#ifdef BIG_ENDIAN_HOST    volatile LM_UINT16 RcvStdConIdx;    volatile LM_UINT16 RcvJumboConIdx;    volatile LM_UINT16 Reserved2;    volatile LM_UINT16 RcvMiniConIdx;    struct {	volatile LM_UINT16 SendConIdx;   /* Send consumer index. */	volatile LM_UINT16 RcvProdIdx;   /* Receive producer index. */    } Idx[16];#else /* BIG_ENDIAN_HOST */    volatile LM_UINT16 RcvJumboConIdx;    volatile LM_UINT16 RcvStdConIdx;    volatile LM_UINT16 RcvMiniConIdx;    volatile LM_UINT16 Reserved2;    struct {	volatile LM_UINT16 RcvProdIdx;   /* Receive producer index. */	volatile LM_UINT16 SendConIdx;   /* Send consumer index. */    } Idx[16];#endif} T3_STATUS_BLOCK, *PT3_STATUS_BLOCK;/******************************************************************************//* Receive buffer descriptors. *//******************************************************************************/typedef struct {    T3_64BIT_HOST_ADDR HostAddr;#ifdef BIG_ENDIAN_HOST    volatile LM_UINT16 Index;    volatile LM_UINT16 Len;    volatile LM_UINT16 Type;    volatile LM_UINT16 Flags;    volatile LM_UINT16 IpCksum;    volatile LM_UINT16 TcpUdpCksum;    volatile LM_UINT16 ErrorFlag;    volatile LM_UINT16 VlanTag;#else /* BIG_ENDIAN_HOST */    volatile LM_UINT16 Len;    volatile LM_UINT16 Index;    volatile LM_UINT16 Flags;    volatile LM_UINT16 Type;    volatile LM_UINT16 TcpUdpCksum;    volatile LM_UINT16 IpCksum;    volatile LM_UINT16 VlanTag;    volatile LM_UINT16 ErrorFlag;#endif    volatile LM_UINT32 Reserved;    volatile LM_UINT32 Opaque;} T3_RCV_BD, *PT3_RCV_BD;typedef struct {    T3_64BIT_HOST_ADDR HostAddr[3];#ifdef BIG_ENDIAN_HOST    LM_UINT16 Len1;    LM_UINT16 Len2;    LM_UINT16 Len3;    LM_UINT16 Reserved1;#else /* BIG_ENDIAN_HOST */    LM_UINT16 Len2;    LM_UINT16 Len1;    LM_UINT16 Reserved1;    LM_UINT16 Len3;#endif    T3_RCV_BD StdRcvBd;} T3_EXT_RCV_BD, *PT3_EXT_RCV_BD;/* Error flags. */#define RCV_BD_ERR_BAD_CRC                          0x0001#define RCV_BD_ERR_COLL_DETECT                      0x0002#define RCV_BD_ERR_LINK_LOST_DURING_PKT             0x0004#define RCV_BD_ERR_PHY_DECODE_ERR                   0x0008#define RCV_BD_ERR_ODD_NIBBLED_RCVD_MII             0x0010#define RCV_BD_ERR_MAC_ABORT                        0x0020#define RCV_BD_ERR_LEN_LT_64                        0x0040#define RCV_BD_ERR_TRUNC_NO_RESOURCES               0x0080#define RCV_BD_ERR_GIANT_FRAME_RCVD                 0x0100/* Buffer descriptor flags. */#define RCV_BD_FLAG_END                             0x0004#define RCV_BD_FLAG_JUMBO_RING                      0x0020#define RCV_BD_FLAG_VLAN_TAG                        0x0040#define RCV_BD_FLAG_FRAME_HAS_ERROR                 0x0400#define RCV_BD_FLAG_MINI_RING                       0x0800#define RCV_BD_FLAG_IP_CHKSUM_FIELD                 0x1000#define RCV_BD_FLAG_TCP_UDP_CHKSUM_FIELD            0x2000#define RCV_BD_FLAG_TCP_PACKET                      0x4000/******************************************************************************//* Send buffer descriptor. *//******************************************************************************/typedef struct {    T3_64BIT_HOST_ADDR HostAddr;    union {	struct {#ifdef BIG_ENDIAN_HOST	    LM_UINT16 Len;	    LM_UINT16 Flags;#else /* BIG_ENDIAN_HOST */	    LM_UINT16 Flags;	    LM_UINT16 Len;#endif	} s1;	LM_UINT32 Len_Flags;    } u1;    union {	struct {#ifdef BIG_ENDIAN_HOST	    LM_UINT16 Reserved;	    LM_UINT16 VlanTag;#else /* BIG_ENDIAN_HOST */	    LM_UINT16 VlanTag;	    LM_UINT16 Reserved;#endif	} s2;	LM_UINT32 VlanTag;    } u2;} T3_SND_BD, *PT3_SND_BD;/* Send buffer descriptor flags. */#define SND_BD_FLAG_TCP_UDP_CKSUM                   0x0001#define SND_BD_FLAG_IP_CKSUM                        0x0002#define SND_BD_FLAG_END                             0x0004#define SND_BD_FLAG_IP_FRAG                         0x0008#define SND_BD_FLAG_IP_FRAG_END                     0x0010#define SND_BD_FLAG_VLAN_TAG                        0x0040#define SND_BD_FLAG_COAL_NOW                        0x0080#define SND_BD_FLAG_CPU_PRE_DMA                     0x0100#define SND_BD_FLAG_CPU_POST_DMA                    0x0200#define SND_BD_FLAG_INSERT_SRC_ADDR                 0x1000#define SND_BD_FLAG_CHOOSE_SRC_ADDR                 0x6000#define SND_BD_FLAG_DONT_GEN_CRC                    0x8000/* MBUFs */typedef struct T3_MBUF_FRAME_DESC {#ifdef BIG_ENDIAN_HOST  LM_UINT32 status_control;  union {    struct {      LM_UINT8 cqid;      LM_UINT8 reserved1;      LM_UINT16 length;    }s1;    LM_UINT32 word;  }u1;  union {    struct    {      LM_UINT16 ip_hdr_start;      LM_UINT16 tcp_udp_hdr_start;    }s2;    LM_UINT32 word;  }u2;  union {    struct {      LM_UINT16 data_start;      LM_UINT16 vlan_id;    }s3;    LM_UINT32 word;  }u3;  union {    struct {      LM_UINT16 ip_checksum;      LM_UINT16 tcp_udp_checksum;    }s4;    LM_UINT32 word;  }u4;  union {    struct {      LM_UINT16 pseudo_checksum;      LM_UINT16 checksum_status;    }s5;    LM_UINT32 word;  }u5;  union {    struct {      LM_UINT16 rule_match;      LM_UINT8 class;      LM_UINT8 rupt;    }s6;    LM_UINT32 word;  }u6;  union {    struct {      LM_UINT16 reserved2;      LM_UINT16 mbuf_num;    }s7;    LM_UINT32 word;  }u7;  LM_UINT32 reserved3;  LM_UINT32 reserved4;#else  LM_UINT32 status_control;  union {    struct {      LM_UINT16 length;      LM_UINT8  reserved1;      LM_UINT8  cqid;    }s1;    LM_UINT32 word;  }u1;  union {    struct    {      LM_UINT16 tcp_udp_hdr_start;      LM_UINT16 ip_hdr_start;    }s2;    LM_UINT32 word;  }u2;  union {    struct {      LM_UINT16 vlan_id;      LM_UINT16 data_start;    }s3;    LM_UINT32 word;  }u3;  union {    struct {      LM_UINT16 tcp_udp_checksum;      LM_UINT16 ip_checksum;    }s4;    LM_UINT32 word;  }u4;  union {    struct {      LM_UINT16 checksum_status;      LM_UINT16 pseudo_checksum;    }s5;    LM_UINT32 word;  }u5;  union {    struct {      LM_UINT8 rupt;      LM_UINT8 class;      LM_UINT16 rule_match;    }s6;    LM_UINT32 word;  }u6;  union {    struct {      LM_UINT16 mbuf_num;      LM_UINT16 reserved2;    }s7;    LM_UINT32 word;  }u7;  LM_UINT32 reserved3;  LM_UINT32 reserved4;#endif}T3_MBUF_FRAME_DESC,*PT3_MBUF_FRAME_DESC;typedef struct T3_MBUF_HDR {  union {    struct {      unsigned int C:1;      unsigned int F:1;      unsigned int reserved1:7;      unsigned int next_mbuf:16;      unsigned int length:7;    }s1;    LM_UINT32 word;  }u1;  LM_UINT32 next_frame_ptr;}T3_MBUF_HDR, *PT3_MBUF_HDR;typedef struct T3_MBUF{  T3_MBUF_HDR hdr;  union  {    struct {      T3_MBUF_FRAME_DESC frame_hdr;      LM_UINT32 data[20];    }s1;    struct {      LM_UINT32 data[30];    }s2;  }body;}T3_MBUF, *PT3_MBUF;#define T3_MBUF_BASE   (T3_NIC_MBUF_POOL_ADDR >> 7)#define T3_MBUF_END    ((T3_NIC_MBUF_POOL_ADDR + T3_NIC_MBUF_POOL_SIZE) >> 7)

⌨️ 快捷键说明

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