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

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

?? hostap_plx.c

?? IEEE 802.11a/b/g linux2.4/2.6 驅(qū)動(dòng)程序源代碼
?? 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/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 ={

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人三级电影在线| 日韩欧美成人一区二区| 午夜欧美电影在线观看| 欧美成人a∨高清免费观看| 免费日本视频一区| 国产亚洲精久久久久久| 91精品1区2区| 极品销魂美女一区二区三区| 日本一区二区三区四区在线视频 | 91久久国产最好的精华液| 午夜视黄欧洲亚洲| 国产女同互慰高潮91漫画| 欧美视频在线播放| 国内成人精品2018免费看| 亚洲欧美国产高清| 欧美一区二区在线播放| 成人黄色电影在线| 久久国内精品自在自线400部| 国产欧美日韩卡一| 91精品在线一区二区| 91麻豆成人久久精品二区三区| 麻豆中文一区二区| 亚洲mv在线观看| 亚洲国产精品影院| 亚洲在线成人精品| 亚洲乱码中文字幕综合| 国产精品久久综合| 亚洲国产岛国毛片在线| 久久久亚洲精品一区二区三区 | 日韩欧美成人一区二区| 欧美日韩一区久久| 欧美在线看片a免费观看| 99re成人精品视频| 风间由美一区二区三区在线观看| 国产九色精品成人porny| 麻豆高清免费国产一区| 秋霞影院一区二区| 裸体在线国模精品偷拍| 麻豆精品视频在线观看视频| 亚洲成人免费在线| 偷拍日韩校园综合在线| 亚洲18色成人| 亚洲bt欧美bt精品| 日韩高清不卡一区二区| 婷婷成人综合网| 久久精品国产99久久6| 日本欧美韩国一区三区| 全国精品久久少妇| 国产一区二区在线观看视频| 国产精品亚洲一区二区三区妖精 | 久久精品99国产国产精| 精品一区二区av| 国产一区在线精品| 成人激情黄色小说| av电影在线观看不卡| 欧美中文字幕久久| 欧美军同video69gay| 日韩女同互慰一区二区| 久久久久久久性| 亚洲欧洲日韩一区二区三区| 亚洲美女淫视频| 天天操天天干天天综合网| 久久国产免费看| 成人小视频免费在线观看| 99久久国产综合精品色伊| 色婷婷久久久久swag精品| 欧美电影一区二区| 精品国产a毛片| 国产精品毛片大码女人| 亚洲国产aⅴ天堂久久| 狠狠色综合色综合网络| aaa欧美日韩| 91精品国产91综合久久蜜臀| 亚洲精品一区二区三区影院| 国产精品伦理在线| 性感美女久久精品| 国产美女精品在线| 久久久噜噜噜久久中文字幕色伊伊| 日本成人在线电影网| 国产中文字幕一区| 91视频在线观看免费| 91精品婷婷国产综合久久| 久久久午夜电影| 亚洲国产精品天堂| 国产99精品视频| 欧美日韩国产精选| 国产精品视频线看| 午夜激情综合网| 成人一区二区三区视频 | 精品国产伦一区二区三区观看体验| 欧美国产欧美综合| 天堂一区二区在线免费观看| 国产成人精品综合在线观看| 欧美日本国产一区| 中文字幕免费不卡| 六月丁香综合在线视频| 一本大道久久a久久精品综合| 日韩精品中文字幕一区二区三区 | 91精品国产91综合久久蜜臀| 日本一区二区电影| 日韩av电影免费观看高清完整版在线观看| 国产精品亚洲一区二区三区妖精 | 欧美日本一区二区三区| 欧美国产综合色视频| 欧美aaaaaa午夜精品| 91国偷自产一区二区使用方法| 久久久久久久免费视频了| 天堂在线亚洲视频| 在线观看免费亚洲| 国产精品高潮呻吟| 国产伦精品一区二区三区免费迷 | 亚洲精品免费一二三区| 国产精品影视天天线| 在线电影欧美成精品| 一区二区久久久| 北条麻妃国产九九精品视频| 久久久久久久精| 韩国视频一区二区| 欧美一区日本一区韩国一区| 亚洲小说欧美激情另类| 色婷婷综合在线| 日韩毛片精品高清免费| 白白色 亚洲乱淫| 日本一区二区成人| 国产91丝袜在线18| 中文字幕免费不卡| 国产mv日韩mv欧美| 国产亚洲成av人在线观看导航 | 日韩电影在线免费看| 欧美系列日韩一区| 亚洲国产综合在线| 欧美日韩精品电影| 亚洲高清免费观看| 精品视频123区在线观看| 亚洲综合色视频| 欧美视频在线一区| 亚州成人在线电影| 欧美一级二级在线观看| 日本美女一区二区| 国产精品久久久久久久久免费相片 | 欧美日韩亚洲丝袜制服| 亚洲妇女屁股眼交7| 精品视频一区 二区 三区| 亚洲成a天堂v人片| 欧美一区二区成人6969| 麻豆国产精品官网| 国产亚洲欧美一级| 91在线云播放| 亚洲成av人片观看| 日韩欧美国产电影| 国产一区免费电影| 国产精品福利影院| 91精品福利视频| 午夜国产不卡在线观看视频| 欧美电影一区二区| 国产一区二区三区蝌蚪| 国产精品视频第一区| 91免费国产在线| 亚洲国产精品尤物yw在线观看| 欧美久久久一区| 国产综合色视频| 中文字幕中文字幕一区二区 | 欧美日韩一级黄| 久久国产精品99久久久久久老狼| 2023国产一二三区日本精品2022| 国产成人免费高清| 亚洲高清一区二区三区| 日韩欧美激情一区| 99久久精品国产精品久久| 亚洲成人三级小说| 久久久精品tv| 欧美日韩一区二区欧美激情| 老司机免费视频一区二区| 国产精品久久久久一区| 欧美乱妇一区二区三区不卡视频 | 国产欧美日韩中文久久| 99re6这里只有精品视频在线观看| 亚洲欧美激情视频在线观看一区二区三区 | 欧美欧美午夜aⅴ在线观看| 国产一区二区不卡| 亚洲国产精品一区二区久久| 亚洲精品在线观看视频| 91视频在线看| 国产一区二区三区高清播放| 亚洲精品日产精品乱码不卡| 日韩一区二区三区免费观看 | 欧美一区二区三区的| 波波电影院一区二区三区| 日本特黄久久久高潮| 中文字幕亚洲区| 日韩欧美一区二区不卡| 91猫先生在线| 国产高清精品久久久久| 香蕉加勒比综合久久| 中文字幕一区二区三| 精品日本一线二线三线不卡| 欧美专区在线观看一区| 波多野结衣中文字幕一区| 免费观看在线综合| 亚洲一区自拍偷拍|