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

📄 spider_net.h

📁 linux 内核源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
	SPIDER_NET_GMAC1INT,	SPIDER_NET_GIPSINT,	SPIDER_NET_GFIFOINT,	SPIDER_NET_GDMACINT,	SPIDER_NET_GSYSINT,	SPIDER_NET_GPWOPCMPINT,	SPIDER_NET_GPROPCMPINT,	SPIDER_NET_GPWFFINT,	SPIDER_NET_GRMDADRINT,	SPIDER_NET_GRMARPINT,	SPIDER_NET_GRMMPINT,	SPIDER_NET_GDTDEN0INT,	SPIDER_NET_GDDDEN0INT,	SPIDER_NET_GDCDEN0INT,	SPIDER_NET_GDBDEN0INT,	SPIDER_NET_GDADEN0INT,	SPIDER_NET_GDTFDCINT,	SPIDER_NET_GDDFDCINT,	SPIDER_NET_GDCFDCINT,	SPIDER_NET_GDBFDCINT,	SPIDER_NET_GDAFDCINT,	SPIDER_NET_GTTEDINT,	SPIDER_NET_GDTDCEINT,	SPIDER_NET_GRFDNMINT,	SPIDER_NET_GRFCNMINT,	SPIDER_NET_GRFBNMINT,	SPIDER_NET_GRFANMINT,	SPIDER_NET_GRFNMINT,	SPIDER_NET_G1TMCNTINT,	SPIDER_NET_GFREECNTINT};/* GHIINT1STS bits */enum spider_net_int1_status {	SPIDER_NET_GTMFLLINT = 0,	SPIDER_NET_GRMFLLINT,	SPIDER_NET_GTMSHTINT,	SPIDER_NET_GDTINVDINT,	SPIDER_NET_GRFDFLLINT,	SPIDER_NET_GDDDCEINT,	SPIDER_NET_GDDINVDINT,	SPIDER_NET_GRFCFLLINT,	SPIDER_NET_GDCDCEINT,	SPIDER_NET_GDCINVDINT,	SPIDER_NET_GRFBFLLINT,	SPIDER_NET_GDBDCEINT,	SPIDER_NET_GDBINVDINT,	SPIDER_NET_GRFAFLLINT,	SPIDER_NET_GDADCEINT,	SPIDER_NET_GDAINVDINT,	SPIDER_NET_GDTRSERINT,	SPIDER_NET_GDDRSERINT,	SPIDER_NET_GDCRSERINT,	SPIDER_NET_GDBRSERINT,	SPIDER_NET_GDARSERINT,	SPIDER_NET_GDSERINT,	SPIDER_NET_GDTPTERINT,	SPIDER_NET_GDDPTERINT,	SPIDER_NET_GDCPTERINT,	SPIDER_NET_GDBPTERINT,	SPIDER_NET_GDAPTERINT};/* GHIINT2STS bits */enum spider_net_int2_status {	SPIDER_NET_GPROPERINT = 0,	SPIDER_NET_GMCTCRSNGINT,	SPIDER_NET_GMCTLCOLINT,	SPIDER_NET_GMCTTMOTINT,	SPIDER_NET_GMCRCAERINT,	SPIDER_NET_GMCRCALERINT,	SPIDER_NET_GMCRALNERINT,	SPIDER_NET_GMCROVRINT,	SPIDER_NET_GMCRRNTINT,	SPIDER_NET_GMCRRXERINT,	SPIDER_NET_GTITCSERINT,	SPIDER_NET_GTIFMTERINT,	SPIDER_NET_GTIPKTRVKINT,	SPIDER_NET_GTISPINGINT,	SPIDER_NET_GTISADNGINT,	SPIDER_NET_GTISPDNGINT,	SPIDER_NET_GRIFMTERINT,	SPIDER_NET_GRIPKTRVKINT,	SPIDER_NET_GRISPINGINT,	SPIDER_NET_GRISADNGINT,	SPIDER_NET_GRISPDNGINT};#define SPIDER_NET_TXINT	(1 << SPIDER_NET_GDTFDCINT)/* We rely on flagged descriptor interrupts */#define SPIDER_NET_RXINT	( (1 << SPIDER_NET_GDAFDCINT) )#define SPIDER_NET_LINKINT	( 1 << SPIDER_NET_GMAC2INT )#define SPIDER_NET_ERRINT	( 0xffffffff & \				  (~SPIDER_NET_TXINT) & \				  (~SPIDER_NET_RXINT) & \				  (~SPIDER_NET_LINKINT) )#define SPIDER_NET_GPREXEC			0x80000000#define SPIDER_NET_GPRDAT_MASK			0x0000ffff#define SPIDER_NET_DMAC_NOINTR_COMPLETE		0x00800000#define SPIDER_NET_DMAC_TXFRMTL		0x00040000#define SPIDER_NET_DMAC_TCP			0x00020000#define SPIDER_NET_DMAC_UDP			0x00030000#define SPIDER_NET_TXDCEST			0x08000000#define SPIDER_NET_DESCR_RXFDIS        0x00000001#define SPIDER_NET_DESCR_RXDCEIS       0x00000002#define SPIDER_NET_DESCR_RXDEN0IS      0x00000004#define SPIDER_NET_DESCR_RXINVDIS      0x00000008#define SPIDER_NET_DESCR_RXRERRIS      0x00000010#define SPIDER_NET_DESCR_RXFDCIMS      0x00000100#define SPIDER_NET_DESCR_RXDCEIMS      0x00000200#define SPIDER_NET_DESCR_RXDEN0IMS     0x00000400#define SPIDER_NET_DESCR_RXINVDIMS     0x00000800#define SPIDER_NET_DESCR_RXRERRMIS     0x00001000#define SPIDER_NET_DESCR_UNUSED        0x077fe0e0#define SPIDER_NET_DESCR_IND_PROC_MASK		0xF0000000#define SPIDER_NET_DESCR_COMPLETE		0x00000000 /* used in rx and tx */#define SPIDER_NET_DESCR_RESPONSE_ERROR		0x10000000 /* used in rx and tx */#define SPIDER_NET_DESCR_PROTECTION_ERROR	0x20000000 /* used in rx and tx */#define SPIDER_NET_DESCR_FRAME_END		0x40000000 /* used in rx */#define SPIDER_NET_DESCR_FORCE_END		0x50000000 /* used in rx and tx */#define SPIDER_NET_DESCR_CARDOWNED		0xA0000000 /* used in rx and tx */#define SPIDER_NET_DESCR_NOT_IN_USE		0xF0000000#define SPIDER_NET_DESCR_TXDESFLG		0x00800000#define SPIDER_NET_DESCR_BAD_STATUS   (SPIDER_NET_DESCR_RXDEN0IS | \                                       SPIDER_NET_DESCR_RXRERRIS | \                                       SPIDER_NET_DESCR_RXDEN0IMS | \                                       SPIDER_NET_DESCR_RXINVDIMS | \                                       SPIDER_NET_DESCR_RXRERRMIS | \                                       SPIDER_NET_DESCR_UNUSED)/* Descriptor, as defined by the hardware */struct spider_net_hw_descr {	u32 buf_addr;	u32 buf_size;	u32 next_descr_addr;	u32 dmac_cmd_status;	u32 result_size;	u32 valid_size;	/* all zeroes for tx */	u32 data_status;	u32 data_error;	/* all zeroes for tx */} __attribute__((aligned(32)));struct spider_net_descr {	struct spider_net_hw_descr *hwdescr;	struct sk_buff *skb;	u32 bus_addr;	struct spider_net_descr *next;	struct spider_net_descr *prev;};struct spider_net_descr_chain {	spinlock_t lock;	struct spider_net_descr *head;	struct spider_net_descr *tail;	struct spider_net_descr *ring;	int num_desc;	struct spider_net_hw_descr *hwring;	dma_addr_t dma_addr;};/* descriptor data_status bits */#define SPIDER_NET_RX_IPCHK		29#define SPIDER_NET_RX_TCPCHK		28#define SPIDER_NET_VLAN_PACKET		21#define SPIDER_NET_DATA_STATUS_CKSUM_MASK ( (1 << SPIDER_NET_RX_IPCHK) | \					  (1 << SPIDER_NET_RX_TCPCHK) )/* descriptor data_error bits */#define SPIDER_NET_RX_IPCHKERR		27#define SPIDER_NET_RX_RXTCPCHKERR	28#define SPIDER_NET_DATA_ERR_CKSUM_MASK	(1 << SPIDER_NET_RX_IPCHKERR)/* the cases we don't pass the packet to the stack. * 701b8000 would be correct, but every packets gets that flag */#define SPIDER_NET_DESTROY_RX_FLAGS	0x700b8000/* this will be bigger some time */struct spider_net_options {	int rx_csum; /* for rx: if 0 ip_summed=NONE,			if 1 and hw has verified, ip_summed=UNNECESSARY */};#define SPIDER_NET_DEFAULT_MSG		( NETIF_MSG_DRV | \					  NETIF_MSG_PROBE | \					  NETIF_MSG_LINK | \					  NETIF_MSG_TIMER | \					  NETIF_MSG_IFDOWN | \					  NETIF_MSG_IFUP | \					  NETIF_MSG_RX_ERR | \					  NETIF_MSG_TX_ERR | \					  NETIF_MSG_TX_QUEUED | \					  NETIF_MSG_INTR | \					  NETIF_MSG_TX_DONE | \					  NETIF_MSG_RX_STATUS | \					  NETIF_MSG_PKTDATA | \					  NETIF_MSG_HW | \					  NETIF_MSG_WOL )struct spider_net_extra_stats {	unsigned long rx_desc_error;	unsigned long tx_timeouts;	unsigned long alloc_rx_skb_error;	unsigned long rx_iommu_map_error;	unsigned long tx_iommu_map_error;	unsigned long rx_desc_unk_state;};struct spider_net_card {	struct net_device *netdev;	struct pci_dev *pdev;	struct mii_phy phy;	struct napi_struct napi;	int medium;	void __iomem *regs;	struct spider_net_descr_chain tx_chain;	struct spider_net_descr_chain rx_chain;	struct spider_net_descr *low_watermark;	int aneg_count;	struct timer_list aneg_timer;	struct timer_list tx_timer;	struct work_struct tx_timeout_task;	atomic_t tx_timeout_task_counter;	wait_queue_head_t waitq;	int num_rx_ints;	int ignore_rx_ramfull;	/* for ethtool */	int msg_enable;	struct spider_net_extra_stats spider_stats;	struct spider_net_options options;	/* Must be last item in struct */	struct spider_net_descr darray[0];};#endif

⌨️ 快捷键说明

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