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

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

?? mld.h

?? Atheros AP Test with Agilent N4010A source code
?? H
字號(hào):
/* mld.h - macros and definitions for sim environment hardware access */

/* Copyright (c) 2001 Atheros Communications, Inc., All Rights Reserved */

#ident  "ACI $Id: //depot/sw/branches/ART_V53_dragon/sw/src/dk/mdk/devmld/mld.h#1 $, $Header: //depot/sw/branches/ART_V53_dragon/sw/src/dk/mdk/devmld/mld.h#1 $"

#ifndef __INCmldh
#define __INCmldh
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

/* includes */
#include "wlantype.h"
#include "pci.h"
#ifndef __ATH_DJGPPDOS__
#include "windrvr.h"
#endif

/* defines */
#define INTERRUPT_F2    1
#define TIMEOUT         4
#define ISR_INTERRUPT   0x10
#define DEFAULT_TIMEOUT 0xff

#define A_MEM_ZERO(addr, len) memset(addr, 0, len)

#define F2_VENDOR_ID			0x168C		/* vendor ID for our device */
#define MAX_REG_OFFSET			0xfffc	    /* maximum platform register offset */
#define MAX_CFG_OFFSET          256         /* maximum locations for PCI config space per device */
#define MAX_MEMREAD_BYTES       2048        /* maximum of 2k location per OSmemRead action */

/* PCI Config space mapping */
#define F2_PCI_CMD				0x04		/* address of F2 PCI config command reg */
#define F2_PCI_CACHELINESIZE    0x0C        /* address of F2 PCI cache line size value */
#define F2_PCI_LATENCYTIMER     0x0D        /* address of F2 PCI Latency Timer value */
#define F2_PCI_BAR				0x10		/* address of F2 PCI config BAR register */
#define F2_PCI_INTLINE          0x3C        /* address of F2 PCI Interrupt Line reg */
/* PCI Config space bitmaps */
#define MEM_ACCESS_ENABLE		0x002       /* bit mask to enable mem access for PCI */
#define MASTER_ENABLE           0x004       /* bit mask to enable bus mastering for PCI */
#define MEM_WRITE_INVALIDATE    0x010       /* bit mask to enable write and invalidate combos for PCI */
#define SYSTEMERROR_ENABLE      0x100		/* bit mask to enable system error */

#define NUM_DESCS				512		    /* number of descriptors - must be multiple of 8 */
#define DESC_SIZE				48			/* #### may need to change this */
#define SIZE_DESC_MEM			(NUM_DESCS*DESC_SIZE)   /* how much memory to allocate */
#define NUM_MAP_BYTES			(NUM_DESCS/8)			  /* how many bytes to track desc allocation */
#define BUFF_BLOCK_SIZE			0x100  /* size of a buffer block */
#define NUM_BUFF_BLOCKS			0x1000 
#define NUM_BUFF_MAP_BYTES		(NUM_BUFF_BLOCKS/8)

#define FCS_FIELD				4		   /* size of FCS */				
#define WEP_IV_FIELD			4		   /* wep IV field size */
#define WEP_ICV_FIELD			4		   /* wep ICV field size */
#define WEP_FIELDS	(WEP_IV_FIELD + WEP_ICV_FIELD) /* total size of wep fields needed */

/* typedefs */

/* Mapping back to original definitions by Fiona. They
 * should be phased out when convenient.
 */
#define STATUS				A_STATUS
#define	OK					A_OK
#define DEVICE_NOT_FOUND	A_DEVICE_NOT_FOUND
#define	NO_MEMORY			A_NO_MEMORY
#define	MEMORY_NOT_AVAIL	A_MEMORY_NOT_AVAIL
#define NO_FREE_DESC		A_NO_FREE_DESC
#define	BAD_ADDRESS			A_BAD_ADDRESS
#define	WIN_DRIVER_ERROR	A_WIN_DRIVER_ERROR
#define REGS_NOT_MAPPED		A_REGS_NOT_MAPPED

typedef struct eHandle {
    A_UINT16 eventID;
    A_UINT16 f2Handle;
} EVT_HANDLE;

typedef struct eventStruct {
    struct eventStruct  *pNext;         // pointer to next event
    struct eventStruct  *pLast;         // backward pointer to pervious event
    EVT_HANDLE          eventHandle;
    A_UINT32            type;
    A_UINT32            persistent;
    A_UINT32            param1;
    A_UINT32            param2;
    A_UINT32            param3;
    A_UINT32            result;
	A_UINT32			additionalParams[5];    
} EVENT_STRUCT;

typedef struct eventQueue {
    EVENT_STRUCT    *pHead;     // pointer to first event in queue
    EVENT_STRUCT    *pTail;     // pointer to last event in queue
    HANDLE          queueMutex; // mutex to make queue access mutually exclusive
    A_UINT16        queueSize;  // count of how many items are in queue
    A_BOOL          queueScan;  // set to true if in middle of a queue scan
} EVENT_QUEUE;

#define WLAN_MAX_DEV	8		/* Number of maximum supported devices */

//structure to share info with the kernel plugin
typedef struct dkKernelInfo
{
	A_BOOL	volatile	anyEvents;		/* set to true by plugin if it has any events */
	A_UINT32	regMemoryTrns;
	A_UINT32	dmaMemoryTrns;
	A_UINT32	f2MapAddress;	    /* address of where f2 registers are mapped */
	A_UINT32	G_memoryRange;
	A_BOOL	volatile	rxOverrun	;	/* set by kernel plugin if it detects a receive overrun */
	A_UINT32		devMapAddress; // address of where f2 registers are mapped 
} DK_KERNEL_INFO;

/* holds all the dk specific information within DEV_INFO structure */
typedef struct dkDevInfo {
	A_UINT32	f2MapAddress;	    /* address of where f2 registers are mapped */
	A_UINT16	f2Mapped;		    /* true if the f2 registers are mapped */
	A_UINT16	devIndex;	/* used to track which F2 within system this is */
	A_UINT32	memSize;
	A_UINT32	dwBus;		/* hold bus slot and function info about device */
	A_UINT32	dwSlot;
	A_UINT32	dwFunction;	
	A_BOOL	    haveEvent;   // set to true when we have an event created
#ifndef __ATH_DJGPPDOS__
	WD_CARD_REGISTER G_cardReg; /* holds resource info about pci card */
	WD_CARD_REGISTER pluginMemReg; /* holds info about the memory allocated in plugin */
	A_UINT32 G_baseMemory;
	WD_DMA	dma;				//holds info  about memory for transfers
	A_UINT32 G_resMemory;
	A_UINT32 G_intIndex;
	WD_INTERRUPT gIntrp;
	A_UINT32 volatile intEnabled;

	WD_KERNEL_PLUGIN kernelPlugIn; //handle for kernel plugin
	WD_DMA	kerplugDma;			   //handle to shared mem between plugin and client
	WD_CARD_REGISTER kerplugCardReg;
#endif

/* shared info by kernel plugin */
	A_BOOL	volatile	anyEvents;		/* set to true by plugin if it has any events */
	A_UINT32	regMemoryTrns;
	A_UINT32	dmaMemoryTrns;
	A_UINT32	G_memoryRange;
	A_BOOL	volatile	rxOverrun;	/* set by kernel plugin if it detects a receive overrun */
   	EVENT_QUEUE *IsrEventQ;
	
} DK_DEV_INFO;

/* WLAN_DRIVER_INFO structure will hold the driver global information.
 *
 */
typedef struct mdk_wlanDrvInfo {
	A_UINT32           devCount;                     /* No. of currently connected devices */
	struct mdk_wlanDevInfo *pDevInfoArray[WLAN_MAX_DEV]; /* Array of devinfo pointers */
	struct eventQueue  *triggeredQ;	                 /* pointer to q of triggered events */
} MDK_WLAN_DRV_INFO;

/*
 * MDK_WLAN_DEV_INFO structure will hold all kinds of device related information.
 * It will hold OS specific information about the device and a device number.
 * Most of the code doesn't need to know what's inside that structure.
 * The fields are very likely to change.
 */

typedef	struct	mdk_wlanDevInfo
{
	DK_DEV_INFO *   	pdkInfo;            /* pointer to structure containing info for dk */
	PCI_CARD_INFO		pciInfo;            /* Struct to hold PCI related information */
	A_UINT32	        devno;			    /* Device number. */
	void	            *pDescMemory;       /* pointer to start of descriptor memory block */
	A_UINT32	        descPhysAddr;       /* physical address of descriptor memory block */
	A_UINT32 volatile	intEnabled;
} MDK_WLAN_DEV_INFO;

// SOCK_INFO contains the socket information for commuincating with AP

typedef struct artSockInfo {
    A_CHAR 	 hostname[128];
    A_INT32  port_num;
    A_UINT32 ip_addr;
    A_INT32  sockfd;
} ART_SOCK_INFO;

/////////////////////////////////////
// function declarations

A_UINT32 hwMemRead32(A_UINT16 devIndex, A_UINT32 memAddress);
void hwMemWrite32(A_UINT16 devIndex, A_UINT32 memAddress, A_UINT32 writeValue);
A_UINT32 hwCfgRead32(A_UINT16 devIndex, A_UINT32 address);
void hwCfgWrite32(A_UINT16 devIndex, A_UINT32 address, A_UINT32 writeValue);
A_INT16 hwMemWriteBlock(A_UINT16 devIndex,A_UCHAR *pBuffer, A_UINT32 length, A_UINT32 *pPhysAddr);
A_INT16 hwMemReadBlock(A_UINT16 devIndex,A_UCHAR *pBuffer, A_UINT32 physAddr, A_UINT32 length);
EVENT_STRUCT *popEvent(EVENT_QUEUE *pQueue);
A_UINT16 checkForEvents(EVENT_QUEUE *pQueue);
A_INT16 hwCreateEvent(A_UINT16 devIndex, A_UINT32 type, A_UINT32 persistent, A_UINT32 param1, A_UINT32 param2,
    A_UINT32 param3, EVT_HANDLE eventHandle);
A_STATUS envInit(A_BOOL debugMode,A_BOOL openDriver);
void envCleanup(A_BOOL closeDriver);
A_STATUS deviceInit(A_UINT16 devIndex);
void deviceCleanup(A_UINT16 devIndex);

extern	A_STATUS osThreadCreate(void threadFunc(void * param), A_UINT32 value, MDK_WLAN_DEV_INFO * pdevInfo);
extern void milliSleep(A_UINT32 millitime);

#define milliTime() (GetTickCount())

A_UINT16 uilog(char *, A_BOOL);
void uilogClose(void);
void dk_quiet(A_UINT16 Mode);
A_INT32 uiPrintf(const char * format, ...);
A_INT32 q_uiPrintf(const char * format, ...);
void configPrint(A_BOOL flag);

#ifndef A_ASSERT
  #include <assert.h>
  #define A_ASSERT assert
#endif
#define A_MALLOC(a)	(malloc(a))
#define A_FREE(a)	(free(a))

// Global Externs
extern MDK_WLAN_DRV_INFO	globDrvInfo;	            /* Global driver data structure */

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* __INCmldh */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产精品亚洲红杏| 亚洲v日本v欧美v久久精品| 91麻豆福利精品推荐| 国产麻豆精品在线| 免费看日韩精品| 久久国产尿小便嘘嘘| 亚洲国产欧美在线人成| 爽好久久久欧美精品| 精品sm捆绑视频| 91精品欧美综合在线观看最新| 在线观看日韩一区| 在线亚洲精品福利网址导航| 在线综合+亚洲+欧美中文字幕| 日韩免费电影一区| 亚洲一区视频在线观看视频| 久久久国产精品麻豆| 久久久久久9999| 日韩亚洲欧美成人一区| 粉嫩av一区二区三区| 欧美性感一类影片在线播放| 久久综合成人精品亚洲另类欧美 | av激情亚洲男人天堂| 在线观看亚洲精品| 欧美激情中文字幕一区二区| 亚洲中国最大av网站| 国产一区二区在线看| av在线免费不卡| 久久久五月婷婷| 蜜臀av国产精品久久久久| 91麻豆123| 久久精品在线观看| 丝袜美腿成人在线| 色婷婷久久综合| 久久久久久久久久久黄色| 日本不卡视频在线| 欧美亚洲综合一区| 日韩理论片一区二区| 国产成人综合亚洲91猫咪| 91精品国产免费久久综合| 亚洲一区在线电影| 色综合久久精品| 国产精品理论片在线观看| 日韩av中文字幕一区二区| 欧美三级电影一区| 一区二区久久久久久| 99这里只有久久精品视频| 欧美国产日韩a欧美在线观看| 久草这里只有精品视频| 欧美精品 国产精品| 亚洲男女毛片无遮挡| 99久久精品国产导航| 中文字幕av一区二区三区| 狂野欧美性猛交blacked| 制服丝袜激情欧洲亚洲| 图片区小说区国产精品视频| 欧美日韩国产高清一区二区三区| 免费欧美在线视频| 欧美三级一区二区| 午夜精品久久一牛影视| 99re热视频这里只精品| 亚洲三级在线免费观看| 国产成人免费视频精品含羞草妖精| 欧美va在线播放| 亚洲狠狠爱一区二区三区| 精品视频一区 二区 三区| 亚洲国产日韩a在线播放| 欧美老肥妇做.爰bbww视频| 亚洲精品免费在线观看| 99re8在线精品视频免费播放| 亚洲欧洲日韩一区二区三区| 一本久久精品一区二区| 亚洲福利一二三区| 日韩一级完整毛片| 毛片av中文字幕一区二区| 精品久久久久一区二区国产| 国产精品1区2区3区在线观看| 精品盗摄一区二区三区| 成人综合在线观看| 亚洲一区二区三区激情| 一本大道av伊人久久综合| 国产精品视频观看| aaa亚洲精品| 亚洲欧美日韩中文字幕一区二区三区 | 色狠狠色噜噜噜综合网| 午夜欧美2019年伦理 | 国产v日产∨综合v精品视频| 国产精品视频看| 欧美日韩国产123区| 国产露脸91国语对白| 亚洲婷婷综合色高清在线| 制服丝袜亚洲网站| 国产成人精品免费看| 久久久国际精品| 欧美日韩精品电影| 免费一区二区视频| 18成人在线观看| 91精品国产综合久久久久久久久久| 韩国精品主播一区二区在线观看| 亚洲精品第1页| 精品电影一区二区| 欧美最猛性xxxxx直播| 国产黄色精品视频| 天堂一区二区在线| 久久久久亚洲综合| 一本色道久久加勒比精品| 久久国产精品无码网站| 亚洲精品一线二线三线| 国产精品一区二区三区乱码| 五月天精品一区二区三区| 国产精品久久久久一区二区三区 | 久久国产精品色| 亚洲精品国产第一综合99久久| 国产亚洲欧洲一区高清在线观看| 欧美午夜精品理论片a级按摩| 成人综合在线视频| 久久成人18免费观看| 亚洲国产成人av网| 欧美国产激情二区三区| 精品久久久久久久久久久久久久久| 一本色道久久综合精品竹菊| 国产伦精品一区二区三区免费 | 在线不卡一区二区| 成人午夜激情在线| 日韩精品一二三区| 国产精品国产三级国产aⅴ无密码| 欧美一级淫片007| 欧美日本乱大交xxxxx| 91麻豆免费在线观看| 国产精品自拍三区| 丝袜亚洲另类欧美综合| 亚洲色图清纯唯美| 国产视频一区二区在线| 欧美精品一区二| 欧美岛国在线观看| 欧美精品一区二| 日韩一级免费一区| 欧美一区二区视频观看视频| 色天使色偷偷av一区二区| 一本色道久久综合狠狠躁的推荐| 99精品视频一区| 91视频免费看| 色婷婷综合久久久久中文| av电影在线观看一区| 91猫先生在线| 欧美怡红院视频| 欧美久久久久久蜜桃| 欧美精品 国产精品| 日韩一区二区三区免费看 | 成人激情av网| av网站免费线看精品| 一本久道中文字幕精品亚洲嫩| 成人av免费在线| www.日韩大片| 视频在线观看一区二区三区| 亚洲欧洲成人av每日更新| 国产视频一区二区在线| 中文字幕中文乱码欧美一区二区| 日韩视频免费观看高清完整版| 7777精品伊人久久久大香线蕉超级流畅 | 国产精品乱码妇女bbbb| 欧美激情一区二区| 一区二区不卡在线播放| 天堂久久一区二区三区| 国产专区欧美精品| www.日韩精品| 欧美日韩三级一区二区| 日韩美女在线视频| 欧美国产欧美综合| 亚洲国产综合色| 蜜臀av一区二区在线免费观看 | 美女看a上一区| 精东粉嫩av免费一区二区三区| 国产精品自在欧美一区| 99精品国产91久久久久久| 欧美日韩一区久久| 国产婷婷色一区二区三区在线| 久久久久久久久蜜桃| 国产精品乱人伦一区二区| 亚洲一区二区三区小说| 亚洲乱码日产精品bd| 天天av天天翘天天综合网色鬼国产| 夜夜嗨av一区二区三区网页| 日韩av午夜在线观看| 麻豆专区一区二区三区四区五区| 成人app在线| 欧美成人性福生活免费看| 亚洲欧美日本韩国| 热久久免费视频| 色欧美日韩亚洲| 国产欧美日韩在线看| 一区二区三区在线视频免费观看| 老司机午夜精品99久久| 91国偷自产一区二区三区观看| 国产三区在线成人av| 日本不卡1234视频| 国产一区二区91| 93久久精品日日躁夜夜躁欧美| 国产亚洲自拍一区| 午夜精品aaa| 91成人在线免费观看|