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

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

?? hostap_plx.c

?? IEEE 802.11a/b/g linux2.4/2.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/version.h>#include <linux/module.h>#include <linux/init.h>#include <linux/if.h>#include <linux/skbuff.h>#include <linux/netdevice.h>#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,44))#include <linux/tqueue.h>#else#include <linux/workqueue.h>#endif#include "hostap_wext.h"#include <linux/ioport.h>#include <linux/pci.h>#include <asm/io.h>#include "hostap_wlan.h"#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14))#error Host AP driver was added into Linux 2.6.14.#error The version used in the kernel tree should be used instead of this#error external release which is only maintained for old kernel versions.#endifstatic 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");#ifdef MODULE_VERSIONMODULE_VERSION(PRISM2_VERSION);#endifstatic int ignore_cis = 0;MODULE_PARM(ignore_cis, "i");MODULE_PARM_DESC(ignore_cis, "Do not verify manfid information in CIS");#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 = dev->priv;	local_info_t *local = iface->local;	unsigned long flags;	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 = dev->priv;	local_info_t *local = iface->local;	unsigned long flags;	u8 v;	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 = dev->priv;	local_info_t *local = iface->local;	unsigned long flags;	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 = dev->priv;	local_info_t *local = iface->local;	unsigned long flags;	u16 v;	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 = dev->priv;	local_info_t *local = iface->local;	unsigned long flags;	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 = dev->priv;	local_info_t *local = iface->local;	unsigned long flags;	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;	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 (local->attr_mem == NULL) {		/* TMD7160 - COR at card's first I/O addr */		corsave = inb(local->cor_offset);		outb(corsave | COR_SRESET, local->cor_offset);		mdelay(2);		outb(corsave & ~COR_SRESET, local->cor_offset);		mdelay(2);	} else {		/* PLX9052 */		corsave = readb(local->attr_mem + local->cor_offset);		writeb(corsave | COR_SRESET,		       local->attr_mem + local->cor_offset);		mdelay(2);		writeb(corsave & ~COR_SRESET,		       local->attr_mem + local->cor_offset);		mdelay(2);	}}static void prism2_plx_genesis_reset(local_info_t *local, int hcr){	unsigned char corsave;	if (local->attr_mem == NULL) {		/* TMD7160 - COR at card's first I/O addr */		corsave = inb(local->cor_offset);		outb(corsave | COR_SRESET, local->cor_offset);		mdelay(10);		outb(hcr, local->cor_offset + 2);		mdelay(10);		outb(corsave & ~COR_SRESET, local->cor_offset);		mdelay(10);	} else {		/* PLX9052 */		corsave = readb(local->attr_mem + local->cor_offset);		writeb(corsave | COR_SRESET,		       local->attr_mem + local->cor_offset);		mdelay(10);		writeb(hcr, local->attr_mem + local->cor_offset + 2);		mdelay(10);		writeb(corsave & ~COR_SRESET,		       local->attr_mem + local->cor_offset);		mdelay(10);	}}static struct prism2_helper_functions prism2_plx_funcs ={

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人高清视频免费观看| 精品国产免费人成在线观看| 欧美精品vⅰdeose4hd| ww亚洲ww在线观看国产| 亚洲夂夂婷婷色拍ww47| 成人免费毛片高清视频| 日韩一二三四区| 亚洲v精品v日韩v欧美v专区| 不卡一区二区在线| 日韩视频一区二区三区| 亚洲大型综合色站| 色婷婷av一区二区三区软件| 久久久不卡网国产精品一区| 奇米色777欧美一区二区| 在线精品视频免费播放| 亚洲视频1区2区| 色综合久久中文综合久久牛| 国产喂奶挤奶一区二区三区| 免费成人在线观看| 在线播放亚洲一区| 视频一区免费在线观看| 在线观看欧美精品| 一区二区在线免费观看| 99re这里只有精品首页| 中文字幕av一区二区三区高 | 在线看不卡av| 一区二区三区不卡视频在线观看| 成人在线视频首页| 欧美韩日一区二区三区| 国产精品一区二区久激情瑜伽| 日韩免费一区二区三区在线播放| 日本在线不卡视频| 欧美变态凌虐bdsm| 国产美女视频一区| 国产日韩成人精品| a亚洲天堂av| 亚洲精品日韩综合观看成人91| 日本电影亚洲天堂一区| 亚洲蜜桃精久久久久久久| 日本久久精品电影| 婷婷六月综合亚洲| 久久综合久久综合久久| 风间由美性色一区二区三区| 国产精品美女视频| 91天堂素人约啪| 亚洲一卡二卡三卡四卡五卡| 7777精品伊人久久久大香线蕉超级流畅| 天堂在线一区二区| 久久久久国色av免费看影院| 成人app软件下载大全免费| 亚洲精品视频在线观看网站| 欧美在线免费视屏| 免费观看一级欧美片| 久久久久久久久99精品| 成人动漫视频在线| 性做久久久久久| 国产亚洲综合色| 在线观看免费亚洲| 久久电影网站中文字幕| 1024成人网色www| 欧美丰满嫩嫩电影| 国产白丝精品91爽爽久久| 亚洲精品午夜久久久| 91麻豆精品国产91久久久| 成人午夜激情影院| 亚洲第一福利一区| 亚洲国产精品ⅴa在线观看| 欧美在线小视频| 国产麻豆视频精品| 亚洲午夜久久久久久久久电影网 | 国产精品美女久久久久aⅴ国产馆| 色综合婷婷久久| 精品亚洲成a人在线观看| 亚洲欧洲日韩av| 26uuu精品一区二区| 99久久99久久久精品齐齐| 99热精品国产| 日日夜夜一区二区| 亚洲男人的天堂网| 国产午夜亚洲精品午夜鲁丝片| 欧美日韩一区成人| 成人精品在线视频观看| 奇米色一区二区| 亚洲国产精品久久人人爱| 国产欧美精品区一区二区三区| 日韩一区二区三区四区五区六区 | 制服丝袜中文字幕一区| 成人免费精品视频| 国产露脸91国语对白| 日韩vs国产vs欧美| 亚洲成人激情综合网| 亚洲欧洲综合另类| 欧美韩日一区二区三区| 精品欧美黑人一区二区三区| 在线成人午夜影院| 欧美在线影院一区二区| 91丨porny丨国产入口| 国产美女久久久久| 精品午夜久久福利影院| 奇米777欧美一区二区| 午夜伦欧美伦电影理论片| 日韩一区欧美小说| 亚洲欧洲精品天堂一级| 久久亚洲精品小早川怜子| 欧美一区二区精品在线| 欧美日韩在线三区| 欧美日韩成人高清| 欧美一区二区精品在线| 欧美精品v日韩精品v韩国精品v| 欧美色图12p| 欧美顶级少妇做爰| 这里只有精品视频在线观看| 欧美日韩精品欧美日韩精品| 91福利精品第一导航| 欧美性xxxxxx少妇| 欧美日韩成人在线一区| 欧美美女一区二区三区| 日韩三级在线观看| 精品99久久久久久| 国产欧美日韩激情| 国产精品成人免费精品自在线观看| 久久久久国色av免费看影院| 久久久久国产精品人| 日本一区二区不卡视频| 亚洲欧美视频一区| 亚洲一区二区美女| 日韩国产成人精品| 国产精品一卡二卡| gogo大胆日本视频一区| 欧美午夜精品久久久久久孕妇| 欧美日韩一级视频| 欧美mv和日韩mv的网站| 国产色综合久久| 一区二区三区波多野结衣在线观看| 亚洲综合激情网| 久久精品久久99精品久久| 春色校园综合激情亚洲| 色悠久久久久综合欧美99| 制服丝袜成人动漫| 欧美激情一区在线观看| 亚洲综合一区在线| 久久精品免费看| 成人一区二区三区中文字幕| 欧美午夜精品电影| 亚洲精品在线三区| 亚洲一线二线三线久久久| 久久精品国产77777蜜臀| 成人精品国产一区二区4080| 欧美色图片你懂的| 亚洲午夜电影在线观看| 美女在线一区二区| 99re亚洲国产精品| 日韩欧美视频一区| 日韩毛片在线免费观看| 免费精品视频在线| 日本精品视频一区二区| 久久欧美一区二区| 亚洲国产一区二区视频| 国产成人亚洲综合a∨婷婷 | 99免费精品在线| 日韩手机在线导航| 亚洲在线视频免费观看| 国产精品456| 欧美日韩免费不卡视频一区二区三区| 久久久久久一二三区| 婷婷六月综合网| 91麻豆蜜桃一区二区三区| 久久久不卡网国产精品二区| 性做久久久久久久久| 91视频www| 国产视频一区在线观看| 日本成人在线不卡视频| 在线观看欧美日本| 最新成人av在线| 粉嫩久久99精品久久久久久夜| 日韩午夜精品电影| 午夜精品免费在线| 一本到高清视频免费精品| 久久久亚洲国产美女国产盗摄| 免费成人在线播放| 在线不卡中文字幕| 视频在线观看一区| 欧美日韩二区三区| 亚洲综合男人的天堂| 91免费版pro下载短视频| 国产性做久久久久久| 国产麻豆午夜三级精品| 欧美成人激情免费网| 蜜桃视频在线一区| 91精品国产综合久久婷婷香蕉| 亚洲一区在线观看视频| 欧美最猛黑人xxxxx猛交| 亚洲激情图片小说视频| 色噜噜狠狠色综合欧洲selulu| 国产精品卡一卡二卡三| 99re免费视频精品全部| 中文字幕久久午夜不卡| 99re成人精品视频| 亚洲欧美日本韩国| 欧美日韩精品福利|