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

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

?? 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);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国一区二区在线观看| 91麻豆.com| 亚洲免费电影在线| 欧美久久高跟鞋激| 成人手机在线视频| 麻豆精品一区二区三区| 一区二区三区四区av| 国产欧美一区二区精品仙草咪| 在线看一区二区| 国产精品综合网| 喷白浆一区二区| 亚洲韩国精品一区| 综合色天天鬼久久鬼色| 精品久久国产老人久久综合| 欧美日韩国产另类一区| 91麻豆国产在线观看| 国产老肥熟一区二区三区| 免费在线看成人av| 亚洲成av人在线观看| 亚洲欧美偷拍三级| 国产精品天天摸av网| 久久久午夜电影| 欧美成人精品高清在线播放 | 日韩和的一区二区| 亚洲视频一区在线| 国产精品丝袜在线| 国产女同性恋一区二区| 久久久亚洲午夜电影| 欧美精品一区二区高清在线观看| 欧美一级一区二区| 欧美另类一区二区三区| 欧美天天综合网| 欧美在线短视频| 色就色 综合激情| 91国产免费观看| 日本精品一区二区三区高清| 99精品欧美一区二区三区小说 | 日韩中文字幕91| 午夜电影网一区| 日日夜夜精品免费视频| 天堂久久一区二区三区| 日韩国产欧美在线播放| 麻豆精品蜜桃视频网站| 久久不见久久见免费视频7| 久久国产精品露脸对白| 国产一区二区日韩精品| 国产成人av电影在线| 国产成人免费xxxxxxxx| 99精品国产视频| 欧美系列在线观看| 91精品免费观看| 精品嫩草影院久久| 国产三级精品三级在线专区| 国产精品美女一区二区三区 | 日韩精品视频网站| 美日韩黄色大片| 国产一区二区三区观看| 成熟亚洲日本毛茸茸凸凹| 不卡的av在线| 欧美性猛交一区二区三区精品| 欧美日韩中文字幕精品| 欧美mv日韩mv国产| 亚洲国产精品黑人久久久| 亚洲卡通动漫在线| 日韩国产精品久久久久久亚洲| 久久99精品久久久久| 丁香激情综合国产| 色综合色综合色综合色综合色综合| 欧美色综合天天久久综合精品| 91精品国产高清一区二区三区 | 亚洲成人高清在线| 日韩福利电影在线观看| 国内精品写真在线观看| 不卡的电影网站| 678五月天丁香亚洲综合网| 久久久久久久久岛国免费| 亚洲免费在线视频一区 二区| 日韩国产欧美在线播放| 成人精品小蝌蚪| 欧美人狂配大交3d怪物一区| 久久久久久久久岛国免费| 亚洲一区二三区| 国产呦萝稀缺另类资源| 欧美婷婷六月丁香综合色| 久久久久久久久岛国免费| 亚洲国产日韩精品| 国产在线精品免费| 欧美日韩在线三区| 欧美激情在线免费观看| 日韩高清在线电影| 色婷婷综合久久久| 久久色在线观看| 亚洲国产色一区| 97久久精品人人澡人人爽| 精品国产三级电影在线观看| 一二三四区精品视频| 国产jizzjizz一区二区| 欧美一区二区三区性视频| 亚洲精选视频在线| 成人一级片在线观看| 制服丝袜激情欧洲亚洲| 亚洲综合小说图片| 成人午夜激情视频| 精品久久久久久久久久久久久久久久久 | 欧美一区二区精美| 亚洲激情自拍偷拍| 国产一区二区伦理片| 欧美日本在线视频| 亚洲综合色自拍一区| 国产福利一区在线观看| 欧美mv日韩mv国产| 奇米精品一区二区三区在线观看一 | 高清在线成人网| 精品国产伦一区二区三区观看方式 | 精久久久久久久久久久| 欧美日韩一级视频| 亚洲精选视频在线| av电影天堂一区二区在线观看| 国产亚洲综合av| 久久精品国产精品亚洲红杏| 51久久夜色精品国产麻豆| 亚洲一区二区三区视频在线| 91视频观看免费| 一区二区中文视频| 99久免费精品视频在线观看| 国产欧美综合在线观看第十页| 国内精品视频一区二区三区八戒| 日韩欧美国产wwwww| 美女精品自拍一二三四| 日韩午夜中文字幕| 蜜桃久久久久久| 欧美成人三级在线| 激情文学综合插| 国产亚洲欧美日韩在线一区| 国产精品一区二区三区四区| 久久精品亚洲精品国产欧美 | 日韩av中文字幕一区二区三区| 精品视频999| 日韩电影在线一区二区三区| 欧美一区2区视频在线观看| 青青草原综合久久大伊人精品| 欧美日韩国产一级二级| 日本三级亚洲精品| 欧美刺激脚交jootjob| 韩国一区二区在线观看| 欧美激情自拍偷拍| 97成人超碰视| 一区二区三区不卡在线观看| 欧美另类高清zo欧美| 蜜桃免费网站一区二区三区| 久久久亚洲精品一区二区三区 | 欧美日韩在线精品一区二区三区激情| 亚洲精品视频在线观看免费| 在线日韩av片| 日韩经典中文字幕一区| 日韩亚洲欧美在线观看| 国产乱码一区二区三区| 国产精品久久久久四虎| 色8久久精品久久久久久蜜 | 97精品国产97久久久久久久久久久久| 亚洲另类在线制服丝袜| 在线成人免费视频| 国产主播一区二区| 中文字幕日韩精品一区| 欧美绝品在线观看成人午夜影视| 美女国产一区二区| 国产精品福利av| 5月丁香婷婷综合| 懂色av一区二区三区蜜臀| 亚洲少妇屁股交4| 欧美一区午夜精品| 成人激情黄色小说| 日韩在线一二三区| 国产女同性恋一区二区| 欧美网站大全在线观看| 国产一区二区主播在线| 亚洲免费在线视频| 精品国产一区二区三区四区四 | 欧美一区日本一区韩国一区| 国产一区二区福利| 一个色在线综合| 国产日韩影视精品| 欧美唯美清纯偷拍| 大尺度一区二区| 日韩高清不卡在线| 亚洲欧美乱综合| 欧美精品一区二| 88在线观看91蜜桃国自产| 粉嫩高潮美女一区二区三区 | 99久精品国产| 国内成人免费视频| 亚洲一区二区视频| 国产精品免费aⅴ片在线观看| 91精品国产欧美一区二区| 91亚洲精品久久久蜜桃网站| 精品影视av免费| 亚洲午夜免费视频| 国产精品不卡一区| 久久久久国色av免费看影院| 欧美精品在线一区二区三区|