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

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

?? ppc405_uc.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 5 頁
字號:
        i2c->sts &= ~(value & 0x0A);        break;    case 0x09:        i2c->extsts &= ~(value & 0x8F);        break;    case 0x0A:        i2c->lsadr = value;        break;    case 0x0B:        i2c->hsadr = value;        break;    case 0x0C:        i2c->clkdiv = value;        break;    case 0x0D:        i2c->intrmsk = value;        break;    case 0x0E:        i2c->xfrcnt = value & 0x77;        break;    case 0x0F:        i2c->xtcntlss = value;        break;    case 0x10:        i2c->directcntl = value & 0x7;        break;    }}static uint32_t ppc4xx_i2c_readw (void *opaque, target_phys_addr_t addr){    uint32_t ret;#ifdef DEBUG_I2C    printf("%s: addr " PADDRX "\n", __func__, addr);#endif    ret = ppc4xx_i2c_readb(opaque, addr) << 8;    ret |= ppc4xx_i2c_readb(opaque, addr + 1);    return ret;}static void ppc4xx_i2c_writew (void *opaque,                               target_phys_addr_t addr, uint32_t value){#ifdef DEBUG_I2C    printf("%s: addr " PADDRX " val %08" PRIx32 "\n", __func__, addr, value);#endif    ppc4xx_i2c_writeb(opaque, addr, value >> 8);    ppc4xx_i2c_writeb(opaque, addr + 1, value);}static uint32_t ppc4xx_i2c_readl (void *opaque, target_phys_addr_t addr){    uint32_t ret;#ifdef DEBUG_I2C    printf("%s: addr " PADDRX "\n", __func__, addr);#endif    ret = ppc4xx_i2c_readb(opaque, addr) << 24;    ret |= ppc4xx_i2c_readb(opaque, addr + 1) << 16;    ret |= ppc4xx_i2c_readb(opaque, addr + 2) << 8;    ret |= ppc4xx_i2c_readb(opaque, addr + 3);    return ret;}static void ppc4xx_i2c_writel (void *opaque,                               target_phys_addr_t addr, uint32_t value){#ifdef DEBUG_I2C    printf("%s: addr " PADDRX " val %08" PRIx32 "\n", __func__, addr, value);#endif    ppc4xx_i2c_writeb(opaque, addr, value >> 24);    ppc4xx_i2c_writeb(opaque, addr + 1, value >> 16);    ppc4xx_i2c_writeb(opaque, addr + 2, value >> 8);    ppc4xx_i2c_writeb(opaque, addr + 3, value);}static CPUReadMemoryFunc *i2c_read[] = {    &ppc4xx_i2c_readb,    &ppc4xx_i2c_readw,    &ppc4xx_i2c_readl,};static CPUWriteMemoryFunc *i2c_write[] = {    &ppc4xx_i2c_writeb,    &ppc4xx_i2c_writew,    &ppc4xx_i2c_writel,};static void ppc4xx_i2c_reset (void *opaque){    ppc4xx_i2c_t *i2c;    i2c = opaque;    i2c->mdata = 0x00;    i2c->sdata = 0x00;    i2c->cntl = 0x00;    i2c->mdcntl = 0x00;    i2c->sts = 0x00;    i2c->extsts = 0x00;    i2c->clkdiv = 0x00;    i2c->xfrcnt = 0x00;    i2c->directcntl = 0x0F;}void ppc405_i2c_init (CPUState *env, ppc4xx_mmio_t *mmio,                      target_phys_addr_t offset, qemu_irq irq){    ppc4xx_i2c_t *i2c;    i2c = qemu_mallocz(sizeof(ppc4xx_i2c_t));    if (i2c != NULL) {        i2c->base = offset;        i2c->irq = irq;        ppc4xx_i2c_reset(i2c);#ifdef DEBUG_I2C        printf("%s: offset " PADDRX "\n", __func__, offset);#endif        ppc4xx_mmio_register(env, mmio, offset, 0x011,                             i2c_read, i2c_write, i2c);        qemu_register_reset(ppc4xx_i2c_reset, i2c);    }}/*****************************************************************************//* General purpose timers */typedef struct ppc4xx_gpt_t ppc4xx_gpt_t;struct ppc4xx_gpt_t {    target_phys_addr_t base;    int64_t tb_offset;    uint32_t tb_freq;    struct QEMUTimer *timer;    qemu_irq irqs[5];    uint32_t oe;    uint32_t ol;    uint32_t im;    uint32_t is;    uint32_t ie;    uint32_t comp[5];    uint32_t mask[5];};static uint32_t ppc4xx_gpt_readb (void *opaque, target_phys_addr_t addr){#ifdef DEBUG_GPT    printf("%s: addr " PADDRX "\n", __func__, addr);#endif    /* XXX: generate a bus fault */    return -1;}static void ppc4xx_gpt_writeb (void *opaque,                               target_phys_addr_t addr, uint32_t value){#ifdef DEBUG_I2C    printf("%s: addr " PADDRX " val %08" PRIx32 "\n", __func__, addr, value);#endif    /* XXX: generate a bus fault */}static uint32_t ppc4xx_gpt_readw (void *opaque, target_phys_addr_t addr){#ifdef DEBUG_GPT    printf("%s: addr " PADDRX "\n", __func__, addr);#endif    /* XXX: generate a bus fault */    return -1;}static void ppc4xx_gpt_writew (void *opaque,                               target_phys_addr_t addr, uint32_t value){#ifdef DEBUG_I2C    printf("%s: addr " PADDRX " val %08" PRIx32 "\n", __func__, addr, value);#endif    /* XXX: generate a bus fault */}static int ppc4xx_gpt_compare (ppc4xx_gpt_t *gpt, int n){    /* XXX: TODO */    return 0;}static void ppc4xx_gpt_set_output (ppc4xx_gpt_t *gpt, int n, int level){    /* XXX: TODO */}static void ppc4xx_gpt_set_outputs (ppc4xx_gpt_t *gpt){    uint32_t mask;    int i;    mask = 0x80000000;    for (i = 0; i < 5; i++) {        if (gpt->oe & mask) {            /* Output is enabled */            if (ppc4xx_gpt_compare(gpt, i)) {                /* Comparison is OK */                ppc4xx_gpt_set_output(gpt, i, gpt->ol & mask);            } else {                /* Comparison is KO */                ppc4xx_gpt_set_output(gpt, i, gpt->ol & mask ? 0 : 1);            }        }        mask = mask >> 1;    }}static void ppc4xx_gpt_set_irqs (ppc4xx_gpt_t *gpt){    uint32_t mask;    int i;    mask = 0x00008000;    for (i = 0; i < 5; i++) {        if (gpt->is & gpt->im & mask)            qemu_irq_raise(gpt->irqs[i]);        else            qemu_irq_lower(gpt->irqs[i]);        mask = mask >> 1;    }}static void ppc4xx_gpt_compute_timer (ppc4xx_gpt_t *gpt){    /* XXX: TODO */}static uint32_t ppc4xx_gpt_readl (void *opaque, target_phys_addr_t addr){    ppc4xx_gpt_t *gpt;    uint32_t ret;    int idx;#ifdef DEBUG_GPT    printf("%s: addr " PADDRX "\n", __func__, addr);#endif    gpt = opaque;    switch (addr - gpt->base) {    case 0x00:        /* Time base counter */        ret = muldiv64(qemu_get_clock(vm_clock) + gpt->tb_offset,                       gpt->tb_freq, ticks_per_sec);        break;    case 0x10:        /* Output enable */        ret = gpt->oe;        break;    case 0x14:        /* Output level */        ret = gpt->ol;        break;    case 0x18:        /* Interrupt mask */        ret = gpt->im;        break;    case 0x1C:    case 0x20:        /* Interrupt status */        ret = gpt->is;        break;    case 0x24:        /* Interrupt enable */        ret = gpt->ie;        break;    case 0x80 ... 0x90:        /* Compare timer */        idx = ((addr - gpt->base) - 0x80) >> 2;        ret = gpt->comp[idx];        break;    case 0xC0 ... 0xD0:        /* Compare mask */        idx = ((addr - gpt->base) - 0xC0) >> 2;        ret = gpt->mask[idx];        break;    default:        ret = -1;        break;    }    return ret;}static void ppc4xx_gpt_writel (void *opaque,                               target_phys_addr_t addr, uint32_t value){    ppc4xx_gpt_t *gpt;    int idx;#ifdef DEBUG_I2C    printf("%s: addr " PADDRX " val %08" PRIx32 "\n", __func__, addr, value);#endif    gpt = opaque;    switch (addr - gpt->base) {    case 0x00:        /* Time base counter */        gpt->tb_offset = muldiv64(value, ticks_per_sec, gpt->tb_freq)            - qemu_get_clock(vm_clock);        ppc4xx_gpt_compute_timer(gpt);        break;    case 0x10:        /* Output enable */        gpt->oe = value & 0xF8000000;        ppc4xx_gpt_set_outputs(gpt);        break;    case 0x14:        /* Output level */        gpt->ol = value & 0xF8000000;        ppc4xx_gpt_set_outputs(gpt);        break;    case 0x18:        /* Interrupt mask */        gpt->im = value & 0x0000F800;        break;    case 0x1C:        /* Interrupt status set */        gpt->is |= value & 0x0000F800;        ppc4xx_gpt_set_irqs(gpt);        break;    case 0x20:        /* Interrupt status clear */        gpt->is &= ~(value & 0x0000F800);        ppc4xx_gpt_set_irqs(gpt);        break;    case 0x24:        /* Interrupt enable */        gpt->ie = value & 0x0000F800;        ppc4xx_gpt_set_irqs(gpt);        break;    case 0x80 ... 0x90:        /* Compare timer */        idx = ((addr - gpt->base) - 0x80) >> 2;        gpt->comp[idx] = value & 0xF8000000;        ppc4xx_gpt_compute_timer(gpt);        break;    case 0xC0 ... 0xD0:        /* Compare mask */        idx = ((addr - gpt->base) - 0xC0) >> 2;        gpt->mask[idx] = value & 0xF8000000;        ppc4xx_gpt_compute_timer(gpt);        break;    }}static CPUReadMemoryFunc *gpt_read[] = {    &ppc4xx_gpt_readb,    &ppc4xx_gpt_readw,    &ppc4xx_gpt_readl,};static CPUWriteMemoryFunc *gpt_write[] = {    &ppc4xx_gpt_writeb,    &ppc4xx_gpt_writew,    &ppc4xx_gpt_writel,};static void ppc4xx_gpt_cb (void *opaque){    ppc4xx_gpt_t *gpt;    gpt = opaque;    ppc4xx_gpt_set_irqs(gpt);    ppc4xx_gpt_set_outputs(gpt);    ppc4xx_gpt_compute_timer(gpt);}static void ppc4xx_gpt_reset (void *opaque){    ppc4xx_gpt_t *gpt;    int i;    gpt = opaque;    qemu_del_timer(gpt->timer);    gpt->oe = 0x00000000;    gpt->ol = 0x00000000;    gpt->im = 0x00000000;    gpt->is = 0x00000000;    gpt->ie = 0x00000000;    for (i = 0; i < 5; i++) {        gpt->comp[i] = 0x00000000;        gpt->mask[i] = 0x00000000;    }}void ppc4xx_gpt_init (CPUState *env, ppc4xx_mmio_t *mmio,                      target_phys_addr_t offset, qemu_irq irqs[5]){    ppc4xx_gpt_t *gpt;    int i;    gpt = qemu_mallocz(sizeof(ppc4xx_gpt_t));    if (gpt != NULL) {        gpt->base = offset;        for (i = 0; i < 5; i++)            gpt->irqs[i] = irqs[i];        gpt->timer = qemu_new_timer(vm_clock, &ppc4xx_gpt_cb, gpt);        ppc4xx_gpt_reset(gpt);#ifdef DEBUG_GPT        printf("%s: offset " PADDRX "\n", __func__, offset);#endif        ppc4xx_mmio_register(env, mmio, offset, 0x0D4,                             gpt_read, gpt_write, gpt);        qemu_register_reset(ppc4xx_gpt_reset, gpt);    }}/*****************************************************************************//* MAL */enum {    MAL0_CFG      = 0x180,    MAL0_ESR      = 0x181,    MAL0_IER      = 0x182,    MAL0_TXCASR   = 0x184,    MAL0_TXCARR   = 0x185,    MAL0_TXEOBISR = 0x186,    MAL0_TXDEIR   = 0x187,    MAL0_RXCASR   = 0x190,    MAL0_RXCARR   = 0x191,    MAL0_RXEOBISR = 0x192,    MAL0_RXDEIR   = 0x193,    MAL0_TXCTP0R  = 0x1A0,    MAL0_TXCTP1R  = 0x1A1,    MAL0_TXCTP2R  = 0x1A2,    MAL0_TXCTP3R  = 0x1A3,    MAL0_RXCTP0R  = 0x1C0,    MAL0_RXCTP1R  = 0x1C1,    MAL0_RCBS0    = 0x1E0,    MAL0_RCBS1    = 0x1E1,};typedef struct ppc40x_mal_t ppc40x_mal_t;struct ppc40x_mal_t {    qemu_irq irqs[4];    uint32_t cfg;    uint32_t esr;    uint32_t ier;    uint32_t txcasr;    uint32_t txcarr;    uint32_t txeobisr;    uint32_t txdeir;    uint32_t rxcasr;    uint32_t rxcarr;    uint32_t rxeobisr;    uint32_t rxdeir;    uint32_t txctpr[4];    uint32_t rxctpr[2];    uint32_t rcbs[2];};static void ppc40x_mal_reset (void *opaque);static target_ulong dcr_read_mal (void *opaque, int dcrn){    ppc40x_mal_t *mal;    target_ulong ret;    mal = opaque;    switch (dcrn) {    case MAL0_CFG:        ret = mal->cfg;        break;    case MAL0_ESR:        ret = mal->esr;        break;    case MAL0_IER:        ret = mal->ier;        break;    case MAL0_TXCASR:        ret = mal->txcasr;        break;    case MAL0_TXCARR:        ret = mal->txcarr;        break;    case MAL0_TXEOBISR:        ret = mal->txeobisr;        break;    case MAL0_TXDEIR:        ret = mal->txdeir;        break;    case MAL0_RXCASR:        ret = mal->rxcasr;        break;    case MAL0_RXCARR:        ret = mal->rxcarr;        break;    case MAL0_RXEOBISR:        ret = mal->rxeobisr;        break;    case MAL0_RXDEIR:        ret = mal->rxdeir;        break;    case MAL0_TXCTP0R:        ret = mal->txctpr[0];        break;    case MAL0_TXCTP1R:        ret = mal->txctpr[1];        break;    case MAL0_TXCTP2R:        ret = mal->txctpr[2];        break;    case MAL0_TXCTP3R:        ret = mal->txctpr[3];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本久久a久久免费精品不卡| 国产精品久久久久久亚洲伦| 精品黑人一区二区三区久久| 亚洲欧美怡红院| 岛国av在线一区| 2022国产精品视频| 国产精品一区二区在线观看网站| 91精品国产一区二区三区香蕉| 亚洲午夜久久久久久久久久久 | 爽好多水快深点欧美视频| 成人黄色片在线观看| 中文av字幕一区| 色国产综合视频| 亚洲国产另类精品专区| 欧美国产在线观看| 99re在线精品| 一区二区三区中文字幕在线观看| 99久久伊人久久99| 亚洲欧美激情在线| 欧美三级日韩在线| 首页国产欧美久久| 一区二区三区在线免费观看| 中文字幕av一区二区三区| 国产日本亚洲高清| 不卡的电影网站| 国产做a爰片久久毛片| 国产精品久久久久9999吃药| 欧美精品一区二区在线播放| 日韩一区二区麻豆国产| 国产成人av一区二区三区在线观看| 亚洲视频中文字幕| 欧美一级一级性生活免费录像| 91福利国产成人精品照片| 91亚洲午夜精品久久久久久| 无码av免费一区二区三区试看| www日韩大片| 精品久久久久香蕉网| 91国在线观看| 欧美亚洲国产一区二区三区| 国产自产2019最新不卡| 精品在线播放午夜| 亚洲成人精品一区| 国产精品短视频| 国产精品福利av| 亚洲视频小说图片| 亚洲欧美另类图片小说| 亚洲精品第一国产综合野| 久久久久久久综合色一本| 在线观看av不卡| 国产99精品视频| 毛片一区二区三区| 亚洲美女区一区| 亚洲国产日韩a在线播放性色| 亚洲午夜影视影院在线观看| 日韩成人午夜电影| 一个色综合av| 日韩精品一级中文字幕精品视频免费观看| 午夜在线电影亚洲一区| 国产不卡视频在线观看| 国产99久久久精品| 91丨九色丨蝌蚪丨老版| 欧美日韩亚洲国产综合| 欧美一区二区三区啪啪| 久久综合五月天婷婷伊人| 欧美韩国日本综合| 亚洲精品国产精华液| 日韩av不卡在线观看| 国产一区91精品张津瑜| 日韩经典一区二区| 国产在线播放一区三区四| 成人午夜私人影院| 欧美色综合网站| 久久久综合九色合综国产精品| 国产亚洲va综合人人澡精品| 久久蜜桃av一区二区天堂| 亚洲国产精品二十页| 一区二区三区鲁丝不卡| 久久精品国产澳门| 免费欧美在线视频| 毛片基地黄久久久久久天堂| 国产ts人妖一区二区| 欧美午夜精品理论片a级按摩| 欧美电视剧在线看免费| 日韩欧美一级片| 国产精品国产a| 日本欧美韩国一区三区| av在线播放一区二区三区| 欧美丰满高潮xxxx喷水动漫| 欧美亚洲图片小说| 国产亚洲欧美中文| 日欧美一区二区| zzijzzij亚洲日本少妇熟睡| 欧美一区二区三区四区久久| 国产精品久久久久久久岛一牛影视 | 国产剧情一区在线| 欧洲av一区二区嗯嗯嗯啊| 欧美精品一区二区高清在线观看| 亚洲欧美另类久久久精品| 狠狠色丁香婷综合久久| 精品视频1区2区| 国产精品久久久久久一区二区三区 | 亚洲在线视频网站| 一区二区三区产品免费精品久久75| 日本不卡一区二区三区| 在线视频欧美精品| 欧美激情综合网| 久久黄色级2电影| 精品视频在线视频| 亚洲三级免费观看| 国产a精品视频| 久久色视频免费观看| 日本亚洲天堂网| 欧美日韩一区不卡| 一区二区免费看| 91最新地址在线播放| 久久久久亚洲蜜桃| 久久国内精品自在自线400部| 欧美高清视频一二三区 | 欧美性受xxxx| 亚洲欧美日韩成人高清在线一区| 国产麻豆视频一区二区| 日韩女优av电影| 日韩高清一区二区| 7777精品伊人久久久大香线蕉的 | 中文字幕一区视频| 国产伦精品一区二区三区在线观看| 欧美一二三区精品| 天使萌一区二区三区免费观看| 日本乱人伦aⅴ精品| 亚洲欧洲精品一区二区三区| 国产成人在线视频播放| 久久久久久久久岛国免费| 久草热8精品视频在线观看| 日韩欧美不卡在线观看视频| 久久精品国产精品亚洲红杏| 欧美变态口味重另类| 寂寞少妇一区二区三区| 精品美女在线观看| 国产美女一区二区三区| 国产欧美日韩三级| 99视频在线精品| 亚洲欧美激情视频在线观看一区二区三区 | 视频一区中文字幕国产| 在线播放91灌醉迷j高跟美女 | 亚洲天堂免费看| 一本色道久久综合亚洲91| 亚洲欧美精品午睡沙发| 欧美色电影在线| 日本欧美久久久久免费播放网| 日韩欧美aaaaaa| 成人小视频在线| 亚洲日本乱码在线观看| 欧美三日本三级三级在线播放| 天天操天天干天天综合网| 日韩欧美精品三级| 成人在线综合网| 亚洲精品美国一| 欧美一级日韩免费不卡| 国产乱码精品一品二品| 亚洲天堂2014| 在线电影院国产精品| 国产麻豆精品在线观看| 亚洲精品乱码久久久久久黑人| 精品视频色一区| 国产乱子伦视频一区二区三区 | 亚洲精品成人少妇| 欧美精品一二三区| 国产一区二区0| 亚洲精品v日韩精品| 欧美一区二区在线免费观看| 国产一区二区久久| 亚洲精品精品亚洲| 日韩欧美国产系列| bt欧美亚洲午夜电影天堂| 尤物av一区二区| 欧美电影免费观看高清完整版| 99热这里都是精品| 日本午夜精品视频在线观看| 欧美极品另类videosde| 欧美巨大另类极品videosbest| 国产精品18久久久久久久久久久久| 亚洲欧美一区二区不卡| 日韩欧美一区二区免费| 色综合咪咪久久| 黑人精品欧美一区二区蜜桃| 亚洲综合色成人| 中文字幕国产一区二区| 日韩一区二区不卡| 91在线视频播放地址| 狠狠狠色丁香婷婷综合久久五月| 亚洲激情校园春色| 国产午夜精品一区二区| 6080yy午夜一二三区久久| 99天天综合性| 国产精品88av| 日本不卡高清视频| 一个色综合av| 亚洲婷婷综合色高清在线| 精品奇米国产一区二区三区| 欧美三级视频在线|