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

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

?? openpic.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * OpenPIC emulation * * Copyright (c) 2004 Jocelyn Mayer * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. *//* * * Based on OpenPic implementations: * - Intel GW80314 I/O compagnion chip developper's manual * - Motorola MPC8245 & MPC8540 user manuals. * - Motorola MCP750 (aka Raven) programmer manual. * - Motorola Harrier programmer manuel * * Serial interrupts, as implemented in Raven chipset are not supported yet. * */#include "hw.h"#include "ppc_mac.h"#include "pci.h"//#define DEBUG_OPENPIC#ifdef DEBUG_OPENPIC#define DPRINTF(fmt, args...) do { printf(fmt , ##args); } while (0)#else#define DPRINTF(fmt, args...) do { } while (0)#endif#define ERROR(fmr, args...) do { printf("ERROR: " fmr , ##args); } while (0)#define USE_MPCxxx /* Intel model is broken, for now */#if defined (USE_INTEL_GW80314)/* Intel GW80314 I/O Companion chip */#define MAX_CPU     4#define MAX_IRQ    32#define MAX_DBL     4#define MAX_MBX     4#define MAX_TMR     4#define VECTOR_BITS 8#define MAX_IPI     0#define VID (0x00000000)#define OPENPIC_LITTLE_ENDIAN 1#define OPENPIC_BIG_ENDIAN    0#elif defined(USE_MPCxxx)#define MAX_CPU     2#define MAX_IRQ    64#define EXT_IRQ    48#define MAX_DBL     0#define MAX_MBX     0#define MAX_TMR     4#define VECTOR_BITS 8#define MAX_IPI     4#define VID         0x03 /* MPIC version ID */#define VENI        0x00000000 /* Vendor ID */enum {    IRQ_IPVP = 0,    IRQ_IDE,};#define OPENPIC_LITTLE_ENDIAN 1#define OPENPIC_BIG_ENDIAN    0#else#error "Please select which OpenPic implementation is to be emulated"#endif#if (OPENPIC_BIG_ENDIAN && !TARGET_WORDS_BIGENDIAN) || \    (OPENPIC_LITTLE_ENDIAN && TARGET_WORDS_BIGENDIAN)#define OPENPIC_SWAP#endif/* Interrupt definitions */#define IRQ_FE     (EXT_IRQ)     /* Internal functional IRQ */#define IRQ_ERR    (EXT_IRQ + 1) /* Error IRQ */#define IRQ_TIM0   (EXT_IRQ + 2) /* First timer IRQ */#if MAX_IPI > 0#define IRQ_IPI0   (IRQ_TIM0 + MAX_TMR) /* First IPI IRQ */#define IRQ_DBL0   (IRQ_IPI0 + (MAX_CPU * MAX_IPI)) /* First doorbell IRQ */#else#define IRQ_DBL0   (IRQ_TIM0 + MAX_TMR) /* First doorbell IRQ */#define IRQ_MBX0   (IRQ_DBL0 + MAX_DBL) /* First mailbox IRQ */#endif#define BF_WIDTH(_bits_) \(((_bits_) + (sizeof(uint32_t) * 8) - 1) / (sizeof(uint32_t) * 8))static inline void set_bit (uint32_t *field, int bit){    field[bit >> 5] |= 1 << (bit & 0x1F);}static inline void reset_bit (uint32_t *field, int bit){    field[bit >> 5] &= ~(1 << (bit & 0x1F));}static inline int test_bit (uint32_t *field, int bit){    return (field[bit >> 5] & 1 << (bit & 0x1F)) != 0;}enum {    IRQ_EXTERNAL = 0x01,    IRQ_INTERNAL = 0x02,    IRQ_TIMER    = 0x04,    IRQ_SPECIAL  = 0x08,} IRQ_src_type;typedef struct IRQ_queue_t {    uint32_t queue[BF_WIDTH(MAX_IRQ)];    int next;    int priority;} IRQ_queue_t;typedef struct IRQ_src_t {    uint32_t ipvp;  /* IRQ vector/priority register */    uint32_t ide;   /* IRQ destination register */    int type;    int last_cpu;    int pending;    /* TRUE if IRQ is pending */} IRQ_src_t;enum IPVP_bits {    IPVP_MASK     = 31,    IPVP_ACTIVITY = 30,    IPVP_MODE     = 29,    IPVP_POLARITY = 23,    IPVP_SENSE    = 22,};#define IPVP_PRIORITY_MASK     (0x1F << 16)#define IPVP_PRIORITY(_ipvpr_) ((int)(((_ipvpr_) & IPVP_PRIORITY_MASK) >> 16))#define IPVP_VECTOR_MASK       ((1 << VECTOR_BITS) - 1)#define IPVP_VECTOR(_ipvpr_)   ((_ipvpr_) & IPVP_VECTOR_MASK)typedef struct IRQ_dst_t {    uint32_t pctp; /* CPU current task priority */    uint32_t pcsr; /* CPU sensitivity register */    IRQ_queue_t raised;    IRQ_queue_t servicing;    qemu_irq *irqs;} IRQ_dst_t;typedef struct openpic_t {    PCIDevice pci_dev;    int mem_index;    /* Global registers */    uint32_t frep; /* Feature reporting register */    uint32_t glbc; /* Global configuration register  */    uint32_t micr; /* MPIC interrupt configuration register */    uint32_t veni; /* Vendor identification register */    uint32_t pint; /* Processor initialization register */    uint32_t spve; /* Spurious vector register */    uint32_t tifr; /* Timer frequency reporting register */    /* Source registers */    IRQ_src_t src[MAX_IRQ];    /* Local registers per output pin */    IRQ_dst_t dst[MAX_CPU];    int nb_cpus;    /* Timer registers */    struct {	uint32_t ticc;  /* Global timer current count register */	uint32_t tibc;  /* Global timer base count register */    } timers[MAX_TMR];#if MAX_DBL > 0    /* Doorbell registers */    uint32_t dar;        /* Doorbell activate register */    struct {	uint32_t dmr;    /* Doorbell messaging register */    } doorbells[MAX_DBL];#endif#if MAX_MBX > 0    /* Mailbox registers */    struct {	uint32_t mbr;    /* Mailbox register */    } mailboxes[MAX_MAILBOXES];#endif    /* IRQ out is used when in bypass mode (not implemented) */    qemu_irq irq_out;} openpic_t;static inline void IRQ_setbit (IRQ_queue_t *q, int n_IRQ){    set_bit(q->queue, n_IRQ);}static inline void IRQ_resetbit (IRQ_queue_t *q, int n_IRQ){    reset_bit(q->queue, n_IRQ);}static inline int IRQ_testbit (IRQ_queue_t *q, int n_IRQ){    return test_bit(q->queue, n_IRQ);}static void IRQ_check (openpic_t *opp, IRQ_queue_t *q){    int next, i;    int priority;    next = -1;    priority = -1;    for (i = 0; i < MAX_IRQ; i++) {	if (IRQ_testbit(q, i)) {            DPRINTF("IRQ_check: irq %d set ipvp_pr=%d pr=%d\n",                    i, IPVP_PRIORITY(opp->src[i].ipvp), priority);	    if (IPVP_PRIORITY(opp->src[i].ipvp) > priority) {		next = i;		priority = IPVP_PRIORITY(opp->src[i].ipvp);	    }	}    }    q->next = next;    q->priority = priority;}static int IRQ_get_next (openpic_t *opp, IRQ_queue_t *q){    if (q->next == -1) {        /* XXX: optimize */	IRQ_check(opp, q);    }    return q->next;}static void IRQ_local_pipe (openpic_t *opp, int n_CPU, int n_IRQ){    IRQ_dst_t *dst;    IRQ_src_t *src;    int priority;    dst = &opp->dst[n_CPU];    src = &opp->src[n_IRQ];    priority = IPVP_PRIORITY(src->ipvp);    if (priority <= dst->pctp) {	/* Too low priority */        DPRINTF("%s: IRQ %d has too low priority on CPU %d\n",                __func__, n_IRQ, n_CPU);	return;    }    if (IRQ_testbit(&dst->raised, n_IRQ)) {	/* Interrupt miss */        DPRINTF("%s: IRQ %d was missed on CPU %d\n",                __func__, n_IRQ, n_CPU);	return;    }    set_bit(&src->ipvp, IPVP_ACTIVITY);    IRQ_setbit(&dst->raised, n_IRQ);    if (priority < dst->raised.priority) {        /* An higher priority IRQ is already raised */        DPRINTF("%s: IRQ %d is hidden by raised IRQ %d on CPU %d\n",                __func__, n_IRQ, dst->raised.next, n_CPU);        return;    }    IRQ_get_next(opp, &dst->raised);    if (IRQ_get_next(opp, &dst->servicing) != -1 &&        priority < dst->servicing.priority) {        DPRINTF("%s: IRQ %d is hidden by servicing IRQ %d on CPU %d\n",                __func__, n_IRQ, dst->servicing.next, n_CPU);        /* Already servicing a higher priority IRQ */        return;    }    DPRINTF("Raise OpenPIC INT output cpu %d irq %d\n", n_CPU, n_IRQ);    qemu_irq_raise(dst->irqs[OPENPIC_OUTPUT_INT]);}/* update pic state because registers for n_IRQ have changed value */static void openpic_update_irq(openpic_t *opp, int n_IRQ){    IRQ_src_t *src;    int i;    src = &opp->src[n_IRQ];    if (!src->pending) {        /* no irq pending */        DPRINTF("%s: IRQ %d is not pending\n", __func__, n_IRQ);        return;    }    if (test_bit(&src->ipvp, IPVP_MASK)) {	/* Interrupt source is disabled */        DPRINTF("%s: IRQ %d is disabled\n", __func__, n_IRQ);	return;    }    if (IPVP_PRIORITY(src->ipvp) == 0) {	/* Priority set to zero */        DPRINTF("%s: IRQ %d has 0 priority\n", __func__, n_IRQ);	return;    }    if (test_bit(&src->ipvp, IPVP_ACTIVITY)) {        /* IRQ already active */        DPRINTF("%s: IRQ %d is already active\n", __func__, n_IRQ);        return;    }    if (src->ide == 0x00000000) {	/* No target */        DPRINTF("%s: IRQ %d has no target\n", __func__, n_IRQ);	return;    }    if (src->ide == (1 << src->last_cpu)) {        /* Only one CPU is allowed to receive this IRQ */        IRQ_local_pipe(opp, src->last_cpu, n_IRQ);    } else if (!test_bit(&src->ipvp, IPVP_MODE)) {        /* Directed delivery mode */        for (i = 0; i < opp->nb_cpus; i++) {            if (test_bit(&src->ide, i))                IRQ_local_pipe(opp, i, n_IRQ);        }    } else {        /* Distributed delivery mode */        for (i = src->last_cpu + 1; i != src->last_cpu; i++) {            if (i == opp->nb_cpus)                i = 0;            if (test_bit(&src->ide, i)) {                IRQ_local_pipe(opp, i, n_IRQ);                src->last_cpu = i;                break;            }        }    }}static void openpic_set_irq(void *opaque, int n_IRQ, int level){    openpic_t *opp = opaque;    IRQ_src_t *src;    src = &opp->src[n_IRQ];    DPRINTF("openpic: set irq %d = %d ipvp=%08x\n",            n_IRQ, level, src->ipvp);    if (test_bit(&src->ipvp, IPVP_SENSE)) {        /* level-sensitive irq */        src->pending = level;        if (!level)            reset_bit(&src->ipvp, IPVP_ACTIVITY);    } else {        /* edge-sensitive irq */        if (level)            src->pending = 1;    }    openpic_update_irq(opp, n_IRQ);}static void openpic_reset (openpic_t *opp){    int i;    opp->glbc = 0x80000000;    /* Initialise controller registers */    opp->frep = ((EXT_IRQ - 1) << 16) | ((MAX_CPU - 1) << 8) | VID;    opp->veni = VENI;    opp->pint = 0x00000000;    opp->spve = 0x000000FF;    opp->tifr = 0x003F7A00;    /* ? */    opp->micr = 0x00000000;    /* Initialise IRQ sources */    for (i = 0; i < MAX_IRQ; i++) {	opp->src[i].ipvp = 0xA0000000;	opp->src[i].ide  = 0x00000000;    }    /* Initialise IRQ destinations */    for (i = 0; i < MAX_CPU; i++) {	opp->dst[i].pctp      = 0x0000000F;	opp->dst[i].pcsr      = 0x00000000;	memset(&opp->dst[i].raised, 0, sizeof(IRQ_queue_t));	memset(&opp->dst[i].servicing, 0, sizeof(IRQ_queue_t));    }    /* Initialise timers */    for (i = 0; i < MAX_TMR; i++) {	opp->timers[i].ticc = 0x00000000;	opp->timers[i].tibc = 0x80000000;    }    /* Initialise doorbells */#if MAX_DBL > 0    opp->dar = 0x00000000;    for (i = 0; i < MAX_DBL; i++) {	opp->doorbells[i].dmr  = 0x00000000;    }#endif    /* Initialise mailboxes */#if MAX_MBX > 0    for (i = 0; i < MAX_MBX; i++) { /* ? */	opp->mailboxes[i].mbr   = 0x00000000;    }#endif    /* Go out of RESET state */    opp->glbc = 0x00000000;}static inline uint32_t read_IRQreg (openpic_t *opp, int n_IRQ, uint32_t reg){    uint32_t retval;    switch (reg) {    case IRQ_IPVP:	retval = opp->src[n_IRQ].ipvp;	break;    case IRQ_IDE:	retval = opp->src[n_IRQ].ide;	break;    }    return retval;}static inline void write_IRQreg (openpic_t *opp, int n_IRQ,                                 uint32_t reg, uint32_t val){    uint32_t tmp;    switch (reg) {    case IRQ_IPVP:        /* NOTE: not fully accurate for special IRQs, but simple and           sufficient */        /* ACTIVITY bit is read-only */	opp->src[n_IRQ].ipvp =            (opp->src[n_IRQ].ipvp & 0x40000000) |            (val & 0x800F00FF);        openpic_update_irq(opp, n_IRQ);        DPRINTF("Set IPVP %d to 0x%08x -> 0x%08x\n",                n_IRQ, val, opp->src[n_IRQ].ipvp);	break;    case IRQ_IDE:	tmp = val & 0xC0000000;        tmp |= val & ((1 << MAX_CPU) - 1);	opp->src[n_IRQ].ide = tmp;        DPRINTF("Set IDE %d to 0x%08x\n", n_IRQ, opp->src[n_IRQ].ide);	break;    }}#if 0 // Code provision for Intel model#if MAX_DBL > 0static uint32_t read_doorbell_register (openpic_t *opp,					int n_dbl, uint32_t offset){    uint32_t retval;    switch (offset) {    case DBL_IPVP_OFFSET:	retval = read_IRQreg(opp, IRQ_DBL0 + n_dbl, IRQ_IPVP);	break;    case DBL_IDE_OFFSET:	retval = read_IRQreg(opp, IRQ_DBL0 + n_dbl, IRQ_IDE);	break;    case DBL_DMR_OFFSET:	retval = opp->doorbells[n_dbl].dmr;	break;    }    return retval;}static void write_doorbell_register (penpic_t *opp, int n_dbl,				     uint32_t offset, uint32_t value){    switch (offset) {    case DBL_IVPR_OFFSET:	write_IRQreg(opp, IRQ_DBL0 + n_dbl, IRQ_IPVP, value);	break;    case DBL_IDE_OFFSET:	write_IRQreg(opp, IRQ_DBL0 + n_dbl, IRQ_IDE, value);	break;    case DBL_DMR_OFFSET:	opp->doorbells[n_dbl].dmr = value;	break;    }}#endif#if MAX_MBX > 0static uint32_t read_mailbox_register (openpic_t *opp,				       int n_mbx, uint32_t offset){    uint32_t retval;    switch (offset) {    case MBX_MBR_OFFSET:	retval = opp->mailboxes[n_mbx].mbr;	break;    case MBX_IVPR_OFFSET:	retval = read_IRQreg(opp, IRQ_MBX0 + n_mbx, IRQ_IPVP);	break;    case MBX_DMR_OFFSET:	retval = read_IRQreg(opp, IRQ_MBX0 + n_mbx, IRQ_IDE);	break;    }    return retval;}static void write_mailbox_register (openpic_t *opp, int n_mbx,				    uint32_t address, uint32_t value){    switch (offset) {    case MBX_MBR_OFFSET:	opp->mailboxes[n_mbx].mbr = value;	break;    case MBX_IVPR_OFFSET:	write_IRQreg(opp, IRQ_MBX0 + n_mbx, IRQ_IPVP, value);	break;    case MBX_DMR_OFFSET:	write_IRQreg(opp, IRQ_MBX0 + n_mbx, IRQ_IDE, value);	break;    }}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线一区免费| 亚洲成人自拍偷拍| 亚洲午夜免费福利视频| 国产一区二区三区免费| 欧美日韩一区二区三区免费看| 久久这里都是精品| 亚洲1区2区3区视频| www.欧美.com| 国产三级一区二区| 日本va欧美va瓶| 在线观看不卡一区| 亚洲欧美成人一区二区三区| 国产美女精品人人做人人爽| 在线观看91av| 亚洲成a人片在线不卡一二三区| av午夜一区麻豆| 欧美国产激情一区二区三区蜜月| 日本va欧美va精品发布| 欧美日韩一区二区三区不卡| 又紧又大又爽精品一区二区| 99re视频精品| 亚洲品质自拍视频| av网站一区二区三区| 国产精品麻豆欧美日韩ww| 国产原创一区二区三区| 亚洲精品在线观看网站| 另类综合日韩欧美亚洲| 日韩一区国产二区欧美三区| 亚洲成人午夜影院| 欧美另类高清zo欧美| 亚洲国产精品久久久久婷婷884 | 久久国产剧场电影| 3atv在线一区二区三区| 日韩成人午夜精品| 欧美二区乱c少妇| 日韩av不卡一区二区| 91麻豆精品国产91| 性做久久久久久| 日韩一区二区三区高清免费看看 | 欧美精品丝袜中出| 秋霞电影网一区二区| 日韩欧美国产综合一区| 韩国av一区二区| 日本一区二区三区电影| 成人激情动漫在线观看| 亚洲图片激情小说| 欧美三级电影网| 麻豆成人综合网| 中文字幕av一区 二区| 99精品欧美一区| 午夜精品视频一区| 精品国产百合女同互慰| gogo大胆日本视频一区| 亚洲制服丝袜在线| 欧美va在线播放| 成人动漫视频在线| 亚洲6080在线| 久久久一区二区| 91麻豆免费观看| 日韩成人免费在线| 国产精品入口麻豆九色| 欧美人伦禁忌dvd放荡欲情| 国内精品写真在线观看| 亚洲男人的天堂在线观看| 欧美久久久久久久久久 | 水野朝阳av一区二区三区| 国产无遮挡一区二区三区毛片日本| a级高清视频欧美日韩| 亚洲国产va精品久久久不卡综合| 精品美女一区二区三区| 91一区在线观看| 狠狠色丁香九九婷婷综合五月| 亚洲日本一区二区三区| 精品美女在线观看| 色天天综合色天天久久| 国产一区二区三区| 午夜精品在线视频一区| 日本一区二区久久| 日韩三区在线观看| 在线观看国产91| av中文一区二区三区| 久久福利资源站| 午夜影院久久久| 亚洲欧美一区二区三区久本道91| 欧美成人三级在线| 欧美日韩综合不卡| 91麻豆国产精品久久| 国产成人精品aa毛片| 成人午夜在线免费| 日韩精品亚洲一区二区三区免费| 中文字幕一区二区三中文字幕| 欧美mv日韩mv亚洲| 欧美裸体bbwbbwbbw| 色狠狠av一区二区三区| 成人动漫精品一区二区| 国产一区二区三区免费在线观看| 蜜臀久久久99精品久久久久久| 亚洲精品你懂的| 中文字幕一区在线观看视频| 国产日韩欧美高清| 久久精品水蜜桃av综合天堂| 欧美成人艳星乳罩| 日韩欧美黄色影院| 欧美成人在线直播| 日韩视频在线观看一区二区| 欧美日韩一区二区在线观看 | 亚洲一区二区三区四区五区黄 | 成人自拍视频在线观看| 日本不卡一区二区三区| 午夜伦理一区二区| 日一区二区三区| 热久久国产精品| 免费亚洲电影在线| 日韩国产精品久久久| 亚洲成a人v欧美综合天堂| 偷拍亚洲欧洲综合| 日韩电影网1区2区| 美女脱光内衣内裤视频久久网站| 日本一不卡视频| 久久精品国产亚洲5555| 激情久久久久久久久久久久久久久久| 久久精品二区亚洲w码| 狠狠色伊人亚洲综合成人| 国产精品1区2区3区在线观看| 成人在线一区二区三区| gogogo免费视频观看亚洲一| 色偷偷成人一区二区三区91| 91久久人澡人人添人人爽欧美| 欧洲另类一二三四区| 欧美精品123区| 久久久精品中文字幕麻豆发布| 久久精品视频免费| 国产精品不卡一区| 五月天丁香久久| 国产精品一区在线观看你懂的| 成人福利电影精品一区二区在线观看| 99视频一区二区三区| 欧美理论电影在线| 久久精品一区二区三区av| 中文字幕亚洲欧美在线不卡| 亚洲国产裸拍裸体视频在线观看乱了| 男人操女人的视频在线观看欧美| 国产一区二区三区精品视频| 不卡区在线中文字幕| 欧美性大战久久久| 国产亚洲一区二区三区四区| 亚洲欧美偷拍卡通变态| 日韩在线播放一区二区| 国产激情一区二区三区桃花岛亚洲| 97超碰欧美中文字幕| 91精品国模一区二区三区| 中文字幕乱码久久午夜不卡 | 欧美一区二区三区思思人 | 精品日韩成人av| 亚洲黄色在线视频| 国内成人自拍视频| 欧美日韩一级二级| 中文字幕一区二区三区四区 | 色国产综合视频| 久久综合久久99| 亚洲国产精品尤物yw在线观看| 久久不见久久见免费视频1| 色综合久久综合网欧美综合网| 26uuu亚洲综合色欧美| 一区二区免费看| 国产成人精品一区二区三区四区 | 亚洲精品国产视频| 狠狠色狠狠色综合日日91app| 欧美性猛交xxxxxx富婆| 精品国产91久久久久久久妲己| 亚洲国产精品一区二区久久恐怖片 | 国产大片一区二区| 日韩欧美亚洲国产精品字幕久久久| 一区二区三区蜜桃| 97成人超碰视| 国产精品区一区二区三区| 青青草成人在线观看| 色88888久久久久久影院按摩| 国产视频不卡一区| 国产精品一区二区视频| 欧美一区午夜精品| 亚洲成人av一区| 欧美性猛交xxxxxx富婆| 亚洲精品视频观看| 91一区二区三区在线播放| 欧美国产成人在线| 国产99久久久精品| 久久久亚洲高清| 久久国产精品99精品国产| 正在播放亚洲一区| 日本午夜一区二区| 日韩一区二区影院| 久久精品国产精品亚洲综合| 日韩女优视频免费观看| 久久草av在线| 国产欧美精品区一区二区三区| 国产精品一二二区| 中文字幕第一区二区| 国产精品系列在线观看| 国产清纯白嫩初高生在线观看91|