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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hostap_plx.c

?? linux內(nèi)核源碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#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);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久99水蜜桃| 国产裸体歌舞团一区二区| 精品盗摄一区二区三区| 色综合亚洲欧洲| 国产精品1区2区3区在线观看| 丝袜亚洲另类欧美| 亚洲欧美视频在线观看| 欧美精品一区二区久久久| 欧美撒尿777hd撒尿| 99久久国产综合精品色伊 | 亚洲图片一区二区| 国产精品美女久久久久aⅴ| 日韩久久久精品| 欧美狂野另类xxxxoooo| 欧美综合天天夜夜久久| 国产一区二区免费视频| 久久精品国产亚洲5555| 肉色丝袜一区二区| 亚洲午夜久久久久久久久电影院| 国产精品久久久久久久久动漫| 精品国产一区二区在线观看| 777xxx欧美| 欧美日韩国产高清一区| 欧洲一区在线观看| 97久久精品人人做人人爽| 国产精品一区二区久激情瑜伽 | 麻豆精品一二三| 天天免费综合色| 亚洲午夜一二三区视频| 亚洲香蕉伊在人在线观| 一区二区成人在线| 一区二区三区资源| 一区二区三区中文字幕在线观看| 亚洲日本一区二区三区| 日韩一区中文字幕| 日韩久久一区二区| 亚洲色图一区二区三区| 亚洲视频一二三区| 一区二区三区在线观看动漫| 一区二区三区在线免费视频| 亚洲午夜久久久久中文字幕久| 亚洲在线视频网站| 午夜视频在线观看一区二区| 三级在线观看一区二区| 免费观看久久久4p| 韩国一区二区视频| 国产一区二区调教| 成人一区二区三区视频在线观看 | 亚洲一区二区五区| 亚洲国产成人高清精品| 丝袜诱惑制服诱惑色一区在线观看 | 日韩一区二区在线看片| 欧美成人国产一区二区| 国产日韩影视精品| 亚洲欧洲成人精品av97| 一区二区三区在线视频观看58 | 偷拍日韩校园综合在线| 另类人妖一区二区av| 国产jizzjizz一区二区| 91亚洲国产成人精品一区二三| 91国偷自产一区二区三区观看| 欧美精品在线一区二区三区| 日韩精品一区二区三区视频播放| 国产亚洲一本大道中文在线| 亚洲男同1069视频| 免费在线观看日韩欧美| 国产成人综合在线| 在线视频中文字幕一区二区| 日韩女同互慰一区二区| 国产精品麻豆久久久| 亚洲电影第三页| 国产福利视频一区二区三区| 欧美在线视频日韩| 91麻豆精品91久久久久同性| 国产亚洲一区二区三区在线观看| 综合激情成人伊人| 久久成人18免费观看| 99精品视频免费在线观看| 在线观看91av| 国产精品超碰97尤物18| 丝袜亚洲另类丝袜在线| 不卡av在线网| 日韩三级av在线播放| 亚洲码国产岛国毛片在线| 久久99精品久久久久久久久久久久| 播五月开心婷婷综合| 91精品综合久久久久久| 国产精品欧美综合在线| 男人的j进女人的j一区| 99久久国产综合精品女不卡| 精品人在线二区三区| 亚洲黄色av一区| 粉嫩aⅴ一区二区三区四区| 在线播放中文字幕一区| 亚洲少妇最新在线视频| 国产精品香蕉一区二区三区| 欧美日韩久久不卡| 亚洲色图在线看| 国产一区二区三区日韩| 91精品国产综合久久蜜臀| 亚洲私人影院在线观看| 国产电影一区二区三区| 日韩精品一区二区三区四区| 亚洲网友自拍偷拍| fc2成人免费人成在线观看播放| 日韩美女一区二区三区四区| 亚洲国产另类av| 99精品在线观看视频| 欧美国产日本韩| 国内不卡的二区三区中文字幕| 欧美日韩不卡在线| 免费日韩伦理电影| 欧美日本一区二区三区四区| 亚洲美女屁股眼交3| 成人18视频在线播放| 国产性天天综合网| 精品无人码麻豆乱码1区2区 | 日韩毛片高清在线播放| 高清视频一区二区| 国产亚洲精品7777| 国产麻豆午夜三级精品| 精品va天堂亚洲国产| 麻豆成人免费电影| 日韩一区二区三| 日本不卡视频一二三区| 欧美一区二区三区白人| 午夜亚洲福利老司机| 欧美精品777| 天天色天天操综合| 欧美丰满一区二区免费视频| 天堂va蜜桃一区二区三区| 欧美人狂配大交3d怪物一区| 午夜影院在线观看欧美| 欧美偷拍一区二区| 亚洲黄色尤物视频| 色婷婷av一区二区三区gif| 一区二区在线电影| 日本精品裸体写真集在线观看| 亚洲精品国产高清久久伦理二区| 99久久精品国产一区二区三区 | 欧美性猛交一区二区三区精品| 亚洲欧洲日本在线| 色哟哟一区二区三区| 亚洲最新视频在线观看| 精品视频色一区| 日本三级韩国三级欧美三级| 欧美va亚洲va| 国产精品亚洲人在线观看| 国产精品麻豆99久久久久久| 91蜜桃视频在线| 亚洲成人福利片| 精品少妇一区二区三区| 国产.精品.日韩.另类.中文.在线.播放| 久久精品在这里| 99久久婷婷国产综合精品| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| eeuss鲁片一区二区三区在线观看| 亚洲精品日韩一| 欧美精品一级二级| 国产一区二区成人久久免费影院| 国产精品入口麻豆原神| 欧美性一二三区| 奇米影视在线99精品| 久久久久久久久97黄色工厂| 91在线视频播放地址| 日韩中文字幕91| 国产精品丝袜在线| 欧美在线视频不卡| 国产一区二区三区观看| 亚洲精品视频观看| 精品人在线二区三区| 91视频在线观看免费| 美女任你摸久久| 18成人在线视频| 日韩精品中午字幕| 色综合中文综合网| 国产a区久久久| 亚洲一区二区三区激情| 精品成人一区二区三区四区| 99re成人在线| 精品一区二区免费| 亚洲与欧洲av电影| 国产欧美在线观看一区| 欧美人牲a欧美精品| k8久久久一区二区三区| 久久国产精品无码网站| 亚洲精品乱码久久久久久日本蜜臀| 欧美成人女星排行榜| 在线观看亚洲精品视频| 成人永久免费视频| 日本午夜一区二区| 一区二区三区欧美激情| 久久精品亚洲乱码伦伦中文 | 91久久精品国产91性色tv| 国产在线国偷精品免费看| 午夜精品久久久久久久蜜桃app| 国产精品九色蝌蚪自拍| 精品成人一区二区三区| 91精品国产色综合久久不卡蜜臀 | 欧美怡红院视频|