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

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

?? wmi.c

?? Linux下SDIO設備的驅動程序
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* * Copyright (c) 2004-2006 Atheros Communications Inc. * *  Wireless Network driver for Atheros AR6001 * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License version 2 as *  published by the Free Software Foundation; * *  Software distributed under the License is distributed on an "AS *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or *  implied. See the License for the specific language governing *  rights and limitations under the License. * * * This module implements the hardware independent layer of the * Wireless Module Interface (WMI) protocol. * */#include "../include/athdefs.h"#include "../include/athtypes.h"#include "../include/osapi.h"#include "../include/htc.h"#include "../include/wmi.h"#include "../include/ieee80211.h"#include "../include/ieee80211_node.h"#include "../include/wlan_api.h"#include "../include/wmi_api.h"#include "../include/dset_api.h"#include "../include/gpio_api.h"#include "../include/wmi_host.h"#include "../include/athdrv.h"#include "../include/ar6000_api.h"#ifdef DEBUGint wmi_debug = 0;#define WMI_DEBUG_PRINTF(args...)        if (wmi_debug) printk(args);#define WMI_DEBUG_PRINTF2(args...)       if (wmi_debug > 1) printk(args);#else#define WMI_DEBUG_PRINTF(args...)#define WMI_DEBUG_PRINTF2(args...)#endifstatic A_STATUS wmi_ready_event_rx(struct wmi_t *wmip, A_UINT8 *datap, int len);static A_STATUS wmi_connect_event_rx(struct wmi_t *wmip, A_UINT8 *datap,                                     int len);static A_STATUS wmi_disconnect_event_rx(struct wmi_t *wmip, A_UINT8 *datap,                                        int len);static A_STATUS wmi_tkip_micerr_event_rx(struct wmi_t *wmip, A_UINT8 *datap,                                        int len);static A_STATUS wmi_bssInfo_event_rx(struct wmi_t *wmip, A_UINT8 *datap,                                     int len);static A_STATUS wmi_opt_frame_event_rx(struct wmi_t *wmip, A_UINT8 *datap,                                       int len);static A_STATUS wmi_pstream_timeout_event_rx(struct wmi_t *wmip, A_UINT8 *datap,                                     int len);static A_STATUS wmi_sync_point(struct wmi_t *wmip);static A_STATUS wmi_create_pstream_reply_rx(struct wmi_t *wmip, A_UINT8 *datap,                                          int len);static A_STATUS wmi_delete_pstream_reply_rx(struct wmi_t *wmip, A_UINT8 *datap,                                          int len);static A_STATUS wmi_bitrate_reply_rx(struct wmi_t *wmip, A_UINT8 *datap,                                     int len);static A_STATUS wmi_channelList_reply_rx(struct wmi_t *wmip, A_UINT8 *datap,                                         int len);static A_STATUS wmi_regDomain_event_rx(struct wmi_t *wmip, A_UINT8 *datap,                                       int len);static A_STATUS wmi_txPwr_reply_rx(struct wmi_t *wmip, A_UINT8 *datap, int len);static A_STATUS wmi_neighborReport_event_rx(struct wmi_t *wmip, A_UINT8 *datap,                                             int len);static A_STATUS wmi_dset_open_req_rx(struct wmi_t *wmip, A_UINT8 *datap,                                     int len);#if CONFIG_HOST_DSET_SUPPORTstatic A_STATUS wmi_dset_close_rx(struct wmi_t *wmip, A_UINT8 *datap, int len);static A_STATUS wmi_dset_data_req_rx(struct wmi_t *wmip, A_UINT8 *datap,                                     int len);#endif /* CONFIG_HOST_DSET_SUPPORT */static A_STATUS wmi_scanComplete_rx(struct wmi_t *wmip, A_UINT8 *datap,                                     int len);static A_STATUS wmi_errorEvent_rx(struct wmi_t *wmip, A_UINT8 *datap, int len);static A_STATUS wmi_statsEvent_rx(struct wmi_t *wmip, A_UINT8 *datap, int len);static A_STATUS wmi_rssiThresholdEvent_rx(struct wmi_t *wmip, A_UINT8 *datap, int len);static A_STATUS wmi_reportErrorEvent_rx(struct wmi_t *wmip, A_UINT8 *datap, int len);static A_STATUS wmi_cac_event_rx(struct wmi_t *wmip, A_UINT8 *datap, int len);static A_STATUS wmi_roam_tbl_event_rx(struct wmi_t *wmip, A_UINT8 *datap,                                      int len);static A_STATUS wmi_roam_data_event_rx(struct wmi_t *wmip, A_UINT8 *datap,                                      int len);#if CONFIG_HOST_GPIO_SUPPORTstatic A_STATUS wmi_gpio_intr_rx(struct wmi_t *wmip, A_UINT8 *datap, int len);static A_STATUS wmi_gpio_data_rx(struct wmi_t *wmip, A_UINT8 *datap, int len);static A_STATUS wmi_gpio_ack_rx(struct wmi_t *wmip, A_UINT8 *datap, int len);#endif /* CONFIG_HOST_GPIO_SUPPORT */static const A_INT32 wmi_rateTable[] = {    1000,    2000,    5500,    11000,    6000,    9000,    12000,    18000,    24000,    36000,    48000,    54000,    0};#define MODE_A_SUPPORT_RATE_START       4#define MODE_A_SUPPORT_RATE_STOP        11#define MODE_GONLY_SUPPORT_RATE_START   MODE_A_SUPPORT_RATE_START#define MODE_GONLY_SUPPORT_RATE_STOP    MODE_A_SUPPORT_RATE_STOP#define MODE_B_SUPPORT_RATE_START       0#define MODE_B_SUPPORT_RATE_STOP        3/* 802.1d to AC mapping. Refer pg 57 of WMM-test-plan-v1.2 */const A_UINT8 up_to_ac[]= {                WMM_AC_BE,                WMM_AC_BK,                WMM_AC_BK,                WMM_AC_BE,                WMM_AC_VI,                WMM_AC_VI,                WMM_AC_VO,                WMM_AC_VO,            };void *wmi_init(void *devt){    struct wmi_t *wmip;    A_UINT8 i;    wmip = A_MALLOC(sizeof(struct wmi_t));    if (wmip == NULL) {        return (NULL);    }    A_MEMZERO(wmip, sizeof(*wmip));    wmip->wmi_devt = devt;    wlan_node_table_init(wmip, &wmip->wmi_scan_table);    for (i = UPLINK_TRAFFIC; i < BIDIR_TRAFFIC; i++) {        wmip->wmi_pstreamCmdInProgress[i][WMM_AC_BE] = FALSE;        wmip->wmi_pstreamCmdInProgress[i][WMM_AC_BK] = FALSE;        wmip->wmi_pstreamCmdInProgress[i][WMM_AC_VI] = FALSE;        wmip->wmi_pstreamCmdInProgress[i][WMM_AC_VO] = FALSE;    }    wmip->wmi_cpstreamCmdInProgress = FALSE;    wmi_qos_state_init(wmip);    wmip->wmi_powerMode = REC_POWER;    wmip->wmi_phyMode = WMI_11G_MODE;    return (wmip);}voidwmi_qos_state_init(struct wmi_t *wmip){    A_UINT8 i;    if (wmip == NULL) {        return;    }    /* Initialize QoS States */    wmip->wmi_numQoSStream = 0;    for (i = 0; i < WMI_MAX_NUM_PRI_STREAMS; i++) {        wmip->wmi_priority[i].inUse = 0;        wmip->wmi_priority[i].mbox = WMI_BEST_EFFORT_MBOX;    }    for (i = 0; i < WMM_NUM_AC; i++) {        wmip->wmi_trafficClassMap[UPLINK_TRAFFIC][i] = WMI_NOT_MAPPED;        wmip->wmi_trafficClassMap[DNLINK_TRAFFIC][i] = WMI_NOT_MAPPED;    }    wmip->wmi_trafficClassMap[UPLINK_TRAFFIC][WMM_AC_BE] = WMI_BEST_EFFORT_MBOX;    wmip->wmi_trafficClassMap[DNLINK_TRAFFIC][WMM_AC_BE] = WMI_BEST_EFFORT_MBOX;    for (i = 0; i < WMI_MBOX_COUNT; i++) {        wmip->wmi_mboxMap[UPLINK_TRAFFIC][i].trafficClass = WMM_AC_BE;        wmip->wmi_mboxMap[UPLINK_TRAFFIC][i].priorityNum = WMI_NOT_MAPPED;        wmip->wmi_mboxMap[DNLINK_TRAFFIC][i].trafficClass = WMM_AC_BE;        wmip->wmi_mboxMap[DNLINK_TRAFFIC][i].priorityNum = WMI_NOT_MAPPED;    }    wmip->wmi_olderPriRxMbox = WMI_HIGH_PRIORITY_MBOX;    wmip->wmi_newerPriRxMbox = WMI_LOW_PRIORITY_MBOX;    ar6000_set_numdataendpts(wmip->wmi_devt, 1);}voidwmi_shutdown(struct wmi_t *wmip){    if (wmip != NULL) {        wlan_node_table_cleanup(&wmip->wmi_scan_table);        A_FREE(wmip);    }}/* *  performs DIX to 802.3 encapsulation for transmit packets. *  uses passed in buffer.  Returns buffer or NULL if failed. *  Assumes the entire DIX header is contigous and that there is *  enough room in the buffer for a 802.3 mac header and LLC+SNAP headers. */A_STATUSwmi_dix_2_dot3(struct wmi_t *wmip, void *osbuf){    A_UINT8          *datap;    A_UINT16         typeorlen;    ATH_MAC_HDR      macHdr;    ATH_LLC_SNAP_HDR *llcHdr;    A_ASSERT(osbuf != NULL);    if (a_netbuf_headroom(osbuf) <        (sizeof(ATH_LLC_SNAP_HDR) + sizeof(WMI_DATA_HDR)))    {        return A_NO_MEMORY;    }    datap = a_netbuf_to_data(osbuf);    typeorlen = *(A_UINT16 *)(datap + ATH_MAC_LEN + ATH_MAC_LEN);    if (!IS_ETHERTYPE(A_BE2CPU16(typeorlen))) {        /*         * packet is already in 802.3 format - return success         */        WMI_DEBUG_PRINTF("packet already 802.3\n");        return (A_OK);    }    /*     * Save mac fields and length to be inserted later     */    A_MEMCPY(macHdr.dstMac, datap, ATH_MAC_LEN);    A_MEMCPY(macHdr.srcMac, datap + ATH_MAC_LEN, ATH_MAC_LEN);    macHdr.typeOrLen = A_CPU2BE16(a_netbuf_to_len(osbuf) - sizeof(ATH_MAC_HDR) +                                  sizeof(ATH_LLC_SNAP_HDR));    /*     * Make room for LLC+SNAP headers     */    if (a_netbuf_push(osbuf, sizeof(ATH_LLC_SNAP_HDR)) != A_OK) {        return A_NO_MEMORY;    }    datap = a_netbuf_to_data(osbuf);    A_MEMCPY(datap, &macHdr, sizeof (ATH_MAC_HDR));    llcHdr = (ATH_LLC_SNAP_HDR *)(datap + sizeof(ATH_MAC_HDR));    llcHdr->dsap      = 0xAA;    llcHdr->ssap      = 0xAA;    llcHdr->cntl      = 0x03;    llcHdr->orgCode[0] = 0x0;    llcHdr->orgCode[1] = 0x0;    llcHdr->orgCode[2] = 0x0;    llcHdr->etherType = typeorlen;    return (A_OK);}/* * Adds a WMI data header * Assumes there is enough room in the buffer to add header. */A_STATUSwmi_data_hdr_add(struct wmi_t *wmip, void *osbuf, A_UINT8 msgType){    WMI_DATA_HDR     *dtHdr;    A_ASSERT(osbuf != NULL);    if (a_netbuf_push(osbuf, sizeof(WMI_DATA_HDR)) != A_OK) {        return A_NO_MEMORY;    }    dtHdr = (WMI_DATA_HDR *)a_netbuf_to_data(osbuf);    dtHdr->info = msgType;    dtHdr->rssi = 0;    return (A_OK);}A_UINT8 wmi_implicit_create_pstream(struct wmi_t *wmip, void *osbuf, A_UINT8 dir){    A_UINT8         *datap;    A_UINT8         trafficClass, userPriority = 0;    ATH_LLC_SNAP_HDR *llcHdr;    A_UINT16        ipType = IP_ETHERTYPE;    WMI_DATA_HDR     *dtHdr;    WMI_CREATE_PSTREAM_CMD  cmd;    A_ASSERT(osbuf != NULL);    A_ASSERT(dir == DNLINK_TRAFFIC || dir == UPLINK_TRAFFIC);    datap = a_netbuf_to_data(osbuf);    llcHdr = (ATH_LLC_SNAP_HDR *)(datap + sizeof(WMI_DATA_HDR) +                                  sizeof(ATH_MAC_HDR));    if (llcHdr->etherType == htons(ipType)) {        /* Extract the endpoint info from the TOS field in the IP header */        userPriority = ar6000_iptos_to_userPriority(((A_UINT8 *)llcHdr) + sizeof(ATH_LLC_SNAP_HDR));        trafficClass = convert_userPriority_to_trafficClass(userPriority);    } else {        trafficClass = WMM_AC_BE;    }    dtHdr = (WMI_DATA_HDR *)datap;    if(dir==UPLINK_TRAFFIC)        dtHdr->info |= (userPriority & WMI_DATA_HDR_UP_MASK) << WMI_DATA_HDR_UP_SHIFT;  /* lower 3-bits are 802.1d priority */    /* Implicitly determine whether a create_pstream_cmd is needed for this trafficClass */    if (!((trafficClass == WMM_AC_BE) || (wmip->wmi_trafficClassMap[dir][trafficClass] != WMI_NOT_MAPPED))) {        A_UINT8 reqMbox;        /*         * If the data pkt is tagged with a priority that doesn't have a MBOX created,         * we must first call create_pstream_cmd         * Originally, assume traffic goes to BE MBox,         * until the driver receives the reply from the create_pstream cmd         */        wmip->wmi_trafficClassMap[dir][trafficClass] = WMI_BEST_EFFORT_MBOX;        if (dir == DNLINK_TRAFFIC) {            /* determine which mailbox to use */            reqMbox = wmip->wmi_olderPriRxMbox;        } else {            reqMbox = WMI_BEST_EFFORT_MBOX;        }        A_MEMZERO(&cmd, sizeof(cmd));        cmd.trafficClass = trafficClass;        cmd.rxQueueNum = reqMbox;        cmd.userPriority = userPriority;        cmd.inactivityInt = WMI_IMPLICIT_PSTREAM_INACTIVITY_INT;        if (wmi_create_pstream_cmd(wmip, &cmd) != A_OK) {            wmip->wmi_trafficClassMap[dir][trafficClass] = WMI_NOT_MAPPED;            trafficClass = WMM_AC_BE;        }    }    return trafficClass;}HTC_ENDPOINT_IDwmi_get_endpoint(struct wmi_t *wmip, A_UINT8 trafficClass){    WMI_DEBUG_PRINTF2("1 pkt of traffic class(%d) to mbox(%d)\n",                      trafficClass, wmip->wmi_trafficClassMap[UPLINK_TRAFFIC][trafficClass]);    return wmip->wmi_trafficClassMap[UPLINK_TRAFFIC][trafficClass];}/* *  performs 802.3 to DIX encapsulation for received packets. *  Assumes the entire 802.3 header is contigous. */A_STATUSwmi_dot3_2_dix(struct wmi_t *wmip, void *osbuf){    A_UINT8          *datap;    ATH_MAC_HDR      macHdr;    ATH_LLC_SNAP_HDR *llcHdr;    A_ASSERT(osbuf != NULL);    datap = a_netbuf_to_data(osbuf);    A_MEMCPY(&macHdr, datap, sizeof(ATH_MAC_HDR));    llcHdr = (ATH_LLC_SNAP_HDR *)(datap + sizeof(ATH_MAC_HDR));    macHdr.typeOrLen = llcHdr->etherType;    if (a_netbuf_pull(osbuf, sizeof(ATH_LLC_SNAP_HDR)) != A_OK) {        return A_NO_MEMORY;    }    datap = a_netbuf_to_data(osbuf);    A_MEMCPY(datap, &macHdr, sizeof (ATH_MAC_HDR));    return (A_OK);}/* * Removes a WMI data header */A_STATUSwmi_data_hdr_remove(struct wmi_t *wmip, void *osbuf){    A_ASSERT(osbuf != NULL);    return (a_netbuf_pull(osbuf, sizeof(WMI_DATA_HDR)));}voidwmi_iterate_nodes(struct wmi_t *wmip, wlan_node_iter_func *f, void *arg){    wlan_iterate_nodes(&wmip->wmi_scan_table, f, arg);}/* * WMI Extended Event received from Target. */A_STATUSwmi_control_rx_xtnd(struct wmi_t *wmip, void *osbuf){    WMIX_CMD_HDR *cmd;    A_UINT16 id;    A_UINT8 *datap;    A_UINT32 len;    A_STATUS status = A_OK;    if (a_netbuf_to_len(osbuf) < sizeof(WMIX_CMD_HDR)) {        WMI_DEBUG_PRINTF("wmi extended event rx: bad packet\n");        wmip->wmi_stats.cmd_len_err++;        a_netbuf_free(osbuf);        return A_ERROR;    }    cmd = (WMIX_CMD_HDR *)a_netbuf_to_data(osbuf);    id = cmd->commandId;    if (a_netbuf_pull(osbuf, sizeof(WMIX_CMD_HDR)) != A_OK) {        WMI_DEBUG_PRINTF("wmi extended event rx: bad packet\n");        wmip->wmi_stats.cmd_len_err++;        a_netbuf_free(osbuf);        return A_ERROR;    }    datap = a_netbuf_to_data(osbuf);    len = a_netbuf_to_len(osbuf);    switch (id) {    case (WMIX_DSETOPENREQ_EVENTID):        status = wmi_dset_open_req_rx(wmip, datap, len);        break;#if CONFIG_HOST_DSET_SUPPORT    case (WMIX_DSETCLOSE_EVENTID):        status = wmi_dset_close_rx(wmip, datap, len);        break;    case (WMIX_DSETDATAREQ_EVENTID):        status = wmi_dset_data_req_rx(wmip, datap, len);        break;#endif /* CONFIG_HOST_DSET_SUPPORT */#if CONFIG_HOST_GPIO_SUPPORT    case (WMIX_GPIO_INTR_EVENTID):        wmi_gpio_intr_rx(wmip, datap, len);        break;    case (WMIX_GPIO_DATA_EVENTID):        wmi_gpio_data_rx(wmip, datap, len);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91热门视频在线观看| 欧美电视剧免费观看| 欧美麻豆精品久久久久久| 日韩午夜激情电影| 一区在线播放视频| 久久99精品久久只有精品| 色美美综合视频| 国产香蕉久久精品综合网| 午夜av一区二区| 欧美中文字幕一区二区三区 | 国产精品三级av在线播放| 午夜精品久久久久久久| 91在线视频在线| 国产日韩欧美综合在线| 美日韩一级片在线观看| 欧美日韩免费不卡视频一区二区三区 | 制服丝袜亚洲播放| 亚洲欧美色综合| 国产成人丝袜美腿| 欧美mv日韩mv国产网站| 亚洲成av人片在线观看无码| 91麻豆免费看片| 国产精品乱码一区二区三区软件 | 午夜视频在线观看一区二区三区| 成人av网站在线| 亚洲一区在线电影| 成人一二三区视频| 国产午夜久久久久| 成人免费视频国产在线观看| 久久精品一区蜜桃臀影院| 精品综合久久久久久8888| 欧美一区二区在线播放| 视频一区视频二区在线观看| 91精品视频网| 精品在线你懂的| 久久久久国色av免费看影院| 激情综合色丁香一区二区| 精品久久久久久久久久久久久久久 | eeuss鲁一区二区三区| 中文字幕的久久| aaa亚洲精品一二三区| 中文字幕一区二区在线播放| 99r精品视频| 艳妇臀荡乳欲伦亚洲一区| 欧美午夜精品理论片a级按摩| 亚洲最新在线观看| 91麻豆精品国产自产在线 | 91精品国产入口| 久久99在线观看| 久久蜜桃av一区二区天堂| 国产福利一区在线| 亚洲视频1区2区| 欧美日韩午夜在线| 久国产精品韩国三级视频| 精品成人一区二区三区四区| 国产69精品久久777的优势| 亚洲欧洲精品一区二区三区| 欧美日韩综合不卡| 久久精品国产精品亚洲红杏| 国产偷国产偷亚洲高清人白洁 | 亚洲视频一区二区在线观看| 日本电影欧美片| 激情五月婷婷综合网| 中文字幕av一区二区三区高| 在线影视一区二区三区| 久久国产欧美日韩精品| 自拍视频在线观看一区二区| 欧美美女一区二区三区| 国产经典欧美精品| 亚洲自拍都市欧美小说| 国产精品久久久久婷婷二区次| 色哟哟国产精品免费观看| 麻豆一区二区三区| 国产精品萝li| 精品乱人伦小说| 色婷婷狠狠综合| 国产美女精品一区二区三区| 一区二区三区四区不卡视频 | 国产一区二区伦理片| 亚洲精品你懂的| 精品国产乱码久久久久久免费| 97se亚洲国产综合自在线观| 秋霞国产午夜精品免费视频 | 国产午夜亚洲精品不卡| 欧美日韩国产综合一区二区| 成人一区二区三区| 极品少妇一区二区| 亚洲成人av资源| 亚洲人吸女人奶水| 国产亚洲自拍一区| 日韩欧美一二三四区| 在线观看欧美黄色| 波多野结衣中文字幕一区二区三区| 日韩成人免费在线| 亚洲1区2区3区4区| 亚洲精品少妇30p| 中文字幕中文字幕一区二区| 亚洲精品在线三区| 91.麻豆视频| 在线观看视频91| 91精品办公室少妇高潮对白| jiyouzz国产精品久久| 国产精品夜夜嗨| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲国产日韩a在线播放| 一区二区三区四区激情| ㊣最新国产の精品bt伙计久久| 久久蜜臀精品av| 久久久www免费人成精品| 日韩免费看的电影| 精品国产麻豆免费人成网站| 亚洲图片另类小说| 国产日韩精品一区二区三区| 久久综合九色综合欧美亚洲| 日韩一区二区免费在线观看| 91精品福利在线一区二区三区| 欧美欧美欧美欧美| 欧美另类变人与禽xxxxx| 在线播放国产精品二区一二区四区 | 亚洲色图欧洲色图婷婷| 亚洲国产欧美在线| 精品国产乱码久久久久久浪潮| 久久久三级国产网站| 91精品国产综合久久婷婷香蕉 | 在线观看亚洲一区| 91蝌蚪porny| 91福利在线导航| 欧美日韩情趣电影| 9191精品国产综合久久久久久| 欧美男男青年gay1069videost| 欧美一区二区三区免费大片| 日韩一级完整毛片| 日韩免费看的电影| 久久久久国产精品人| 国产精品女同互慰在线看 | 久久综合久久鬼色中文字| 久久综合色天天久久综合图片| 国产日韩欧美亚洲| 日韩一区在线播放| 亚洲成a人片在线不卡一二三区| 免费黄网站欧美| 激情国产一区二区| 99久久国产综合精品色伊| 欧美三级电影精品| 日韩午夜激情电影| 国产精品久久久久aaaa樱花| 亚洲一区二区高清| 老鸭窝一区二区久久精品| 国产精品1024| 欧美日韩高清在线播放| 精品少妇一区二区三区免费观看| 国产亚洲短视频| 亚洲成a人片综合在线| 国产精品538一区二区在线| 97久久超碰精品国产| 日韩欧美国产不卡| 亚洲日本中文字幕区| 日本中文一区二区三区| 丁香激情综合国产| 69成人精品免费视频| 亚洲丝袜精品丝袜在线| 欧美aaaaa成人免费观看视频| 国产91露脸合集magnet| 欧美丰满嫩嫩电影| 自拍偷拍国产精品| 国产麻豆视频一区| 欧美日韩一区精品| 亚洲视频一区在线| 国产精品一区一区| 欧美日韩高清在线播放| 亚洲欧洲av另类| 国产成人午夜精品5599| 91精品婷婷国产综合久久性色 | 国产精品久久久久久久久动漫| 婷婷亚洲久悠悠色悠在线播放| 成人黄色一级视频| 欧美mv和日韩mv的网站| 天天色 色综合| 色婷婷激情综合| 中文字幕一区二区三区蜜月| 国产在线播放一区二区三区| 欧美在线视频日韩| 亚洲欧美日韩一区| 丁香亚洲综合激情啪啪综合| 日韩精品一区二区三区视频播放 | 国产欧美视频一区二区| 美女在线视频一区| 欧美挠脚心视频网站| 亚洲精品老司机| 91丨九色丨蝌蚪富婆spa| 国产婷婷精品av在线| 国产在线精品不卡| 久久综合九色综合欧美98| 蜜桃av噜噜一区二区三区小说| 欧美日韩一区 二区 三区 久久精品| 1024成人网色www| 色94色欧美sute亚洲线路一久 | 久久久精品黄色| 麻豆成人在线观看| 精品久久久久香蕉网|