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

📄 bcm43xx_pio.h

📁 博通的bcm43xx系列Minipci接口无线网卡驱动
💻 H
字号:
#ifndef BCM43xx_PIO_H_#define BCM43xx_PIO_H_#include "bcm43xx.h"#include <linux/interrupt.h>#include <linux/list.h>#include <linux/skbuff.h>#define BCM43xx_PIO_TXCTL		0x00#define BCM43xx_PIO_TXDATA		0x02#define BCM43xx_PIO_TXQBUFSIZE		0x04#define BCM43xx_PIO_RXCTL		0x08#define BCM43xx_PIO_RXDATA		0x0A#define BCM43xx_PIO_TXCTL_WRITEHI	(1 << 0)#define BCM43xx_PIO_TXCTL_WRITELO	(1 << 1)#define BCM43xx_PIO_TXCTL_COMPLETE	(1 << 2)#define BCM43xx_PIO_TXCTL_INIT		(1 << 3)#define BCM43xx_PIO_TXCTL_SUSPEND	(1 << 7)#define BCM43xx_PIO_RXCTL_DATAAVAILABLE	(1 << 0)#define BCM43xx_PIO_RXCTL_READY		(1 << 1)/* PIO constants */#define BCM43xx_PIO_MAXTXDEVQPACKETS	31#define BCM43xx_PIO_TXQADJUST		80/* PIO tuning knobs */#define BCM43xx_PIO_MAXTXPACKETS	256#ifdef CONFIG_BCM43XX_PIOstruct bcm43xx_pioqueue;struct bcm43xx_xmitstatus;struct bcm43xx_pio_txpacket {	struct bcm43xx_pioqueue *queue;	struct ieee80211_txb *txb;	struct list_head list;	u8 xmitted_frags;	u16 xmitted_octets;};#define pio_txpacket_getindex(packet) ((int)((packet) - (packet)->queue->tx_packets_cache)) struct bcm43xx_pioqueue {	struct bcm43xx_private *bcm;	u16 mmio_base;	u8 tx_suspended:1,	   need_workarounds:1; /* Workarounds needed for core.rev < 3 */	/* Adjusted size of the device internal TX buffer. */	u16 tx_devq_size;	/* Used octets of the device internal TX buffer. */	u16 tx_devq_used;	/* Used packet slots in the device internal TX buffer. */	u8 tx_devq_packets;	/* Packets from the txfree list can	 * be taken on incoming TX requests.	 */	struct list_head txfree;	unsigned int nr_txfree;	/* Packets on the txqueue are queued,	 * but not completely written to the chip, yet.	 */	struct list_head txqueue;	/* Packets on the txrunning queue are completely	 * posted to the device. We are waiting for the txstatus.	 */	struct list_head txrunning;	/* Total number or packets sent.	 * (This counter can obviously wrap).	 */	unsigned int nr_tx_packets;	struct tasklet_struct txtask;	struct bcm43xx_pio_txpacket tx_packets_cache[BCM43xx_PIO_MAXTXPACKETS];};static inlineu16 bcm43xx_pio_read(struct bcm43xx_pioqueue *queue,		     u16 offset){	return bcm43xx_read16(queue->bcm, queue->mmio_base + offset);}static inlinevoid bcm43xx_pio_write(struct bcm43xx_pioqueue *queue,		       u16 offset, u16 value){	bcm43xx_write16(queue->bcm, queue->mmio_base + offset, value);}int bcm43xx_pio_init(struct bcm43xx_private *bcm);void bcm43xx_pio_free(struct bcm43xx_private *bcm);int bcm43xx_pio_tx(struct bcm43xx_private *bcm,		   struct ieee80211_txb *txb);void bcm43xx_pio_handle_xmitstatus(struct bcm43xx_private *bcm,				   struct bcm43xx_xmitstatus *status);void bcm43xx_pio_rx(struct bcm43xx_pioqueue *queue);#else /* CONFIG_BCM43XX_PIO */static inlineint bcm43xx_pio_init(struct bcm43xx_private *bcm){	return 0;}static inlinevoid bcm43xx_pio_free(struct bcm43xx_private *bcm){}static inlineint bcm43xx_pio_tx(struct bcm43xx_private *bcm,		   struct ieee80211_txb *txb){	return 0;}static inlinevoid bcm43xx_pio_handle_xmitstatus(struct bcm43xx_private *bcm,				   struct bcm43xx_xmitstatus *status){}static inlinevoid bcm43xx_pio_rx(struct bcm43xx_pioqueue *queue){}#endif /* CONFIG_BCM43XX_PIO */#endif /* BCM43xx_PIO_H_ */

⌨️ 快捷键说明

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