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

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

?? tmffs.c

?? MMI層OBJ不能完全編譯
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************
 * Flash File System (ffs)
 * Idea, design and coding by Mads Meisner-Jensen, mmj@ti.com
 *
 * ffs testmode interface
 *
 * $Id: tmffs.c 1.51 Thu, 18 Dec 2003 10:50:52 +0100 tsj $
 *
 ******************************************************************************/

#ifndef TARGET
#include "ffs.cfg"
#endif

#if (TARGET == 1)
#include "etm/etm.h"
#include "etm/etm_api.h"
#include "ffs/board/task.h"
#endif

#include "ffs/board/ffstrace.h"
#include "ffs/board/tmffs.h"
#include "ffs/ffs_api.h"
#include "ffs/pcm.h"

#include <string.h>

/******************************************************************************
 * Local globals for all protocols
 ******************************************************************************/

static int32 bufsize, tmpsize;
static uint8 stringsize;

effs_t ffs_initialize(void);
effs_t ffs_exit(void);

#define tmffs_put8(x)   *outp++ = x;
#define tmffs_put16(x) *outp++ = (x & 0xff); *outp++ = (x>>8);

#if (TARGET == 1)
int etm_ffs2(T_ETM_PKT *pkt, unsigned char *inp, int insize);

// Not in use
//#define tmffs_put32(x) tmffs_put16(x); tmffs_put16(x >> 16);


/******************************************************************************
 * TM FFS registration to ETM database
 *****************************************************************************/
/* Callback function registered in ETM database */
int etm_ffs1_pkt_receive(uint8 *data, int size)
{
    int mid;
    T_ETM_PKT *pkt;  

    ttw(ttr(TTrTmffs, "etm_ffs1_pkt_receive(*, %d)" NL, size)); 
    
    /* Create TestMode return Packet */
    if ((pkt = (T_ETM_PKT *) target_malloc(sizeof(T_ETM_PKT))) == NULL) {
        ttw(ttr(TTrTmffs, "etm_ffs1_pkt_receive(): Limit of memory bank reached" NL)); 
        return ETM_NOMEM;
    }
 
    // Max packet size for TM3 is 128 bytes
    size = tm_ffs(pkt->data, TM3_PACKET_SIZE, data, size);

    pkt->size   = size;
    pkt->status = ETM_OK;
    pkt->mid    = ETM_FFS1;
    
    etm_pkt_send(pkt);
    target_free(pkt);

    return ETM_OK;
}

/* Callback function registered in ETM database */
int etm_ffs2_pkt_receive(uint8 *data, int size)
{
    int status;
    T_ETM_PKT *pkt = NULL;  

    ttw(ttr(TTrTmffs, "etm_ffs2_pkt_receive(*, %d)" NL, size)); 

    /* Create TestMode return Packet */
    if ((pkt = (T_ETM_PKT *) target_malloc(sizeof(T_ETM_PKT))) == NULL) {
        ttw(ttr(TTrTmffs, "etm_ffs2_pkt_receive(): Limit of memory bank reached" NL)); 
        return ETM_NOMEM;
    } 
    
    status = etm_ffs2(pkt, data, size);
    return status;
}

/* Init of FFS in the ETM database */
int etm_ffs_init(void)
{
    int status;
    
    status = etm_register("FFS1", ETM_FFS1, 0, 0, etm_ffs1_pkt_receive);
    status = etm_register("FFS2", ETM_FFS2, 0, 0, etm_ffs2_pkt_receive);
    return status;
} 
#endif // (TARGET == 1)

/******************************************************************************
 * FFS1 Protocol 
 ******************************************************************************/

#ifndef TMFFS1 

int tm_ffs(unsigned char *outp, int outsize, unsigned char *inp, int insize)
{
	return -1;   // FIXME handle error better 
}

// Note these functions must be presented because ffs_query() use them but
// they are only valid if FFS1_PROTOCOL is used.
int tmffs_bufsize(void)
{
    return EFFS_NOSYS;
}

unsigned char *tmffs_bufaddr(void)
{
    return 0;
}

#else

#define TMFFS1_BUFFER_SIZE 8192 

#define TMFFS1_STRING_SIZE 127

/******************************************************************************
 * Macros
 ******************************************************************************/

#define tmffs1_putdata(outp, src, size) \
    tmffs_put8(FPI_DATA); \
    tmffs_put16(size); \
    memcpy(outp, src, size); \
    outp += size;

/******************************************************************************
 * Local globals
 ******************************************************************************/

static unsigned char buffer[TMFFS1_BUFFER_SIZE];
static bufindex;

static char string[TMFFS1_STRING_SIZE];

static effs_t tm_ffs_overflowck(void)
{
    if (bufsize    > TMFFS1_BUFFER_SIZE ||
        stringsize > TMFFS1_STRING_SIZE)
        return EFFS_TOOBIG;

    return EFFS_OK;
}


/******************************************************************************
 * tm_ffs
 ******************************************************************************/

/**
 * NOTEME: This has been introduced when the ffs 1MB device limit was
 * broken. This made location_t go from uint16 to uint32, messing up
 * with PCTM.  
 *
 * This makes the xstat_s look the same to PCTM PC side, though
 * location will be forced to 0.
 */
void hack_xstat_2_look_like_old_xstat(struct xstat_s *xstat)
{
  int i;
  char *location;

  xstat->location = 0;
  
  for (location = (char *) &(xstat->location) + 2; location <= (char *) &(xstat->sequence); location++)
    *location = location[2];
}

// Parse input message and execute function. Then fill output buffer with
// return values from the called function and transmit the message.  Return
// number of bytes inserted into output buffer. If return value is negative,
// it represents an error code.
int tm_ffs(unsigned char *outp, int outsize, unsigned char *inp, int insize)
{
    int error;
    tmffs_cid_t fid;

    unsigned char *outp_start = outp;
    unsigned char *inp_start  = inp;

    static uint8   i8[2]; static uint16 i8i;
    static uint16 i16[2]; static uint16 i16i;
    static uint32 i32[2]; static uint16 i32i;

    tw(tr(TR_BEGIN, TrTmffs, "TMFFS:\n"));

    while((fid = *inp++) != FPI_END)
    {
        switch(fid)
        {
            /**********************************************************
             * Generic Protocol Functions
             **********************************************************/

        case FPI_BEGIN:
            // for (i8i = 0; i8i < TMFFS1_STRING_SIZE; i8i++) // DEBUG
            //     string[i8i] = '#';
            // for (i8i = 0; i8i < TMFFS1_BUFFER_SIZE; i8i++) // DEBUG
            //     buffer[i8i] = '$';
            i8i = i16i = i32i = bufsize = stringsize = 0;
            bufindex = 0;
             i8[0] =  i8[1] = 0;
            i16[0] = i16[1] = 0;
            i32[0] = i32[1] = 0;
            string[0] = buffer[0] = 0;
            tw(tr(TR_FUNC, TrTmffs, "FPI_BEGIN\n"));
            ttw(ttr(TTrTmffs, "tm1" NL));
            break;
        case FPI_TMFFS_VERSION:
            // NULL -> UINT16
            tmffs_put16(TMFFS1_VERSION);
            break;

        case FPI_INT8:
            i8[i8i++] = inp[0]; inp += 1;
            tw(tr(TR_FUNC, TrTmffs, "FPI_INT8(%d/0x%x)\n",
                  i8[i8i-1], i8[i8i-1]));
            ttw(ttr(TTrTmffs, "tm_i8" NL));
            break;
        case FPI_INT16:
            i16[i16i++] = (inp[0]) | (inp[1] << 8); inp += 2;
            tw(tr(TR_FUNC, TrTmffs, "FPI_INT16(%d/0x%x)\n",
                  i16[i16i-1], i16[i16i-1]));
            ttw(ttr(TTrTmffs, "tm_i16" NL));
            break;
        case FPI_INT32:
            i32[i32i++] = inp[0] | (inp[1] << 8)
                | (inp[2] << 16) | (inp[3] << 24);
            inp += 4;
            tw(tr(TR_FUNC, TrTmffs, "FPI_INT32(%d/0x%x)\n",
                  i32[i32i-1], i32[i32i-1]));
            ttw(ttr(TTrTmffs, "tm_i32" NL));
            break;
        case FPI_BUFFER:
            bufsize = inp[0] | (inp[1] << 8); inp += 2;
            tw(tr(TR_FUNC, TrTmffs, "FPI_BUFFER(%d)\n", bufsize));
            ttw(ttr(TTrTmffs, "tm_buf" NL));
            break;
        case FPI_DATA:
            bufsize = inp[0] | (inp[1] << 8); inp += 2;
            memcpy(buffer, inp, bufsize); inp += bufsize;
            tw(tr(TR_FUNC, TrTmffs, "FPI_DATA(%d)\n", bufsize));
            ttw(ttr(TTrTmffs, "tm_data" NL));
            break;
        case FPI_STRBUF:
            // string buffer size MUST include null-terminator!
            stringsize = inp[0]; inp += 1;
            tw(tr(TR_FUNC, TrTmffs, "FPI_STRBUF(%d)\n", stringsize));
            ttw(ttr(TTrTmffs, "tm_sbuf" NL));
            break;
        case FPI_STRING:
            // stringsize MUST include null-terminator!
            // <INT8>, <BYTES> -> NULL (or ERROR)
            stringsize = inp[0]; inp += 1;
            if (stringsize <= TMFFS1_STRING_SIZE)
                memcpy(string, inp, stringsize);
            inp += stringsize;
            tw(tr(TR_FUNC, TrTmffs, "FPI_STRING(%d,'%s')\n",
                  stringsize, string));
            ttw(ttr(TTrTmffs, "tm_s" NL));
            break;

        case FPI_BUFREAD:
            // <INT16> -> DATA
            tmpsize = inp[0] | (inp[1] << 8); inp += 2;
            tw(tr(TR_FUNC, TrTmffs, "FPI_BUF_READ(%d)\n", tmpsize));
            tmffs1_putdata(outp, &buffer[bufindex], tmpsize);
            bufindex += tmpsize;
            ttw(ttr(TTrTmffs, "tm_bufrd" NL));
            break;
        case FPI_BUFWRITE:
            // <INT16>, <BYTES> -> NULL (or ERROR)
            tmpsize = inp[0] | (inp[1] << 8); inp += 2;
            tw(tr(TR_FUNC, TrTmffs, "FPI_BUF_WRITE(%d)\n", tmpsize));
            if (bufsize + tmpsize <= TMFFS1_BUFFER_SIZE)
                memcpy(&buffer[bufsize], inp, tmpsize);
            inp += tmpsize;
            bufsize += tmpsize;
            ttw(ttr(TTrTmffs, "tm_bufwr" NL));
            break;
        case FPI_BUFSET:
            bufindex = inp[0] | (inp[1] << 8); inp += 2;
            tw(tr(TR_FUNC, TrTmffs, "FPI_BUF_SET(%d)\n", bufindex));
            ttw(ttr(TTrTmffs, "tm_bufset" NL));
            break;

            /**********************************************************
             * FFS Functions
             **********************************************************/

        case FPI_PREFORMAT:
            // NULL -> ERROR
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_preformat_nb(i16[0], 0);
            if (error > 0) 
                error = 0;  // ignore request id
            tmffs_put8(error);
            tw(tr(TR_FUNC, TrTmffs, "FPI_PREFORMAT(0x%x)\n", i16[0]));
            ttw(ttr(TTrTmffs, "tm_pfmt" NL));
            break;
        case FPI_FORMAT:
            // STRING -> ERROR
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_format_nb(&string[0], i16[0], 0);
            if (error > 0) 
                error = 0;  // ignore request id
            tmffs_put8(error);
            tw(tr(TR_FUNC, TrTmffs, "FPI_FORMAT(0x%x)\n", i16[0]));
            ttw(ttr(TTrTmffs, "tm_fmt" NL));
            break;


        case FPI_FCREATE:
            // STRING, DATA -> ERROR
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_file_write_nb(string, buffer, bufsize, 
                                          FFS_O_CREATE | FFS_O_EXCL, 0);
            if (error > 0) 
                error = 0;  // ignore request id
            tmffs_put8(error);
            tw(tr(TR_FUNC, TrTmffs, "FPI_FCREATE('%s', 0x%x, %d/0x%x)\n",
                  string, buffer, bufsize, bufsize));
            ttw(ttr(TTrTmffs, "tm_fcr" NL));
            break;
        case FPI_FUPDATE:
            // STRING, DATA -> ERROR
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_file_write_nb(string, buffer, bufsize, FFS_O_TRUNC, 0);
            if (error > 0) 
                error = 0;  // ignore request id
            tmffs_put8(error);
            tw(tr(TR_FUNC, TrTmffs, "FPI_FUPDATE('%s', 0x%x, %d/0x%x)\n",
                  string, buffer, bufsize, bufsize));
            ttw(ttr(TTrTmffs, "tm_fup" NL));
            break;
        case FPI_FWRITE:
            // STRING, DATA -> ERROR
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_file_write_nb(string, buffer, bufsize, 
                                      FFS_O_CREATE | FFS_O_TRUNC, 0);
            if (error > 0) 
                error = 0;  // ignore request id
            tmffs_put8(error);
            tw(tr(TR_FUNC, TrTmffs, "FPI_FWRITE('%s', 0x%x, %d/0x%x)\n",
                  string, buffer, bufsize, bufsize));
            ttw(ttr(TTrTmffs, "tm_fwr" NL));
            break;
        case FPI_FREAD:
            // STRING, BUFFER -> ERROR
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_file_read(string, buffer, TMFFS1_BUFFER_SIZE);
            // Because a 32-bit integer is returned, we have to saturate it
            // into an 8-bit value.
            if (error >= 0)
                error = 0;
            tmffs_put8(error);
            tw(tr(TR_FUNC, TrTmffs, "FPI_FREAD('%s', 0x%x, %d/0x%x)\n",
                  string, buffer, bufsize, bufsize));
            ttw(ttr(TTrTmffs, "tm_frd" NL));
            break;
        case FPI_REMOVE:
            // STRING -> ERROR
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_remove_nb(string, 0);
            if (error > 0) 
                error = 0;  // ignore request id
            tmffs_put8(error);
            tw(tr(TR_FUNC, TrTmffs, "FPI_REMOVE()\n"));
            ttw(ttr(TTrTmffs, "tm_rm" NL));
            break;


        case FPI_MKDIR:
            // STRING -> ERROR
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_mkdir_nb(string, 0);
            if (error > 0) 
                error = 0;  // ignore request id
            tmffs_put8(error);
            tw(tr(TR_FUNC, TrTmffs, "FPI_MKDIR()\n"));
            ttw(ttr(TTrTmffs, "tm_mkd" NL));
            break;
        case FPI_OPENDIR:
            // STRING, BUFFER -> ERROR, DATA
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_opendir(string, (struct dir_s *) buffer);
            // Because a 32-bit integer is returned, we have to saturate it
            // into an 8-bit value.
            if (error >= 0)
                error = 0;
            tmffs_put8(error);
            tmffs1_putdata(outp, buffer, sizeof(struct dir_s));
            tw(tr(TR_FUNC, TrTmffs, "FPI_OPENDIR()\n"));
            ttw(ttr(TTrTmffs, "tm_od" NL));
            break;
        case FPI_READDIR:
            // DATA, STRBUF -> ERROR, DATA, STRING
            string[0] = 0;
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_readdir((struct dir_s *) buffer, string, stringsize);

			// Saturate error(i) in order to let it fit in type int8.
			if (error > 127)
				error = 127;
            tmffs_put8(error);
            tmffs1_putdata(outp, buffer, sizeof(struct dir_s));
            stringsize = strlen(string) + 1;
            tmffs_put8(FPI_STRING); // put directory entry's name...
            tmffs_put8(stringsize);
            memcpy(outp, string, stringsize);
            outp += stringsize;
            tw(tr(TR_FUNC, TrTmffs, "FPI_READDIR()\n"));
            ttw(ttr(TTrTmffs, "tm_rdd" NL));
            break;


        case FPI_STAT:
            // STRING, BUFFER -> ERROR, DATA 
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_stat(&string[0], (struct stat_s *) buffer);
            tmffs_put8(error);
            tmffs1_putdata(outp, buffer, sizeof(struct stat_s));
            tw(tr(TR_FUNC, TrTmffs, "FPI_STAT()\n"));
            ttw(ttr(TTrTmffs, "tm_st" NL));
            break;
        case FPI_LINKSTAT:
            // STRING, BUFFER -> ERROR, DATA
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_xlstat(&string[0], (struct xstat_s *) buffer);
            tmffs_put8(error);

            hack_xstat_2_look_like_old_xstat((struct xstat_s *) buffer);

            tmffs1_putdata(outp, buffer, sizeof(struct xstat_s) - 2);
            tw(tr(TR_FUNC, TrTmffs, "FPI_()\n"));
            ttw(ttr(TTrTmffs, "tm_lst" NL));
            break;


        case FPI_SYMLINK:
            // STRING, DATA -> ERROR
            if ((error = tm_ffs_overflowck()) == EFFS_OK)
                error = ffs_symlink_nb(string, (char *) buffer, 0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产中文字幕| 国产亚洲成aⅴ人片在线观看 | 日韩欧美在线1卡| 久久婷婷成人综合色| 久久免费国产精品| 亚洲不卡av一区二区三区| 国产69精品久久久久777| 在线观看亚洲精品| 久久久777精品电影网影网 | 精品女同一区二区| 亚洲午夜免费电影| 国产伦精品一区二区三区视频青涩| 久久99精品久久只有精品| 色哟哟欧美精品| 国产精品视频一二三区| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美中文字幕一区二区三区| 国产欧美一区二区精品久导航 | 亚洲伦理在线免费看| 欧美三级蜜桃2在线观看| 精品剧情v国产在线观看在线| av动漫一区二区| 亚洲一区二区三区在线看| 亚洲精品免费一二三区| 人人爽香蕉精品| 久久国产精品72免费观看| av电影在线观看一区| 欧美一区2区视频在线观看| 中文字幕av不卡| 婷婷久久综合九色国产成人| 精品一区二区三区免费毛片爱| 国内精品久久久久影院薰衣草| 色94色欧美sute亚洲线路一ni | 天使萌一区二区三区免费观看| 韩日av一区二区| 男人的天堂亚洲一区| 国产一区二区不卡在线| 99久久免费国产| 久久午夜国产精品| 亚洲美女一区二区三区| 国产成人免费视频精品含羞草妖精| 欧美影视一区在线| 欧美一卡二卡在线| 亚洲国产精品视频| 波波电影院一区二区三区| 日韩欧美三级在线| 亚洲午夜国产一区99re久久| 国产一区二区三区国产| 这里只有精品电影| 一区二区三区四区视频精品免费| 成人中文字幕合集| 久久女同精品一区二区| 一区二区三区中文字幕精品精品 | 欧美一区二区三区四区视频| 日韩视频免费直播| 亚洲激情第一区| 国产经典欧美精品| 一本一本大道香蕉久在线精品 | 久久综合久久综合九色| 蜜桃一区二区三区在线观看| 欧美这里有精品| 一区在线播放视频| 丰满亚洲少妇av| 欧美一区二区人人喊爽| 日韩一区二区三区四区| 日韩av午夜在线观看| 欧洲av一区二区嗯嗯嗯啊| 91麻豆精品国产无毒不卡在线观看| 2020日本不卡一区二区视频| 日韩精品成人一区二区在线| 色婷婷精品久久二区二区蜜臀av | 91麻豆精品在线观看| 国产精品私房写真福利视频| 国产成人av福利| 国产三级欧美三级| 国产精品自拍在线| 国产日韩欧美麻豆| 成人性生交大合| 国产日韩精品一区二区三区| 丁香婷婷综合激情五月色| 国产日产欧美精品一区二区三区| 国产福利91精品一区二区三区| 久久久高清一区二区三区| 大桥未久av一区二区三区中文| 国产精品久久久久三级| 一道本成人在线| 午夜私人影院久久久久| 精品视频免费在线| 亚洲欧洲综合另类在线| 国产欧美久久久精品影院| 免费成人性网站| 精品久久久久久久久久久久包黑料 | 亚洲一区二区欧美| 欧美日韩成人激情| 精品中文字幕一区二区小辣椒| 久久久久综合网| 99热精品国产| 亚洲国产精品一区二区久久| 欧美mv和日韩mv的网站| 国产69精品久久久久毛片| 综合欧美亚洲日本| 欧美日韩国产大片| 国产呦萝稀缺另类资源| 亚洲欧美日韩久久| 日韩一级片在线观看| 国产一区二区三区黄视频| 亚洲色图视频网站| 日韩免费高清av| 高潮精品一区videoshd| 亚洲一二三区视频在线观看| 欧美日韩久久一区二区| 日韩电影在线观看网站| 日韩美一区二区三区| 一区二区三区在线视频观看| 这里是久久伊人| 99re成人在线| 国产在线视频精品一区| 亚洲欧美在线视频| 91精品婷婷国产综合久久性色| 国产成人在线看| 日韩经典中文字幕一区| 中文字幕高清一区| 精品国产人成亚洲区| 色噜噜狠狠成人中文综合| 国产精品69毛片高清亚洲| 1000部国产精品成人观看| 日韩精品一区二区三区在线播放 | 国产欧美精品一区| 97se亚洲国产综合在线| 亚洲国产精品久久人人爱| 中文字幕一区二区三区视频| 欧美日韩激情一区二区| 狠狠色综合播放一区二区| 亚洲男人的天堂在线观看| 日韩精品影音先锋| www.久久精品| 懂色一区二区三区免费观看 | 欧美日韩中文字幕一区| 成人午夜碰碰视频| 久久国产免费看| 蜜桃一区二区三区在线| 日韩在线观看一区二区| 亚洲成年人网站在线观看| 亚洲精品国久久99热| 国产精品国产三级国产普通话99 | 成人黄色电影在线 | 国产精品每日更新在线播放网址 | 亚洲综合免费观看高清在线观看| 亚洲女同ⅹxx女同tv| 亚洲视频小说图片| 国产精品国产三级国产有无不卡| 国产精品天天摸av网| 国产日韩精品一区二区浪潮av| 国产午夜精品一区二区三区嫩草| 久久综合色8888| 久久久久国产精品免费免费搜索| 亚洲精品一线二线三线| 久久男人中文字幕资源站| 久久午夜老司机| 国产精品久久久久三级| 亚洲婷婷综合色高清在线| 夜夜揉揉日日人人青青一国产精品| 国产精品无圣光一区二区| 国产精品狼人久久影院观看方式| 国产精品日日摸夜夜摸av| 在线电影欧美成精品| 欧美日韩一级视频| 欧美本精品男人aⅴ天堂| 精品国产一区二区三区四区四 | 久久众筹精品私拍模特| 国产精品女主播av| 一区二区三区四区在线播放| 天天av天天翘天天综合网 | 国产一区二区在线看| 国产a视频精品免费观看| 91亚洲精品久久久蜜桃| 欧美日韩综合在线| www国产成人| 亚洲精品乱码久久久久久日本蜜臀| 伊人开心综合网| 日本三级亚洲精品| 东方欧美亚洲色图在线| 激情六月婷婷久久| 成人性生交大合| 成人午夜激情影院| 久久99精品久久久久久久久久久久| 视频在线观看91| 激情综合网av| 99久久精品国产麻豆演员表| 欧美日韩国产大片| 国产欧美va欧美不卡在线| 亚洲一卡二卡三卡四卡五卡| 国产在线精品国自产拍免费| 色婷婷综合久久久久中文| 日韩情涩欧美日韩视频| 亚洲三级免费电影| 麻豆精品在线观看| 捆绑变态av一区二区三区| 国产成人av在线影院| 色综合天天做天天爱|