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

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

?? wmicallback.cpp

?? WLAN在AR6000程序中的驅動代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	return;
}

extern "C" void
ar6000_bitrate_rx(
	void   *Context, 
	A_INT32 rateKbps)
{
    CAR6KMini *Adapter = (CAR6KMini *)Context;

	Adapter->WMIBitrateIndication(rateKbps);
}

extern "C" void
ar6000_channelList_rx(
	void     *Context, 
	A_INT8    numChan,
	A_UINT16 *chanList)
{
    CAR6KMini *Adapter = (CAR6KMini *)Context;

	Adapter->WMIChannelListIndication(chanList, numChan);
}

extern "C" void
ar6000_ready_event(
	void     *Context, 
	A_UINT8 *macAddr,
    A_UINT8 phyCap)
//
//  This function is called by WMI when the device sends
//  a WMI_READY packet. In addition to letting us know
//  that the device is ready to receive WMI requests,
//  it contains the MAC address of the device.
//
{
    CAR6KMini *Adapter = (CAR6KMini *)Context;

	Adapter->WMIReadyIndication(macAddr);
}

extern "C" A_UINT8
ar6000_iphdr_to_tos(A_UINT8 *pkt)
//
//  This function is called by WMI to extract the
//  type of service (TOS) field from an IP packet header.
//
{
	return 1;
}

extern "C" void
ar6000_connect_event(
	void     *Context,
	A_UINT16  channel,
	A_UINT8  *bssid,
	A_UINT16  listenInterval,
	A_UINT8   assocReqLen,
	A_UINT8   assocRespLen,
	A_UINT8  *assocInfo,
        A_UINT8   beaconIeLen)
//
//  This function is called by WMI after receiving a
//  WMI_CONNECT event packet from the device.
//
{
    CAR6KMini *Adapter = (CAR6KMini *)Context;

	NDIS_DEBUG_PRINTF(ATH_LOG_INF, "Connect EVENT from target\n");
	Adapter->WMIConnectIndication(channel, bssid, listenInterval, 
		                          assocReqLen, assocRespLen, 
                                          assocInfo, beaconIeLen);
}

extern "C" void
ar6000_disconnect_event(
	    void *Context,
        A_UINT8 reason,
        A_UINT8 *bssid, A_UINT8 assocRespLen,
        A_UINT8 *assocInfo)
//
//  This function is called by WMI after receiving a
//  WMI_DISCONNECT event packet from the device.
//
{
    CAR6KMini *Adapter = (CAR6KMini *)Context;

	NDIS_DEBUG_PRINTF(ATH_LOG_INF, "DisConnect EVENT from target\n");
	Adapter->WMIDisconnectIndication();
}

extern "C" A_STATUS
ar6000_control_tx(
	void     *Context,
	void     *osbuf, 
	int       endPt)
//
//  This function is called by WMI to send a control
//  packet to the device.
//
{
    CAR6KMini *Adapter = (CAR6KMini *)Context;

	return Adapter->WMISendControlPacket(osbuf, (HTC_ENDPOINT_ID)endPt);
}

extern "C" void
ar6000_dset_open_req(
    void *context,
    A_UINT32 id,
    A_UINT32 targHandle,
    A_UINT32 targReplyFn,
    A_UINT32 targReplyArg)
{
    CAR6KMini *Adapter = (CAR6KMini *)context;

    Adapter->WMIDsetOpenReq(id, targHandle, targReplyFn, targReplyArg);
}

extern "C" void
ar6000_dset_close(
    void *context,
    A_UINT32 access_cookie)
{
    return;
}

extern "C" void
ar6000_dset_data_req(
   void *context,
   A_UINT32 accessCookie,
   A_UINT32 offset,
   A_UINT32 length,
   A_UINT32 targBuf,
   A_UINT32 targReplyFn,
   A_UINT32 targReplyArg)
{
    CAR6KMini *Adapter = (CAR6KMini *)context;

    Adapter->WMIDsetDataReq(accessCookie, offset, length, targBuf, targReplyFn, targReplyArg);
}

extern "C" void
ar6000_scanComplete_event(
       void *context)
{
    return;
}

extern "C" void
ar6000_targetStats_event(
	   void *context, WMI_TARGET_STATS *pStats)
{
	CAR6KMini *Adapter = (CAR6KMini *)context;

	Adapter->WMITargetStatsEvent(pStats);

	return;
}

extern "C" void
ar6000_rssiThreshold_event(
       void *context)
{
	return;
}

extern "C" void
ar6000_reportError_event(
       void *context, WMI_TARGET_ERROR_VAL errorVal)
{
    char *errString[] = {
		"",
        "WMI_TARGET_PM_ERR_FAIL", //0x0001
        "WMI_TARGET_KEY_NOT_FOUND", //0x0002
		"",
        "WMI_TARGET_DECRYPTION_ERR", //0x0004
		"",
		"",
		"",
        "WMI_TARGET_BMISS", //0x0008
		"",
		"",
		"",
		"",
		"",
		"",
		"",
        "WMI_PSDISABLE_NODE_JOIN" //0x0010
};

    WMI_DEBUG_PRINTF(ATH_LOG_ERR,
		             "AR6000 Error on Target. Error = 0x%x\n", 
					 errorVal);

    /* One error is reported at a time, and errorval is a bitmask */
    if (errorVal & (errorVal - 1)) {
		return;
	}

    WMI_DEBUG_PRINTF(ATH_LOG_ERR, "AR6000 Error type = ");
    switch(errorVal) {
        case WMI_TARGET_PM_ERR_FAIL:
        case WMI_TARGET_KEY_NOT_FOUND:
        case WMI_TARGET_DECRYPTION_ERR:
        case WMI_TARGET_BMISS:
        case WMI_PSDISABLE_NODE_JOIN:
            WMI_DEBUG_PRINTF(ATH_LOG_ERR, "%s\n", errString[errorVal]);
            break;
        default:
            WMI_DEBUG_PRINTF(ATH_LOG_ERR, "INVALID\n");
            break;
    }
}

extern "C" void
ar6000_gpio_intr_rx(A_UINT32 intr_mask, A_UINT32 input_values)
{
	return;
}

extern "C" void
ar6000_gpio_data_rx(A_UINT32 reg_id, A_UINT32 value)
{
	return;
}

extern "C" void
ar6000_gpio_ack_rx(void)
{
	return;
}

extern "C" A_UINT8
ar6000_trafficclass(A_UINT8 *pktHdr, A_UINT32 ndisUserPriority)
{
    A_UINT8 trafficClass = WMM_AC_BE;
#ifdef WMM
    A_UINT16 pMode,vMode;
    A_UINT8 pClass,vClass;
    struct iphdr *ipHdr = (struct iphdr *)pktHdr;

    if(ipHdr) {
        switch(ipHdr->ip_tos) {
	        case 0x08:					/* Background */
		        pMode = WMM_AC_TO_TID(WMM_AC_BK);
		    	pClass = WMM_AC_BK;
		    	break;
	    	case 0x28:					/* Video */
	    	case 0x80:
	        case 0xa0:
		    	pMode = WMM_AC_TO_TID(WMM_AC_VI);
		    	pClass = WMM_AC_VI;
		    	break;
	        case 0x38:					/* Voice */
	        case 0xc0:
	        case 0xe0:
		        pMode = WMM_AC_TO_TID(WMM_AC_VO);
		    	pClass = WMM_AC_VO;
		        break;
	        case 0x00:
	        case 0x18:
	        default:					/* All others / Best Effort */
		    	pMode = WMM_AC_TO_TID(WMM_AC_BE);
		    	pClass = WMM_AC_BE;
        }
    } else {
        pMode = 0;
        pClass = WMM_AC_BE;
    }
    
    vMode = ndisUserPriority & 0x7;
    switch(vMode) {
	    case 0:
	    case 3:						/* Best Effort */
   	    	vClass = WMM_AC_BE;
	    	break;
	    case 1:
	    case 2:						/* Background */
 	    	vClass = WMM_AC_BK;
	    	break;
	    case 4:
	    case 5:						/* video */
            	vClass = WMM_AC_VI;
	    	break;
            case 6:
	    case 7:						/* Voice */
   	    	vClass = WMM_AC_VO;
	    	break;
    }
    trafficClass = (pMode > vMode) ? pClass : vClass;	
#endif //WMM
    return trafficClass;
}

extern "C" void 
ar6000_tkip_micerr_event(
        void *context,
        A_UINT8 keyid, 
        A_BOOL isMcast)
{
	CAR6KMini *Adapter = (CAR6KMini *)context;

	Adapter->WMIMicErrEvent(keyid, isMcast);
    return;
}

extern "C" void 
ar6000_set_numdataendpts(
        void *context, 
        A_UINT32 num) 
{
    CAR6KMini *Adapter = (CAR6KMini *)context;
    
    if (num <= (HTC_MAILBOX_NUM_MAX - 1)) {
		return;
	}
    Adapter->WMISetNumDataEndpts(num);
	return;
}

extern "C" void
ar6000_regDomain_event(
        void *context,
        A_UINT32 regCode)
{
    CAR6KMini *Adapter = (CAR6KMini *)context;

    Adapter->WMIRegDomainEvent(regCode);
	return;
}

extern "C" void
ar6000_neighborReport_event(
        void *context, 
        A_INT32 numAps, 
        WMI_NEIGHBOR_INFO *info)
{
	CAR6KMini *Adapter = (CAR6KMini *)context;

	Adapter->WMINeighborReportEvent(numAps, info);
	return;
}

extern "C" void
ar6000_txPwr_rx(
        void *context, 
        A_UINT8 txPwr)
{
    CAR6KMini *Adapter = (CAR6KMini *)context;

    Adapter->WMITxPwr(txPwr);
	return;
}

extern "C" A_UINT32
a_copy_from_user(void *to, void *from, A_UINT32 n)
{
    NdisMoveMemory(to, from, n);
	return 0;
}

extern "C" void
ar6000_roam_tbl_event( void *devt, WMI_TARGET_ROAM_TBL *roamTbl )
{
}

extern "C" void
ar6000_roam_data_event( void *devt, WMI_TARGET_ROAM_DATA *roamDat )
{
}

extern "C" void
ar6000_cac_event( void *devt, A_UINT8 ac, A_UINT8 cac_ind, 
                  A_UINT8 st, A_UINT8 *tspecSuggestion )
{
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品丝袜一区| 亚洲一区在线视频| 91久久国产综合久久| 蜜桃一区二区三区四区| 中文字幕中文字幕在线一区 | 精品一区二区三区免费观看| 国产精品污www在线观看| 欧美电影一区二区三区| 成人av免费在线播放| 蜜臂av日日欢夜夜爽一区| 亚洲色图一区二区| 国产亚洲va综合人人澡精品| 欧美丰满美乳xxx高潮www| 91影院在线观看| 国产精品中文有码| 国产高清精品在线| 欧美亚州韩日在线看免费版国语版| 久久99在线观看| 五月天激情小说综合| 国产精品久久久久aaaa| 久久精品亚洲国产奇米99| 91精品国产美女浴室洗澡无遮挡| 97成人超碰视| 成人国产精品免费观看| 国产在线国偷精品产拍免费yy | 国产成人鲁色资源国产91色综| 日韩国产精品久久久久久亚洲| 亚洲另类在线视频| 国产精品免费丝袜| 久久毛片高清国产| 亚洲精品在线电影| 日韩精品一区二区在线| 91精品国产高清一区二区三区蜜臀| 在线观看免费一区| 一本大道久久a久久综合婷婷| 成人一区二区三区在线观看| 韩国精品在线观看| 黑人巨大精品欧美一区| 久久99精品久久久| 韩国视频一区二区| 国产一区二区看久久| 国产福利91精品一区| 国产综合一区二区| 国产乱码字幕精品高清av| 国产福利一区二区三区| 国产成人免费在线| 成人污视频在线观看| www.亚洲精品| 日本乱人伦aⅴ精品| 日本韩国欧美三级| 一本大道久久a久久综合婷婷| 成人做爰69片免费看网站| 成人丝袜18视频在线观看| 成人av电影在线| 色婷婷av一区二区三区软件| 欧洲视频一区二区| 在线不卡免费av| 日韩欧美一卡二卡| 精品粉嫩超白一线天av| 久久只精品国产| 国产精品久久久久久久久免费樱桃 | 国产一区二区三区在线观看精品| 丝瓜av网站精品一区二区| 亚洲成人一区在线| 日本亚洲最大的色成网站www| 久久国产剧场电影| 国产丶欧美丶日本不卡视频| 99热99精品| 在线观看亚洲精品视频| 欧美成人乱码一区二区三区| 26uuu精品一区二区三区四区在线| 国产午夜精品久久久久久久| 亚洲精品一卡二卡| 日韩av一区二区三区四区| 国产精品一品视频| 在线观看免费视频综合| 欧美成人一区二区三区片免费 | 懂色av一区二区三区免费观看| 日韩亚洲国产中文字幕欧美| 国内精品国产三级国产a久久| 成人18精品视频| 欧美日韩国产首页| 国产拍揄自揄精品视频麻豆| 一区二区不卡在线视频 午夜欧美不卡在| 日韩极品在线观看| 国产91高潮流白浆在线麻豆| 色综合久久久久久久久| 欧美不卡一区二区三区| 亚洲情趣在线观看| 精品制服美女丁香| 91影视在线播放| 精品国产免费人成在线观看| 夜夜操天天操亚洲| 国产成人精品免费视频网站| 欧美在线观看一区| 中文字幕va一区二区三区| 日韩国产一二三区| 91在线一区二区| 欧美精品一区二区三区高清aⅴ| 亚洲精品免费看| 国产精品99久久不卡二区| 欧美疯狂做受xxxx富婆| 最好看的中文字幕久久| 极品美女销魂一区二区三区| 在线亚洲一区二区| 欧美韩国日本不卡| 精品一区二区三区免费| 欧美乱妇一区二区三区不卡视频| 国产精品视频免费看| 国内成人精品2018免费看| 欧美精品vⅰdeose4hd| 亚洲精选免费视频| 成+人+亚洲+综合天堂| 精品国产乱码久久久久久免费| 国产成人免费9x9x人网站视频| 黄色精品一二区| 这里只有精品免费| 亚洲一区二区四区蜜桃| 色综合天天天天做夜夜夜夜做| 久久精品一区二区| 精品在线免费视频| 欧美日韩激情一区二区三区| 亚洲免费观看高清完整版在线观看| 粉嫩嫩av羞羞动漫久久久 | 亚洲图片激情小说| 精品一区二区三区视频| 欧美日韩视频第一区| 亚洲精品成人在线| 99九九99九九九视频精品| 久久影院电视剧免费观看| 麻豆精品久久久| 欧美一区二区三区色| 日韩高清中文字幕一区| 欧美一区二区三区性视频| 日本亚洲视频在线| 日韩欧美亚洲一区二区| 免费看日韩a级影片| 欧美成人女星排行榜| 精品一区二区三区欧美| 久久影院视频免费| 处破女av一区二区| 国产精品国产三级国产有无不卡| 成人激情小说乱人伦| 久久网这里都是精品| 国内精品久久久久影院薰衣草| 国产午夜精品一区二区三区视频 | 日本不卡视频在线| 91麻豆精品国产无毒不卡在线观看| 五月天中文字幕一区二区| 国产视频在线观看一区二区三区| 国产精品美女久久福利网站 | 欧美一区二区在线播放| 奇米精品一区二区三区在线观看| 日韩欧美在线观看一区二区三区| 激情综合网av| 欧美α欧美αv大片| 成人午夜私人影院| 一区二区在线看| 欧美日韩国产综合一区二区| 亚洲成人1区2区| 日韩三级精品电影久久久| 国产二区国产一区在线观看| 自拍偷自拍亚洲精品播放| 欧美日韩一区二区在线视频| 另类的小说在线视频另类成人小视频在线| 亚洲精品一线二线三线| 成人18精品视频| 亚洲国产精品久久久久婷婷884| 欧美一区二区福利在线| 粉嫩13p一区二区三区| 亚洲精品免费播放| 欧美xxxxx裸体时装秀| av在线不卡网| 天堂午夜影视日韩欧美一区二区| 精品久久久久久久久久久久久久久久久 | 国产精品私人影院| 欧美日韩色综合| 国产精品18久久久久久久久久久久 | 五月综合激情网| 欧美精品一区二区三区蜜桃 | 午夜精品一区二区三区电影天堂 | 最新中文字幕一区二区三区| 欧美美女bb生活片| 成人一区二区三区在线观看| 亚洲国产综合在线| 国产亚洲欧美日韩日本| 欧美三级电影一区| 国产成人精品午夜视频免费| 日日夜夜精品视频免费| 久久蜜桃一区二区| 欧美午夜精品一区二区蜜桃| 国产一区二区三区综合| 午夜视频在线观看一区二区 | 裸体一区二区三区| 亚洲视频免费看| 精品剧情在线观看| 在线影视一区二区三区| 免费久久精品视频| 亚洲精品免费播放| 日本一区二区三级电影在线观看|