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

📄 sunqe.h

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
#define MREGS_TXRCNT_CMASK          0x0f /* TX retry count                 */#define MREGS_RXFCNTL_LOWLAT        0x08 /* RX low latency                 */#define MREGS_RXFCNTL_AREJECT       0x04 /* RX addr match rej              */#define MREGS_RXFCNTL_AUTOSTRIP     0x01 /* RX auto strip                  */#define MREGS_RXFSTAT_OVERFLOW      0x80 /* RX overflow                    */#define MREGS_RXFSTAT_LCOLL         0x40 /* RX late collision              */#define MREGS_RXFSTAT_FERROR        0x20 /* RX framing error               */#define MREGS_RXFSTAT_FCSERROR      0x10 /* RX FCS error                   */#define MREGS_RXFSTAT_RBCNT         0x0f /* RX msg byte count              */#define MREGS_FFCNT_RX              0xf0 /* RX FIFO frame cnt              */#define MREGS_FFCNT_TX              0x0f /* TX FIFO frame cnt              */#define MREGS_IREG_JABBER           0x80 /* IRQ Jabber error               */#define MREGS_IREG_BABBLE           0x40 /* IRQ Babble error               */#define MREGS_IREG_COLL             0x20 /* IRQ Collision error            */#define MREGS_IREG_RCCO             0x10 /* IRQ Collision cnt overflow     */#define MREGS_IREG_RPKTCO           0x08 /* IRQ Runt packet count overflow */#define MREGS_IREG_MPKTCO           0x04 /* IRQ missed packet cnt overflow */#define MREGS_IREG_RXIRQ            0x02 /* IRQ RX'd a packet              */#define MREGS_IREG_TXIRQ            0x01 /* IRQ TX'd a packet              */#define MREGS_IMASK_BABBLE          0x40 /* IMASK Babble errors            */#define MREGS_IMASK_COLL            0x20 /* IMASK Collision errors         */#define MREGS_IMASK_MPKTCO          0x04 /* IMASK Missed pkt cnt overflow  */#define MREGS_IMASK_RXIRQ           0x02 /* IMASK RX interrupts            */#define MREGS_IMASK_TXIRQ           0x01 /* IMASK TX interrupts            */#define MREGS_POLL_TXVALID          0x80 /* TX is valid                    */#define MREGS_POLL_TDTR             0x40 /* TX data transfer request       */#define MREGS_POLL_RDTR             0x20 /* RX data transfer request       */#define MREGS_BCONFIG_BSWAP         0x40 /* Byte Swap                      */#define MREGS_BCONFIG_4TS           0x00 /* 4byte transmit start point     */#define MREGS_BCONFIG_16TS          0x10 /* 16byte transmit start point    */#define MREGS_BCONFIG_64TS          0x20 /* 64byte transmit start point    */#define MREGS_BCONFIG_112TS         0x30 /* 112byte transmit start point   */#define MREGS_BCONFIG_RESET         0x01 /* SW-Reset the MACE              */#define MREGS_FCONFIG_TXF8          0x00 /* TX fifo 8 write cycles         */#define MREGS_FCONFIG_TXF32         0x80 /* TX fifo 32 write cycles        */#define MREGS_FCONFIG_TXF16         0x40 /* TX fifo 16 write cycles        */#define MREGS_FCONFIG_RXF64         0x20 /* RX fifo 64 write cycles        */#define MREGS_FCONFIG_RXF32         0x10 /* RX fifo 32 write cycles        */#define MREGS_FCONFIG_RXF16         0x00 /* RX fifo 16 write cycles        */#define MREGS_FCONFIG_TFWU          0x08 /* TX fifo watermark update       */#define MREGS_FCONFIG_RFWU          0x04 /* RX fifo watermark update       */#define MREGS_FCONFIG_TBENAB        0x02 /* TX burst enable                */#define MREGS_FCONFIG_RBENAB        0x01 /* RX burst enable                */#define MREGS_MCONFIG_PROMISC       0x80 /* Promiscuous mode enable        */#define MREGS_MCONFIG_TPDDISAB      0x40 /* TX 2part deferral enable       */#define MREGS_MCONFIG_MBAENAB       0x20 /* Modified backoff enable        */#define MREGS_MCONFIG_RPADISAB      0x08 /* RX physical addr disable       */#define MREGS_MCONFIG_RBDISAB       0x04 /* RX broadcast disable           */#define MREGS_MCONFIG_TXENAB        0x02 /* Enable transmitter             */#define MREGS_MCONFIG_RXENAB        0x01 /* Enable receiver                */#define MREGS_PLSCONFIG_TXMS        0x08 /* TX mode select                 */#define MREGS_PLSCONFIG_GPSI        0x06 /* Use GPSI connector             */#define MREGS_PLSCONFIG_DAI         0x04 /* Use DAI connector              */#define MREGS_PLSCONFIG_TP          0x02 /* Use TwistedPair connector      */#define MREGS_PLSCONFIG_AUI         0x00 /* Use AUI connector              */#define MREGS_PLSCONFIG_IOENAB      0x01 /* PLS I/O enable                 */#define MREGS_PHYCONFIG_LSTAT       0x80 /* Link status                    */#define MREGS_PHYCONFIG_LTESTDIS    0x40 /* Disable link test logic        */#define MREGS_PHYCONFIG_RXPOLARITY  0x20 /* RX polarity                    */#define MREGS_PHYCONFIG_APCDISAB    0x10 /* AutoPolarityCorrect disab      */#define MREGS_PHYCONFIG_LTENAB      0x08 /* Select low threshold           */#define MREGS_PHYCONFIG_AUTO        0x04 /* Connector port auto-sel        */#define MREGS_PHYCONFIG_RWU         0x02 /* Remote WakeUp                  */#define MREGS_PHYCONFIG_AW          0x01 /* Auto Wakeup                    */#define MREGS_IACONFIG_ACHNGE       0x80 /* Do address change              */#define MREGS_IACONFIG_PARESET      0x04 /* Physical address reset         */#define MREGS_IACONFIG_LARESET      0x02 /* Logical address reset          */#define MREGS_UTEST_RTRENAB         0x80 /* Enable resv test register      */#define MREGS_UTEST_RTRDISAB        0x40 /* Disab resv test register       */#define MREGS_UTEST_RPACCEPT        0x20 /* Accept runt packets            */#define MREGS_UTEST_FCOLL           0x10 /* Force collision status         */#define MREGS_UTEST_FCSENAB         0x08 /* Enable FCS on RX               */#define MREGS_UTEST_INTLOOPM        0x06 /* Intern lpback w/MENDEC         */#define MREGS_UTEST_INTLOOP         0x04 /* Intern lpback                  */#define MREGS_UTEST_EXTLOOP         0x02 /* Extern lpback                  */#define MREGS_UTEST_NOLOOP          0x00 /* No loopback                    */struct qe_rxd {	u32 rx_flags;	u32 rx_addr;};#define RXD_OWN      0x80000000 /* Ownership.      */#define RXD_UPDATE   0x10000000 /* Being Updated?  */#define RXD_LENGTH   0x000007ff /* Packet Length.  */struct qe_txd {	u32 tx_flags;	u32 tx_addr;};#define TXD_OWN      0x80000000 /* Ownership.      */#define TXD_SOP      0x40000000 /* Start Of Packet */#define TXD_EOP      0x20000000 /* End Of Packet   */#define TXD_UPDATE   0x10000000 /* Being Updated?  */#define TXD_LENGTH   0x000007ff /* Packet Length.  */#define TX_RING_MAXSIZE   256#define RX_RING_MAXSIZE   256#define TX_RING_SIZE      16#define RX_RING_SIZE      16#define NEXT_RX(num)       (((num) + 1) & (RX_RING_MAXSIZE - 1))#define NEXT_TX(num)       (((num) + 1) & (TX_RING_MAXSIZE - 1))#define PREV_RX(num)       (((num) - 1) & (RX_RING_MAXSIZE - 1))#define PREV_TX(num)       (((num) - 1) & (TX_RING_MAXSIZE - 1))#define TX_BUFFS_AVAIL(qp)                                    \        (((qp)->tx_old <= (qp)->tx_new) ?                     \	  (qp)->tx_old + (TX_RING_SIZE - 1) - (qp)->tx_new :  \			    (qp)->tx_old - (qp)->tx_new - 1)struct qe_init_block {	struct qe_rxd qe_rxd[RX_RING_MAXSIZE];	struct qe_txd qe_txd[TX_RING_MAXSIZE];};#define qib_offset(mem, elem) \((__u32)((unsigned long)(&(((struct qe_init_block *)0)->mem[elem]))))struct sunqe;struct sunqec {	unsigned long		gregs;		/* QEC Global Registers         */	struct sunqe		*qes[4];	/* Each child MACE              */	unsigned int            qec_bursts;	/* Support burst sizes          */	struct sbus_dev		*qec_sdev;	/* QEC's SBUS device            */	struct sunqec		*next_module;	/* List of all QECs in system   */};#define PKT_BUF_SZ	1664#define RXD_PKT_SZ	1664struct sunqe_buffers {	u8	tx_buf[TX_RING_SIZE][PKT_BUF_SZ];	u8	__pad[2];	u8	rx_buf[RX_RING_SIZE][PKT_BUF_SZ];};#define qebuf_offset(mem, elem) \((__u32)((unsigned long)(&(((struct sunqe_buffers *)0)->mem[elem][0]))))struct sunqe {	unsigned long			qcregs;		/* QEC per-channel Registers   */	unsigned long			mregs;		/* Per-channel MACE Registers  */	struct qe_init_block      	*qe_block;	/* RX and TX descriptors       */	__u32                      	qblock_dvma;	/* RX and TX descriptors       */	spinlock_t			lock;		/* Protects txfull state       */	int                        	rx_new, rx_old;	/* RX ring extents	       */	int			   	tx_new, tx_old;	/* TX ring extents	       */	struct sunqe_buffers		*buffers;	/* CPU visible address.        */	__u32				buffers_dvma;	/* DVMA visible address.       */	struct sunqec			*parent;	u8				mconfig;	/* Base MACE mconfig value     */	struct net_device_stats		net_stats;	/* Statistical counters        */	struct sbus_dev			*qe_sdev;	/* QE's SBUS device struct     */	struct net_device		*dev;		/* QE's netdevice struct       */	int				channel;	/* Who am I?                   */};#endif /* !(_SUNQE_H) */

⌨️ 快捷键说明

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