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

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

?? hostap_plx.c

?? linux-2.6.15.6
?? 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/config.h>#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 *version = PRISM2_VERSION " (Jouni Malinen <jkmaline@cc.hut.fi>)";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");MODULE_VERSION(PRISM2_VERSION);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(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, 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);		writeb(corsave & ~COR_SRESET,		       hw_priv->attr_mem + hw_priv->cor_offset);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线一二三四区| 丁香桃色午夜亚洲一区二区三区| 精品理论电影在线观看 | 成人性色生活片免费看爆迷你毛片| 亚洲免费三区一区二区| 精品日本一线二线三线不卡| 91麻豆精品秘密| 粉嫩一区二区三区性色av| 日韩vs国产vs欧美| 亚洲大尺度视频在线观看| 亚洲色图视频网站| 中文字幕中文乱码欧美一区二区| 欧美va日韩va| 日韩精品一区二区三区蜜臀| 欧美一区午夜精品| 91精品国产91久久久久久一区二区| 91在线观看免费视频| 91免费版pro下载短视频| 99久久精品国产导航| 97久久超碰精品国产| av资源站一区| 91精品福利视频| 欧美影院一区二区| 欧美高清视频一二三区| 91精品国产高清一区二区三区 | 亚洲国产精品嫩草影院| 亚洲国产一区二区三区| 午夜精品影院在线观看| 日韩中文欧美在线| 国产精品一区二区三区网站| 国产福利精品导航| 一本大道久久精品懂色aⅴ| 在线日韩国产精品| 日韩精品中文字幕一区| 国产日韩欧美精品综合| 亚洲精品久久7777| 精品一区二区国语对白| 成人免费观看视频| 欧美性xxxxxxxx| 精品噜噜噜噜久久久久久久久试看| 中文字幕高清一区| 亚洲一区自拍偷拍| 国产真实乱子伦精品视频| 成人午夜又粗又硬又大| 91精品在线观看入口| 国产无一区二区| 天天操天天干天天综合网| 国产剧情av麻豆香蕉精品| 在线看日本不卡| 国产欧美久久久精品影院 | 亚洲一区电影777| 国产成人鲁色资源国产91色综| 欧美亚洲综合另类| 欧美国产一区在线| 青青草一区二区三区| 日本黄色一区二区| 国产精品国产三级国产| 国产一区二区91| 精品久久久久久久久久久院品网 | 91麻豆国产福利在线观看| 久久亚区不卡日本| 免费久久99精品国产| 欧美丰满一区二区免费视频| 亚洲高清在线视频| 欧美性大战xxxxx久久久| 一区二区在线免费观看| 国产成人av电影在线播放| 日韩欧美一区二区不卡| 青草国产精品久久久久久| 在线视频国产一区| 亚洲一区二区欧美日韩 | 亚洲国产高清在线观看视频| 国产做a爰片久久毛片| 日韩精品一区二区三区四区视频| 日韩av中文字幕一区二区| 欧美欧美欧美欧美首页| 亚洲成人tv网| 精品国产伦一区二区三区观看方式 | 欧美人牲a欧美精品| 亚洲精品国产成人久久av盗摄| 色偷偷成人一区二区三区91| 亚洲男帅同性gay1069| 欧美三级电影一区| 日韩精品乱码免费| 日韩欧美一区二区在线视频| 免费人成黄页网站在线一区二区 | 国内外精品视频| 欧美激情艳妇裸体舞| 欧美亚洲综合网| 国产美女主播视频一区| 亚洲狠狠丁香婷婷综合久久久| 欧美三级电影精品| 国产iv一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 91精品国产91热久久久做人人| 国产suv精品一区二区6| 日韩精品国产欧美| 亚洲欧洲www| 欧美高清激情brazzers| 国产精品1区2区3区| 亚洲成人av电影在线| 国产人成一区二区三区影院| 欧美老人xxxx18| 99re热这里只有精品免费视频| 中文字幕中文乱码欧美一区二区| 欧美精品色综合| 色综合欧美在线视频区| 国产精品一二三四五| 日本不卡一二三区黄网| 亚洲精品视频一区| 日本一区二区三区免费乱视频| 在线综合视频播放| 欧美日韩久久一区二区| 91丨porny丨在线| 丁香婷婷综合激情五月色| 日本美女一区二区| 蜜臀av一级做a爰片久久| 亚洲欧美偷拍另类a∨色屁股| 精品国产百合女同互慰| 91黄色激情网站| 97超碰欧美中文字幕| 97超碰欧美中文字幕| 91视频你懂的| 色悠悠久久综合| 91极品视觉盛宴| 欧美日韩高清在线| 日韩午夜在线观看| 国产亚洲婷婷免费| 中文无字幕一区二区三区| 欧美激情一区二区三区蜜桃视频| 中文字幕精品三区| 亚洲精品网站在线观看| 亚洲午夜影视影院在线观看| 亚洲超丰满肉感bbw| 麻豆久久久久久| 成人综合婷婷国产精品久久免费| eeuss鲁片一区二区三区在线看| 91麻豆国产自产在线观看| 欧美精品乱人伦久久久久久| 日韩一区二区免费高清| 久久你懂得1024| 亚洲v日本v欧美v久久精品| 欧美aaa在线| 色婷婷亚洲综合| 精品国产髙清在线看国产毛片| 欧美韩国日本不卡| 午夜精品久久久久影视| 国产精品69毛片高清亚洲| 欧美色老头old∨ideo| 精品国产乱码久久久久久浪潮 | 国产视频一区二区在线| 一级女性全黄久久生活片免费| 久久精品国产在热久久| 91国偷自产一区二区三区成为亚洲经典 | 国产一区在线观看视频| 在线观看av一区二区| 久久久久久久久久久久久女国产乱| 尤物在线观看一区| 国产不卡一区视频| 91精品国产91热久久久做人人| 国产精品高清亚洲| 国产高清不卡二三区| 欧美一区二区在线免费播放 | 国产精品国产a| 国产二区国产一区在线观看| 91精品国模一区二区三区| 亚洲视频资源在线| 成人av在线播放网站| 久久久一区二区三区捆绑**| 蜜臀av在线播放一区二区三区| 欧美在线免费观看亚洲| 一区二区三区在线不卡| 91热门视频在线观看| 亚洲欧洲日本在线| youjizz久久| 一二三区精品视频| 欧美午夜电影一区| 天天综合天天综合色| 4438x成人网最大色成网站| 亚洲一区二区高清| 欧美丰满少妇xxxxx高潮对白| 五月综合激情日本mⅴ| 日韩精品一区二区三区三区免费| 蜜乳av一区二区| 久久久久国产精品麻豆ai换脸 | 不卡电影一区二区三区| 综合久久给合久久狠狠狠97色| 97久久人人超碰| 亚洲一级二级在线| 精品1区2区在线观看| 97久久久精品综合88久久| 婷婷夜色潮精品综合在线| 精品电影一区二区三区| 成人激情免费视频| 亚洲国产精品一区二区www在线| 精品国产第一区二区三区观看体验| 国产激情一区二区三区四区| 一区二区三区视频在线观看| 欧美一级日韩免费不卡| 99精品在线免费|