b44.h

来自「linux 内核源代码」· C头文件 代码 · 共 403 行 · 第 1/2 页

H
403
字号
#define B44_TX_LCOLS	0x0550UL /* MIB TX Late Collisions */#define B44_TX_DEFERED	0x0554UL /* MIB TX Defered Packets */#define B44_TX_CLOST	0x0558UL /* MIB TX Carrier Lost */#define B44_TX_PAUSE	0x055CUL /* MIB TX Pause Packets */#define B44_RX_GOOD_O	0x0580UL /* MIB RX Good Octets */#define B44_RX_GOOD_P	0x0584UL /* MIB RX Good Packets */#define B44_RX_O	0x0588UL /* MIB RX Octets */#define B44_RX_P	0x058CUL /* MIB RX Packets */#define B44_RX_BCAST	0x0590UL /* MIB RX Broadcast Packets */#define B44_RX_MCAST	0x0594UL /* MIB RX Multicast Packets */#define B44_RX_64	0x0598UL /* MIB RX <= 64 byte Packets */#define B44_RX_65_127	0x059CUL /* MIB RX 65 to 127 byte Packets */#define B44_RX_128_255	0x05A0UL /* MIB RX 128 to 255 byte Packets */#define B44_RX_256_511	0x05A4UL /* MIB RX 256 to 511 byte Packets */#define B44_RX_512_1023	0x05A8UL /* MIB RX 512 to 1023 byte Packets */#define B44_RX_1024_MAX	0x05ACUL /* MIB RX 1024 to max byte Packets */#define B44_RX_JABBER	0x05B0UL /* MIB RX Jabber Packets */#define B44_RX_OSIZE	0x05B4UL /* MIB RX Oversize Packets */#define B44_RX_FRAG	0x05B8UL /* MIB RX Fragment Packets */#define B44_RX_MISS	0x05BCUL /* MIB RX Missed Packets */#define B44_RX_CRCA	0x05C0UL /* MIB RX CRC Align Errors */#define B44_RX_USIZE	0x05C4UL /* MIB RX Undersize Packets */#define B44_RX_CRC	0x05C8UL /* MIB RX CRC Errors */#define B44_RX_ALIGN	0x05CCUL /* MIB RX Align Errors */#define B44_RX_SYM	0x05D0UL /* MIB RX Symbol Errors */#define B44_RX_PAUSE	0x05D4UL /* MIB RX Pause Packets */#define B44_RX_NPAUSE	0x05D8UL /* MIB RX Non-Pause Packets *//* 4400 PHY registers */#define B44_MII_AUXCTRL		24	/* Auxiliary Control */#define  MII_AUXCTRL_DUPLEX	0x0001  /* Full Duplex */#define  MII_AUXCTRL_SPEED	0x0002  /* 1=100Mbps, 0=10Mbps */#define  MII_AUXCTRL_FORCED	0x0004	/* Forced 10/100 */#define B44_MII_ALEDCTRL	26	/* Activity LED */#define  MII_ALEDCTRL_ALLMSK	0x7fff#define B44_MII_TLEDCTRL	27	/* Traffic Meter LED */#define  MII_TLEDCTRL_ENABLE	0x0040struct dma_desc {	__le32	ctrl;	__le32	addr;};/* There are only 12 bits in the DMA engine for descriptor offsetting * so the table must be aligned on a boundary of this. */#define DMA_TABLE_BYTES		4096#define DESC_CTRL_LEN	0x00001fff#define DESC_CTRL_CMASK	0x0ff00000 /* Core specific bits */#define DESC_CTRL_EOT	0x10000000 /* End of Table */#define DESC_CTRL_IOC	0x20000000 /* Interrupt On Completion */#define DESC_CTRL_EOF	0x40000000 /* End of Frame */#define DESC_CTRL_SOF	0x80000000 /* Start of Frame */#define RX_COPY_THRESHOLD  	256struct rx_header {	__le16	len;	__le16	flags;	__le16	pad[12];};#define RX_HEADER_LEN	28#define RX_FLAG_OFIFO	0x00000001 /* FIFO Overflow */#define RX_FLAG_CRCERR	0x00000002 /* CRC Error */#define RX_FLAG_SERR	0x00000004 /* Receive Symbol Error */#define RX_FLAG_ODD	0x00000008 /* Frame has odd number of nibbles */#define RX_FLAG_LARGE	0x00000010 /* Frame is > RX MAX Length */#define RX_FLAG_MCAST	0x00000020 /* Dest is Multicast Address */#define RX_FLAG_BCAST	0x00000040 /* Dest is Broadcast Address */#define RX_FLAG_MISS	0x00000080 /* Received due to promisc mode */#define RX_FLAG_LAST	0x00000800 /* Last buffer in frame */#define RX_FLAG_ERRORS	(RX_FLAG_ODD | RX_FLAG_SERR | RX_FLAG_CRCERR | RX_FLAG_OFIFO)struct ring_info {	struct sk_buff		*skb;	dma_addr_t	mapping;};#define B44_MCAST_TABLE_SIZE	32#define B44_PHY_ADDR_NO_PHY	30#define B44_MDC_RATIO		5000000#define	B44_STAT_REG_DECLARE		\	_B44(tx_good_octets)		\	_B44(tx_good_pkts)		\	_B44(tx_octets)			\	_B44(tx_pkts)			\	_B44(tx_broadcast_pkts)		\	_B44(tx_multicast_pkts)		\	_B44(tx_len_64)			\	_B44(tx_len_65_to_127)		\	_B44(tx_len_128_to_255)		\	_B44(tx_len_256_to_511)		\	_B44(tx_len_512_to_1023)	\	_B44(tx_len_1024_to_max)	\	_B44(tx_jabber_pkts)		\	_B44(tx_oversize_pkts)		\	_B44(tx_fragment_pkts)		\	_B44(tx_underruns)		\	_B44(tx_total_cols)		\	_B44(tx_single_cols)		\	_B44(tx_multiple_cols)		\	_B44(tx_excessive_cols)		\	_B44(tx_late_cols)		\	_B44(tx_defered)		\	_B44(tx_carrier_lost)		\	_B44(tx_pause_pkts)		\	_B44(rx_good_octets)		\	_B44(rx_good_pkts)		\	_B44(rx_octets)			\	_B44(rx_pkts)			\	_B44(rx_broadcast_pkts)		\	_B44(rx_multicast_pkts)		\	_B44(rx_len_64)			\	_B44(rx_len_65_to_127)		\	_B44(rx_len_128_to_255)		\	_B44(rx_len_256_to_511)		\	_B44(rx_len_512_to_1023)	\	_B44(rx_len_1024_to_max)	\	_B44(rx_jabber_pkts)		\	_B44(rx_oversize_pkts)		\	_B44(rx_fragment_pkts)		\	_B44(rx_missed_pkts)		\	_B44(rx_crc_align_errs)		\	_B44(rx_undersize)		\	_B44(rx_crc_errs)		\	_B44(rx_align_errs)		\	_B44(rx_symbol_errs)		\	_B44(rx_pause_pkts)		\	_B44(rx_nonpause_pkts)/* SW copy of device statistics, kept up to date by periodic timer * which probes HW values. Check b44_stats_update if you mess with * the layout */struct b44_hw_stats {#define _B44(x)	u32 x;B44_STAT_REG_DECLARE#undef _B44};struct ssb_device;struct b44 {	spinlock_t		lock;	u32			imask, istat;	struct dma_desc		*rx_ring, *tx_ring;	u32			tx_prod, tx_cons;	u32			rx_prod, rx_cons;	struct ring_info	*rx_buffers;	struct ring_info	*tx_buffers;	struct napi_struct	napi;	u32			dma_offset;	u32			flags;#define B44_FLAG_B0_ANDLATER	0x00000001#define B44_FLAG_BUGGY_TXPTR	0x00000002#define B44_FLAG_REORDER_BUG	0x00000004#define B44_FLAG_PAUSE_AUTO	0x00008000#define B44_FLAG_FULL_DUPLEX	0x00010000#define B44_FLAG_100_BASE_T	0x00020000#define B44_FLAG_TX_PAUSE	0x00040000#define B44_FLAG_RX_PAUSE	0x00080000#define B44_FLAG_FORCE_LINK	0x00100000#define B44_FLAG_ADV_10HALF	0x01000000#define B44_FLAG_ADV_10FULL	0x02000000#define B44_FLAG_ADV_100HALF	0x04000000#define B44_FLAG_ADV_100FULL	0x08000000#define B44_FLAG_INTERNAL_PHY	0x10000000#define B44_FLAG_RX_RING_HACK	0x20000000#define B44_FLAG_TX_RING_HACK	0x40000000#define B44_FLAG_WOL_ENABLE	0x80000000	u32			msg_enable;	struct timer_list	timer;	struct net_device_stats	stats;	struct b44_hw_stats	hw_stats;	struct ssb_device	*sdev;	struct net_device	*dev;	dma_addr_t		rx_ring_dma, tx_ring_dma;	u32			rx_pending;	u32			tx_pending;	u8			phy_addr;	struct mii_if_info	mii_if;};#endif /* _B44_H */

⌨️ 快捷键说明

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