亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hostap_plx.c

?? linux內核源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
#define PRISM2_PLX/* Host AP driver's support for PC Cards on PCI adapters using PLX9052 is * based on: * - Host AP driver patch from james@madingley.org * - linux-wlan-ng driver, Copyright (C) AbsoluteValue Systems, Inc. */#include <linux/module.h>#include <linux/init.h>#include <linux/if.h>#include <linux/skbuff.h>#include <linux/netdevice.h>#include <linux/workqueue.h>#include <linux/wireless.h>#include <net/iw_handler.h>#include <linux/ioport.h>#include <linux/pci.h>#include <asm/io.h>#include "hostap_wlan.h"static char *dev_info = "hostap_plx";MODULE_AUTHOR("Jouni Malinen");MODULE_DESCRIPTION("Support for Intersil Prism2-based 802.11 wireless LAN "		   "cards (PLX).");MODULE_SUPPORTED_DEVICE("Intersil Prism2-based WLAN cards (PLX)");MODULE_LICENSE("GPL");static int ignore_cis;module_param(ignore_cis, int, 0444);MODULE_PARM_DESC(ignore_cis, "Do not verify manfid information in CIS");/* struct local_info::hw_priv */struct hostap_plx_priv {	void __iomem *attr_mem;	unsigned int cor_offset;};#define PLX_MIN_ATTR_LEN 512	/* at least 2 x 256 is needed for CIS */#define COR_SRESET       0x80#define COR_LEVLREQ      0x40#define COR_ENABLE_FUNC  0x01/* PCI Configuration Registers */#define PLX_PCIIPR       0x3d   /* PCI Interrupt Pin *//* Local Configuration Registers */#define PLX_INTCSR       0x4c   /* Interrupt Control/Status Register */#define PLX_INTCSR_PCI_INTEN BIT(6) /* PCI Interrupt Enable */#define PLX_CNTRL        0x50#define PLX_CNTRL_SERIAL_EEPROM_PRESENT BIT(28)#define PLXDEV(vendor,dev,str) { vendor, dev, PCI_ANY_ID, PCI_ANY_ID }static struct pci_device_id prism2_plx_id_table[] __devinitdata = {	PLXDEV(0x10b7, 0x7770, "3Com AirConnect PCI 777A"),	PLXDEV(0x111a, 0x1023, "Siemens SpeedStream SS1023"),	PLXDEV(0x126c, 0x8030, "Nortel emobility"),	PLXDEV(0x1562, 0x0001, "Symbol LA-4123"),	PLXDEV(0x1385, 0x4100, "Netgear MA301"),	PLXDEV(0x15e8, 0x0130, "National Datacomm NCP130 (PLX9052)"),	PLXDEV(0x15e8, 0x0131, "National Datacomm NCP130 (TMD7160)"),	PLXDEV(0x1638, 0x1100, "Eumitcom WL11000"),	PLXDEV(0x16ab, 0x1100, "Global Sun Tech GL24110P"),	PLXDEV(0x16ab, 0x1101, "Global Sun Tech GL24110P (?)"),	PLXDEV(0x16ab, 0x1102, "Linksys WPC11 with WDT11"),	PLXDEV(0x16ab, 0x1103, "Longshine 8031"),	PLXDEV(0x16ec, 0x3685, "US Robotics USR2415"),	PLXDEV(0xec80, 0xec00, "Belkin F5D6000"),	{ 0 }};/* Array of known Prism2/2.5 PC Card manufactured ids. If your card's manfid * is not listed here, you will need to add it here to get the driver * initialized. */static struct prism2_plx_manfid {	u16 manfid1, manfid2;} prism2_plx_known_manfids[] = {	{ 0x000b, 0x7110 } /* D-Link DWL-650 Rev. P1 */,	{ 0x000b, 0x7300 } /* Philips 802.11b WLAN PCMCIA */,	{ 0x0101, 0x0777 } /* 3Com AirConnect PCI 777A */,	{ 0x0126, 0x8000 } /* Proxim RangeLAN */,	{ 0x0138, 0x0002 } /* Compaq WL100 */,	{ 0x0156, 0x0002 } /* Intersil Prism II Ref. Design (and others) */,	{ 0x026f, 0x030b } /* Buffalo WLI-CF-S11G */,	{ 0x0274, 0x1612 } /* Linksys WPC11 Ver 2.5 */,	{ 0x0274, 0x1613 } /* Linksys WPC11 Ver 3 */,	{ 0x028a, 0x0002 } /* D-Link DRC-650 */,	{ 0x0250, 0x0002 } /* Samsung SWL2000-N */,	{ 0xc250, 0x0002 } /* EMTAC A2424i */,	{ 0xd601, 0x0002 } /* Z-Com XI300 */,	{ 0xd601, 0x0005 } /* Zcomax XI-325H 200mW */,	{ 0, 0}};#ifdef PRISM2_IO_DEBUGstatic inline void hfa384x_outb_debug(struct net_device *dev, int a, u8 v){	struct hostap_interface *iface;	local_info_t *local;	unsigned long flags;	iface = netdev_priv(dev);	local = iface->local;	spin_lock_irqsave(&local->lock, flags);	prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_OUTB, a, v);	outb(v, dev->base_addr + a);	spin_unlock_irqrestore(&local->lock, flags);}static inline u8 hfa384x_inb_debug(struct net_device *dev, int a){	struct hostap_interface *iface;	local_info_t *local;	unsigned long flags;	u8 v;	iface = netdev_priv(dev);	local = iface->local;	spin_lock_irqsave(&local->lock, flags);	v = inb(dev->base_addr + a);	prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_INB, a, v);	spin_unlock_irqrestore(&local->lock, flags);	return v;}static inline void hfa384x_outw_debug(struct net_device *dev, int a, u16 v){	struct hostap_interface *iface;	local_info_t *local;	unsigned long flags;	iface = netdev_priv(dev);	local = iface->local;	spin_lock_irqsave(&local->lock, flags);	prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_OUTW, a, v);	outw(v, dev->base_addr + a);	spin_unlock_irqrestore(&local->lock, flags);}static inline u16 hfa384x_inw_debug(struct net_device *dev, int a){	struct hostap_interface *iface;	local_info_t *local;	unsigned long flags;	u16 v;	iface = netdev_priv(dev);	local = iface->local;	spin_lock_irqsave(&local->lock, flags);	v = inw(dev->base_addr + a);	prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_INW, a, v);	spin_unlock_irqrestore(&local->lock, flags);	return v;}static inline void hfa384x_outsw_debug(struct net_device *dev, int a,				       u8 *buf, int wc){	struct hostap_interface *iface;	local_info_t *local;	unsigned long flags;	iface = netdev_priv(dev);	local = iface->local;	spin_lock_irqsave(&local->lock, flags);	prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_OUTSW, a, wc);	outsw(dev->base_addr + a, buf, wc);	spin_unlock_irqrestore(&local->lock, flags);}static inline void hfa384x_insw_debug(struct net_device *dev, int a,				      u8 *buf, int wc){	struct hostap_interface *iface;	local_info_t *local;	unsigned long flags;	iface = netdev_priv(dev);	local = iface->local;	spin_lock_irqsave(&local->lock, flags);	prism2_io_debug_add(dev, PRISM2_IO_DEBUG_CMD_INSW, a, wc);	insw(dev->base_addr + a, buf, wc);	spin_unlock_irqrestore(&local->lock, flags);}#define HFA384X_OUTB(v,a) hfa384x_outb_debug(dev, (a), (v))#define HFA384X_INB(a) hfa384x_inb_debug(dev, (a))#define HFA384X_OUTW(v,a) hfa384x_outw_debug(dev, (a), (v))#define HFA384X_INW(a) hfa384x_inw_debug(dev, (a))#define HFA384X_OUTSW(a, buf, wc) hfa384x_outsw_debug(dev, (a), (buf), (wc))#define HFA384X_INSW(a, buf, wc) hfa384x_insw_debug(dev, (a), (buf), (wc))#else /* PRISM2_IO_DEBUG */#define HFA384X_OUTB(v,a) outb((v), dev->base_addr + (a))#define HFA384X_INB(a) inb(dev->base_addr + (a))#define HFA384X_OUTW(v,a) outw((v), dev->base_addr + (a))#define HFA384X_INW(a) inw(dev->base_addr + (a))#define HFA384X_INSW(a, buf, wc) insw(dev->base_addr + (a), buf, wc)#define HFA384X_OUTSW(a, buf, wc) outsw(dev->base_addr + (a), buf, wc)#endif /* PRISM2_IO_DEBUG */static int hfa384x_from_bap(struct net_device *dev, u16 bap, void *buf,			    int len){	u16 d_off;	u16 *pos;	d_off = (bap == 1) ? HFA384X_DATA1_OFF : HFA384X_DATA0_OFF;	pos = (u16 *) buf;	if (len / 2)		HFA384X_INSW(d_off, buf, len / 2);	pos += len / 2;	if (len & 1)		*((char *) pos) = HFA384X_INB(d_off);	return 0;}static int hfa384x_to_bap(struct net_device *dev, u16 bap, void *buf, int len){	u16 d_off;	u16 *pos;	d_off = (bap == 1) ? HFA384X_DATA1_OFF : HFA384X_DATA0_OFF;	pos = (u16 *) buf;	if (len / 2)		HFA384X_OUTSW(d_off, buf, len / 2);	pos += len / 2;	if (len & 1)		HFA384X_OUTB(*((char *) pos), d_off);	return 0;}/* FIX: This might change at some point.. */#include "hostap_hw.c"static void prism2_plx_cor_sreset(local_info_t *local){	unsigned char corsave;	struct hostap_plx_priv *hw_priv = local->hw_priv;	printk(KERN_DEBUG "%s: Doing reset via direct COR access.\n",	       dev_info);	/* Set sreset bit of COR and clear it after hold time */	if (hw_priv->attr_mem == NULL) {		/* TMD7160 - COR at card's first I/O addr */		corsave = inb(hw_priv->cor_offset);		outb(corsave | COR_SRESET, hw_priv->cor_offset);		mdelay(2);		outb(corsave & ~COR_SRESET, hw_priv->cor_offset);		mdelay(2);	} else {		/* PLX9052 */		corsave = readb(hw_priv->attr_mem + hw_priv->cor_offset);		writeb(corsave | COR_SRESET,		       hw_priv->attr_mem + hw_priv->cor_offset);		mdelay(2);		writeb(corsave & ~COR_SRESET,		       hw_priv->attr_mem + hw_priv->cor_offset);		mdelay(2);	}}static void prism2_plx_genesis_reset(local_info_t *local, int hcr){	unsigned char corsave;	struct hostap_plx_priv *hw_priv = local->hw_priv;	if (hw_priv->attr_mem == NULL) {		/* TMD7160 - COR at card's first I/O addr */		corsave = inb(hw_priv->cor_offset);		outb(corsave | COR_SRESET, hw_priv->cor_offset);		mdelay(10);		outb(hcr, hw_priv->cor_offset + 2);		mdelay(10);		outb(corsave & ~COR_SRESET, hw_priv->cor_offset);		mdelay(10);	} else {		/* PLX9052 */		corsave = readb(hw_priv->attr_mem + hw_priv->cor_offset);		writeb(corsave | COR_SRESET,		       hw_priv->attr_mem + hw_priv->cor_offset);		mdelay(10);		writeb(hcr, hw_priv->attr_mem + hw_priv->cor_offset + 2);		mdelay(10);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青草国产精品97视觉盛宴| 婷婷亚洲久悠悠色悠在线播放| 欧美日本国产一区| 色综合久久久久久久| 99久久婷婷国产| 99久久久久久| 91丨porny丨首页| 91麻豆成人久久精品二区三区| 波多野结衣亚洲一区| av在线综合网| 色噜噜狠狠一区二区三区果冻| 一本久久精品一区二区| 色狠狠桃花综合| 欧美伦理影视网| 日韩欧美一级二级| www日韩大片| 国产精品美女久久久久av爽李琼| 中文字幕制服丝袜一区二区三区| 亚洲欧美另类久久久精品2019| 亚洲精选一二三| 琪琪久久久久日韩精品| 久久99精品久久久久久久久久久久 | 欧美精品精品一区| 91精品福利在线一区二区三区 | 老司机午夜精品99久久| 国产精品一区二区在线观看不卡 | 午夜成人免费视频| 久热成人在线视频| 99在线视频精品| 欧美精品三级日韩久久| 久久久久久久一区| 亚洲精品国产第一综合99久久| 亚洲国产一区视频| 国产精品一区二区在线播放| 91日韩一区二区三区| 日韩欧美在线影院| 亚洲免费av高清| 美国十次了思思久久精品导航| 成人午夜私人影院| 制服.丝袜.亚洲.中文.综合| 欧美国产精品一区| 蜜桃91丨九色丨蝌蚪91桃色| 99久精品国产| 欧美一区二区三区视频| 亚洲日本欧美天堂| 国产乱人伦偷精品视频不卡| 欧美日韩在线精品一区二区三区激情| 精品国产欧美一区二区| 亚洲精品va在线观看| 国产一区二区伦理片| 欧美日精品一区视频| 国产女主播在线一区二区| 日韩高清不卡一区二区三区| av不卡一区二区三区| 精品国产精品一区二区夜夜嗨| 亚洲免费电影在线| 99精品视频一区二区三区| 精品第一国产综合精品aⅴ| 亚洲高清一区二区三区| 91在线视频免费观看| 国产人妖乱国产精品人妖| 蜜桃久久av一区| 欧美日韩国产在线观看| 伊人开心综合网| 成人动漫av在线| 国产亚洲精品bt天堂精选| 精品一区二区三区在线观看| 欧美精品丝袜中出| 亚洲国产精品一区二区久久 | 秋霞午夜av一区二区三区| 欧美日韩一区精品| 亚洲视频在线一区二区| 高清国产午夜精品久久久久久| 日韩欧美精品在线视频| 免费观看一级特黄欧美大片| 欧美一区二区视频观看视频| 视频一区欧美精品| 91精品国产综合久久精品图片| 午夜天堂影视香蕉久久| 欧美日韩国产综合一区二区| 视频一区二区三区中文字幕| 欧美日韩国产一区| 麻豆国产精品一区二区三区| 日韩免费高清av| 国产精品一区三区| 国产精品福利电影一区二区三区四区| 99久久久免费精品国产一区二区| 亚洲免费成人av| 在线成人av网站| 蜜桃视频在线观看一区二区| 精品处破学生在线二十三| 国产传媒欧美日韩成人| 国产精品久久久久婷婷二区次| 91视频精品在这里| 亚洲国产精品久久一线不卡| 欧美一区二区三区免费观看视频| 人人精品人人爱| 欧美国产日韩精品免费观看| 99免费精品在线观看| 亚洲一区免费在线观看| 欧美一级在线视频| 国产成人a级片| 最新成人av在线| 91精品国产一区二区三区香蕉 | 成人激情小说乱人伦| 亚洲三级在线免费| 8x8x8国产精品| 国产精品白丝jk白祙喷水网站| 最新高清无码专区| 日韩视频在线一区二区| 成人黄页毛片网站| 日韩电影在线一区二区三区| 精品国产91亚洲一区二区三区婷婷 | 日本一区中文字幕| 国产精品嫩草99a| 欧美男女性生活在线直播观看| 奇米影视一区二区三区小说| 欧美国产日韩亚洲一区| 欧美男男青年gay1069videost| 国内精品写真在线观看| 亚洲国产精品欧美一二99| 国产亚洲精品aa| 制服丝袜成人动漫| 色综合久久综合| 国产精品资源站在线| 五月婷婷色综合| 国产精品传媒在线| 国产亚洲视频系列| 欧美福利视频一区| 一本一道综合狠狠老| 国产伦精品一区二区三区免费| 一区二区理论电影在线观看| 国产女人18毛片水真多成人如厕| 7777精品伊人久久久大香线蕉 | 国产一区二区主播在线| 日韩高清不卡一区二区三区| 亚洲精品视频在线| 国产精品欧美一区喷水| 精品成人一区二区三区| 欧美人xxxx| 欧美日韩精品一区视频| 在线亚洲+欧美+日本专区| 国产成人鲁色资源国产91色综| 美女视频黄频大全不卡视频在线播放| 尤物在线观看一区| 亚洲激情校园春色| 亚洲欧美国产三级| 亚洲柠檬福利资源导航| 中文字幕一区二区不卡| 国产精品天美传媒沈樵| 欧美精彩视频一区二区三区| 精品国产乱码久久久久久图片 | 亚洲色图清纯唯美| 国产精品久久久久久户外露出| 欧美激情在线一区二区三区| 久久蜜桃香蕉精品一区二区三区| 精品成人免费观看| 26uuu亚洲| 中文字幕 久热精品 视频在线 | 中文一区二区完整视频在线观看| 久久久亚洲高清| 中文字幕精品在线不卡| 日韩美女精品在线| 亚洲狠狠爱一区二区三区| 亚洲一区二区三区中文字幕在线| 亚洲伊人色欲综合网| 日韩—二三区免费观看av| 国内精品免费**视频| www.欧美.com| 在线观看www91| 欧美一区二区成人| 久久免费精品国产久精品久久久久| 2022国产精品视频| 最近日韩中文字幕| 日韩专区在线视频| 国产一区二区三区最好精华液| 福利91精品一区二区三区| 91在线porny国产在线看| 欧美精品粉嫩高潮一区二区| 2023国产精华国产精品| 亚洲视频一区二区免费在线观看| 亚洲综合激情网| 久久精品国产色蜜蜜麻豆| 国产99精品在线观看| 欧美综合天天夜夜久久| 欧美大肚乱孕交hd孕妇| 国产精品久久久一区麻豆最新章节| 一区二区三区免费| 精品一二线国产| 色综合久久久网| 久久久久99精品一区| 亚洲高清免费观看高清完整版在线观看 | 国产精品第一页第二页第三页| 亚洲愉拍自拍另类高清精品| 激情综合网最新| 91福利在线看| 中文字幕av一区二区三区| 亚洲国产精品久久一线不卡| 大陆成人av片| 欧美大白屁股肥臀xxxxxx|