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

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

?? osapi_wince.h

?? WLAN在AR6000程序中的驅(qū)動(dòng)代碼
?? H
字號(hào):
//------------------------------------------------------------------------------
// <copyright file="osapi_wince.h" company="Atheros">
//    Copyright (c) 2006 Microsoft Corporation.  All rights reserved.
//    Copyright (c) 2006 Atheros Corporation.  All rights reserved.
//
//    The use and distribution terms for this software are covered by the
//    Microsoft Limited Permissive License (Ms-LPL) 
//    http://www.microsoft.com/resources/sharedsource/licensingbasics/limitedpermissivelicense.mspx 
//    which can be found in the file MS-LPL.txt at the root of this distribution.
//    By using this software in any fashion, you are agreeing to be bound by
//    the terms of this license.
//
//    You must not remove this notice, or any other, from this software.
// </copyright>
// 
// <summary>
//    Windows CE Wifi Driver for AR-6000
// </summary>
//------------------------------------------------------------------------------
//==============================================================================
// This file contains the definitions of the basic atheros apis for wince 
//
// Author(s): ="Atheros"
//==============================================================================


#ifndef _OSAPI_WINCE_H_
#define _OSAPI_WINCE_H_

#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

#include <windows.h>
#include <winsock2.h>
#include <mmsystem.h>
#ifdef DEBUG
#include <dbgapi.h>
#endif
#include <winbase.h>
#include "athdefs.h"
#include "athtypes.h"

/* 
 * Atomic operations
 */

typedef unsigned int A_ATOMIC_T;

#define A_ATOMIC_SET(counter, val) (*counter)=val
#define A_ATOMIC_INC(counter) InterlockedIncrement(counter)
#define A_ATOMIC_DEC(counter) InterlockedDecrement(counter)
#define A_ATOMIC_DEC_AND_TEST(counter) (!(InterlockedDecrement(counter)))
#define A_ATOMIC_CNT(counter) (*counter)

/* 
 * Mutual Exclusion 
 */
typedef CRITICAL_SECTION A_MUTEX_T;

#define A_MUTEX_INIT(_nt)      InitializeCriticalSection(_nt)
#define A_MUTEX_DESTROY(_nt)   DeleteCriticalSection(_nt)
#define A_MUTEX_LOCK(_nt)      EnterCriticalSection(_nt)
#define A_MUTEX_UNLOCK(_nt)    LeaveCriticalSection(_nt)
#define	A_MUTEX_LOCK_BH(_nt)   EnterCriticalSection(_nt)
#define	A_MUTEX_UNLOCK_BH(_nt) LeaveCriticalSection(_nt)
#define	A_MUTEX_LOCK_ASSERT(_nt)

#define A_MEMZERO(addr,len) memset(addr, 0, len)
#define A_MEMCPY(dst, src, len) memcpy(dst, src, len)
#define A_MEMCMP(dst, src, len) memcmp(dst, src, len)

/*
 * Malloc macros
 */

#define A_MALLOC(size) malloc(size)
#define A_FREE(addr) free(addr)

/*
 * Endian Macros
 */
#define A_BE2CPU8(x)       (x)
#define A_BE2CPU16(x)      ntohs(x)
#define A_BE2CPU32(x)      ntohl(x)

#define A_LE2CPU8(x)       (x)
#define A_LE2CPU16(x)      (x)
#define A_LE2CPU32(x)      (x)

#define A_CPU2BE8(x)       (x)
#define A_CPU2BE16(x)      htons(x)
#define A_CPU2BE32(x)      htonl(x)

/*
 * Timer Functions
 */
#define A_MDELAY(msecs)     Sleep(msecs)

typedef void (*A_TIMER_FN) (PVOID arg);

typedef struct a_timer_t {
    MMRESULT    timerId;
	A_TIMER_FN  callback;
	PVOID       arg;
} A_TIMER;


extern A_STATUS
ar6000_init_timer(A_TIMER *pTimer, A_TIMER_FN callback, PVOID arg);

extern void
ar6000_set_timer(A_TIMER *pTimer, unsigned long timeout, A_INT32 periodic);

extern A_STATUS
ar6000_cancel_timer(A_TIMER *pTimer); 

extern A_STATUS
ar6000_delete_timer(A_TIMER *pTimer); 

extern A_UINT32
ar6000_ms_tickget();

#define A_INIT_TIMER ar6000_init_timer 

#define A_TIMEOUT_MS ar6000_set_timer

#define A_UNTIMEOUT  ar6000_cancel_timer

#define A_DELETE_TIMER ar6000_delete_timer

#define A_MS_TICKGET  ar6000_ms_tickget

/*
 * Wait Queue related functions
 */
typedef HANDLE A_WAITQUEUE_HEAD;

#define A_INIT_WAITQUEUE_HEAD(pHandle)  do { \
    *pHandle = CreateEvent(NULL,FALSE,FALSE,NULL); \
} while (0)

#define A_WAIT_EVENT_INTERRUPTIBLE_TIMEOUT(pHandle, condition, timeout) do { \
    if (!(condition)) { \
        WaitForSingleObject(*pHandle,timeout); \
    } \
} while (0)

#define A_WAKE_UP(pHandle) SetEvent(*pHandle)

#define A_DELETE_WAITQUEUE_HEAD(pHandle)  CloseHandle(*pHandle)

#define A_RESET_WAIT_EVENT(pHandle) ResetEvent(*pHandle)
/*
 * Debug related macros
 */

#ifdef DEBUG
#define WINCEDEBUG DEBUGZONE
#else
#define WINCEDEBUG
#endif

#define	ATH_LOG_ERR     WINCEDEBUG(0)
#define ATH_LOG_WARN    WINCEDEBUG(1)
#define ATH_LOG_INF     WINCEDEBUG(2)
#define ATH_LOG_TRC     WINCEDEBUG(3)
#define ATH_LOG_SYNC    WINCEDEBUG(4)
#define ATH_LOG_SEND    WINCEDEBUG(5)
#define ATH_LOG_RECV    WINCEDEBUG(6)
#define ATH_LOG_DUMP    WINCEDEBUG(7)
#define	ATH_DEBUG_BMI   WINCEDEBUG(8)
#define	ATH_DEBUG_WMI   WINCEDEBUG(9)
#define	ATH_DEBUG_HIF   WINCEDEBUG(10)
#define	ATH_DEBUG_HTC   WINCEDEBUG(11)
#define	ATH_DEBUG_WLAN  WINCEDEBUG(12)
#define	ATH_DEBUG_NDIS   WINCEDEBUG(13)

#ifdef DEBUG

extern void
dumpBytes(A_UCHAR *buffer, A_UINT16 length);

#define HTC_DEBUG_PRINTBUF(buffer, length) do {   \
    if (ATH_LOG_DUMP) {             \
        dumpBytes(buffer, length);               \
    }                                            \
} while(0)

void
DbgPrintf(A_INT32 flags, A_CHAR *format, ...);

#define BMI_DEBUG_PRINTF if (ATH_DEBUG_BMI) DbgPrintf
#define WMI_DEBUG_PRINTF if (ATH_DEBUG_WMI) DbgPrintf
#define HIF_DEBUG_PRINTF if (ATH_DEBUG_HIF) DbgPrintf
#define HTC_DEBUG_PRINTF if (ATH_DEBUG_HTC) DbgPrintf
#define WLAN_DEBUG_PRINTF if (ATH_DEBUG_WLAN) DbgPrintf
#define NDIS_DEBUG_PRINTF if (ATH_DEBUG_NDIS) DbgPrintf


#define AR_DEBUG_ASSERT(test) do {               \
    if (!(test)) {                               \
        DbgPrintf(ATH_LOG_ERR, "Debug Assert Caught, File %s, Line: %d, Test:%s \n",__FILE__, __LINE__,#test);         \
    }                                            \
} while(0)  
#else

#define HTC_DEBUG_PRINTBUF(buffer, length)
#define BMI_DEBUG_PRINTF
#define WMI_DEBUG_PRINTF
#define HIF_DEBUG_PRINTF
#define HTC_DEBUG_PRINTF
#define WLAN_DEBUG_PRINTF
#define NDIS_DEBUG_PRINTF
#define AR_DEBUG_ASSERT(test)

#endif // DEBUG

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* _OSAPI_WINCE_H_ */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久噜噜噜久久中文字幕色伊伊| 日韩精品在线一区二区| 奇米色一区二区三区四区| 久久影院午夜论| 欧美视频一区二区在线观看| 国内精品免费**视频| 一区二区理论电影在线观看| 久久亚洲综合色一区二区三区| 在线中文字幕不卡| 成人永久免费视频| 美女脱光内衣内裤视频久久网站| 亚洲精品写真福利| 中文字幕欧美国产| 精品久久久久久亚洲综合网| 欧美午夜精品电影| 色婷婷av一区| av电影在线观看一区| 国产在线精品一区二区不卡了| 亚洲午夜电影网| ...av二区三区久久精品| 久久天堂av综合合色蜜桃网| 91.麻豆视频| 欧美午夜精品久久久| 97精品超碰一区二区三区| 国产一区二区久久| 久久成人免费网站| 青青草精品视频| 天天综合天天综合色| 亚洲激情六月丁香| 亚洲精选一二三| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美日韩视频一区二区| 在线视频综合导航| 91免费版pro下载短视频| www.欧美.com| 欧美精品日韩精品| 337p亚洲精品色噜噜噜| 欧美精三区欧美精三区| 欧美日韩一区二区三区免费看| 99久久精品免费观看| 懂色av一区二区在线播放| 黄一区二区三区| 九色porny丨国产精品| 奇米影视一区二区三区小说| 日本在线观看不卡视频| 日韩电影在线一区二区三区| 日韩精品91亚洲二区在线观看| 亚洲成av人**亚洲成av**| 亚洲与欧洲av电影| 亚洲成人动漫精品| 日韩黄色片在线观看| 免费成人在线视频观看| 国产一区二区三区黄视频 | 色吧成人激情小说| 色婷婷久久99综合精品jk白丝 | 成人激情午夜影院| 91最新地址在线播放| 色综合色综合色综合 | 成人18视频日本| 在线观看一区二区精品视频| 欧美日韩小视频| 宅男在线国产精品| 久久美女艺术照精彩视频福利播放 | 成人视屏免费看| 成人中文字幕在线| 日本精品一区二区三区四区的功能| 91麻豆蜜桃一区二区三区| 欧美日韩在线不卡| 欧美一区二区免费观在线| 久久综合色鬼综合色| 国产精品传媒视频| 偷窥少妇高潮呻吟av久久免费| 日韩不卡一区二区| 国产成都精品91一区二区三| 91黄色激情网站| 日韩欧美一区二区视频| 欧美极品aⅴ影院| 午夜亚洲福利老司机| 蜜桃一区二区三区在线| 国产成人在线色| 在线观看国产一区二区| 欧美日韩精品一区二区天天拍小说 | 一本久道久久综合中文字幕 | 欧美电影一区二区| 国产日韩影视精品| 亚洲国产精品欧美一二99| 国产福利一区在线| 欧美二区三区91| 国产精品天美传媒| 日本不卡中文字幕| 成人国产精品免费网站| 这里只有精品99re| 国产精品进线69影院| 另类小说色综合网站| 91小宝寻花一区二区三区| 日韩一卡二卡三卡四卡| 亚洲日本一区二区| 黑人巨大精品欧美黑白配亚洲| 日本高清无吗v一区| 欧美精品一区二区久久久| 一区二区三区日韩精品视频| 国产自产2019最新不卡| 欧美在线三级电影| 国产色产综合产在线视频| 丝瓜av网站精品一区二区| 国产精品正在播放| 日韩三级高清在线| 亚洲综合男人的天堂| 国产在线精品免费| 欧美日韩国产高清一区| 亚洲同性gay激情无套| 韩国在线一区二区| 欧美伊人久久久久久久久影院 | 91搞黄在线观看| 国产精品久久久久久久第一福利| 精品一二三四区| 91精品国产综合久久久蜜臀图片| 亚洲精品高清视频在线观看| 国产麻豆9l精品三级站| 日韩一区二区电影在线| 日韩精品一级二级| 91福利在线观看| 亚洲精品视频在线| 成人国产精品免费观看| 中文字幕av在线一区二区三区| 狠狠网亚洲精品| 精品国产精品网麻豆系列| 久久精品99国产精品日本| 欧美军同video69gay| 亚洲一区二区欧美| 色av成人天堂桃色av| 一区二区三区美女视频| 91福利社在线观看| 亚洲午夜久久久久中文字幕久| 色婷婷国产精品综合在线观看| 亚洲免费在线电影| 色噜噜久久综合| 亚洲欧美激情一区二区| 在线一区二区三区四区| 亚洲电影在线播放| 欧美日韩和欧美的一区二区| 午夜日韩在线观看| 91精品欧美一区二区三区综合在| 五月天视频一区| 日韩精品一区二区三区在线观看| 免费看欧美美女黄的网站| 精品日韩一区二区三区| 国产大陆a不卡| 中文字幕免费不卡在线| 一道本成人在线| 亚洲成人资源网| 91精品国模一区二区三区| 男人的天堂亚洲一区| 久久伊人蜜桃av一区二区| 波多野结衣视频一区| 亚洲一区av在线| 91精品欧美久久久久久动漫| 久久99久久久久久久久久久| 久久精品视频一区二区| 91啦中文在线观看| 午夜国产不卡在线观看视频| 欧美成人免费网站| 国产成人av电影在线播放| 一区二区三区色| 日韩一区二区三区视频在线| 色狠狠综合天天综合综合| 亚洲国产一区二区a毛片| 日韩欧美亚洲国产另类 | 精久久久久久久久久久| 亚洲国产精品av| 欧美日韩一二区| 国产麻豆一精品一av一免费 | 亚洲午夜久久久久久久久久久| 日韩欧美在线影院| av在线播放成人| 免费日本视频一区| 中文字幕欧美一| 91精品在线免费观看| 国产98色在线|日韩| 亚洲一区二区三区视频在线播放| 日韩一区二区三区观看| 99久久精品免费| 激情综合色综合久久| 亚洲综合一二区| 欧美激情中文字幕| 91精品国产综合久久香蕉的特点 | 色综合视频在线观看| 另类欧美日韩国产在线| 亚洲精品国产视频| 精品日韩99亚洲| 在线观看成人小视频| 国产美女一区二区三区| 亚洲不卡在线观看| 国产精品人人做人人爽人人添| 欧美肥大bbwbbw高潮| 99久久精品国产一区| 久久国产剧场电影| 午夜精品在线视频一区| 日韩一区中文字幕| 久久综合久久综合久久综合|