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

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

?? hostap_plx.c

?? LINUX 2.6.17.4的源碼
?? 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/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);		mdelay(10);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久中文娱乐网| 亚洲一二三区在线观看| 国产网站一区二区三区| 欧美大尺度电影在线| 欧美一区午夜精品| 日韩欧美高清一区| 精品少妇一区二区三区| 久久影音资源网| 中文字幕欧美国产| 最新国产の精品合集bt伙计| 国产精品久久久久aaaa樱花| 国产精品久久国产精麻豆99网站 | 一区二区三区日韩精品| √…a在线天堂一区| 亚洲摸摸操操av| 一区二区三区四区蜜桃| 亚洲一二三四在线| 日本在线不卡一区| 韩日av一区二区| 国产成人免费视频精品含羞草妖精 | 亚洲成人综合在线| 日本欧美一区二区| 精品一区中文字幕| av资源网一区| 在线欧美一区二区| 欧美一级日韩一级| 国产人久久人人人人爽| 亚洲日本一区二区| 日韩av中文字幕一区二区三区| 五月天激情综合网| 国产a久久麻豆| 日本精品一区二区三区四区的功能| 成人午夜激情片| 国产精品妹子av| 欧美成人a∨高清免费观看| 久久影院午夜片一区| 亚洲视频小说图片| 日韩在线观看一区二区| 韩国午夜理伦三级不卡影院| 91在线观看一区二区| 中文字幕乱码久久午夜不卡 | 久久99热国产| av电影一区二区| 欧美高清激情brazzers| 久久影院视频免费| 亚洲夂夂婷婷色拍ww47| 国产综合色精品一区二区三区| av爱爱亚洲一区| 欧美一区二区在线看| 国产精品丝袜一区| 视频在线在亚洲| 成人免费视频caoporn| 欧美日韩中文国产| 国产人久久人人人人爽| 日韩精品免费专区| 99久久99久久精品国产片果冻| 6080国产精品一区二区| 国产精品久久一级| 麻豆免费精品视频| 在线精品视频一区二区| 久久综合资源网| 亚洲电影视频在线| 不卡电影免费在线播放一区| 欧美一区二区三区成人| 亚洲免费在线观看视频| 国产一区二区三区精品视频| 欧美日韩卡一卡二| 成人免费小视频| 国产在线播放一区| 91麻豆精品国产91| 亚洲久草在线视频| 岛国精品在线播放| 精品久久久久久久人人人人传媒| 亚洲一区在线观看免费 | 精品视频全国免费看| 国产精品久久久爽爽爽麻豆色哟哟 | 日本午夜精品一区二区三区电影| jizz一区二区| 国产日韩欧美一区二区三区综合| 亚洲777理论| 老司机午夜精品| 欧美欧美欧美欧美首页| 国产精品一区二区久久精品爱涩 | 久久久久久毛片| 亚洲一二三级电影| 色综合久久综合| 国产精品久久一卡二卡| 欧美精品18+| 亚洲日本一区二区三区| 播五月开心婷婷综合| 久久青草国产手机看片福利盒子| 麻豆91免费看| 欧美一区二区三区四区久久| 亚洲国产综合在线| 欧美午夜不卡在线观看免费| 亚洲综合免费观看高清在线观看| 99久久综合精品| 国产精品福利一区| 成人精品免费看| 国产精品免费网站在线观看| 国产69精品久久久久777| 久久久亚洲欧洲日产国码αv| 精品一区二区三区在线观看 | 久久综合五月天婷婷伊人| 天堂一区二区在线| 欧美日本国产一区| 欧美猛男超大videosgay| 99精品视频在线免费观看| 在线成人av网站| 五月激情六月综合| 欧美一区二区三区日韩| 天堂在线一区二区| 日韩免费在线观看| 经典三级一区二区| 国产亚洲制服色| 99精品视频在线观看| 亚洲图片激情小说| 欧美在线色视频| 日本午夜一区二区| 欧美精品一区二区三区蜜桃视频| 黄色小说综合网站| 欧美国产精品专区| 91丨porny丨首页| 亚洲福利国产精品| 91精品国产综合久久小美女| 狠狠色伊人亚洲综合成人| 久久久久久影视| 99re这里只有精品6| 亚洲一区二区三区在线播放| 欧美一区二区视频网站| 国产激情一区二区三区| 亚洲天堂精品视频| 欧美乱妇23p| 国产一区二区免费视频| 国产精品久久久久久久久久免费看 | 日本免费新一区视频| 一本大道久久a久久综合婷婷| 成人免费的视频| 麻豆国产精品视频| 日韩一区二区在线看片| 午夜欧美大尺度福利影院在线看| 日韩美女一区二区三区| 福利一区二区在线| 亚洲成av人在线观看| 久久综合九色综合97婷婷| jizz一区二区| 蜜桃av噜噜一区| 欧美激情在线一区二区三区| 欧美系列在线观看| 极品少妇一区二区三区精品视频 | 久久久久99精品国产片| 91麻豆免费观看| 日本美女一区二区| 国产精品久久久久婷婷二区次| 欧美日韩在线三区| 欧美电影影音先锋| 成人在线综合网| 日韩中文字幕区一区有砖一区| 久久精品在线观看| 欧美精品丝袜久久久中文字幕| 国产成人午夜视频| 五月天亚洲婷婷| 亚洲私人影院在线观看| 精品入口麻豆88视频| 成人黄色综合网站| 国产色婷婷亚洲99精品小说| 宅男在线国产精品| jiyouzz国产精品久久| 久久国产人妖系列| 亚洲亚洲精品在线观看| 亚洲欧洲一区二区三区| 精品91自产拍在线观看一区| 欧美天堂一区二区三区| aaa亚洲精品| 国产精品99久久久久久久女警 | 亚洲青青青在线视频| 26uuu精品一区二区| 欧美日韩国产免费| 91污片在线观看| 国产成人丝袜美腿| 久久精品国产在热久久| 亚洲成人av资源| 一区二区三区日本| 亚洲欧美日韩一区| 中文子幕无线码一区tr| 久久婷婷一区二区三区| 日韩欧美高清dvd碟片| 欧美日韩黄视频| 91极品美女在线| av电影在线观看不卡| 成人av电影在线播放| 国产成都精品91一区二区三| 久久激情五月婷婷| 捆绑调教美女网站视频一区| 亚洲第一精品在线| 亚洲不卡在线观看| 亚洲成人在线网站| 性做久久久久久久免费看| 一区二区三区波多野结衣在线观看| 国产精品麻豆视频|