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

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

?? m48t59.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 2 頁
字號:
	    set_time(NVRAM, &tm);	}        break;    case 0x1FFF:    case 0x07FF:        /* year */	tmp = fromBCD(val);	if (tmp >= 0 && tmp <= 99) {	    get_time(NVRAM, &tm);            if (NVRAM->type == 8)                tm.tm_year = fromBCD(val) + 68; // Base year is 1968            else                tm.tm_year = fromBCD(val);	    set_time(NVRAM, &tm);	}        break;    default:        /* Check lock registers state */        if (addr >= 0x20 && addr <= 0x2F && (NVRAM->lock & 1))            break;        if (addr >= 0x30 && addr <= 0x3F && (NVRAM->lock & 2))            break;    do_write:        if (addr < NVRAM->size) {            NVRAM->buffer[addr] = val & 0xFF;	}        break;    }}uint32_t m48t59_read (void *opaque, uint32_t addr){    m48t59_t *NVRAM = opaque;    struct tm tm;    uint32_t retval = 0xFF;    /* check for NVRAM access */    if ((NVRAM->type == 2 && addr < 0x078f) ||        (NVRAM->type == 8 && addr < 0x1ff8) ||        (NVRAM->type == 59 && addr < 0x1ff0))        goto do_read;    /* TOD access */    switch (addr) {    case 0x1FF0:        /* flags register */	goto do_read;    case 0x1FF1:        /* unused */	retval = 0;        break;    case 0x1FF2:        /* alarm seconds */	goto do_read;    case 0x1FF3:        /* alarm minutes */	goto do_read;    case 0x1FF4:        /* alarm hours */	goto do_read;    case 0x1FF5:        /* alarm date */	goto do_read;    case 0x1FF6:        /* interrupts */	goto do_read;    case 0x1FF7:	/* A read resets the watchdog */	set_up_watchdog(NVRAM, NVRAM->buffer[0x1FF7]);	goto do_read;    case 0x1FF8:    case 0x07F8:        /* control */	goto do_read;    case 0x1FF9:    case 0x07F9:        /* seconds (BCD) */        get_time(NVRAM, &tm);        retval = (NVRAM->buffer[addr] & 0x80) | toBCD(tm.tm_sec);        break;    case 0x1FFA:    case 0x07FA:        /* minutes (BCD) */        get_time(NVRAM, &tm);        retval = toBCD(tm.tm_min);        break;    case 0x1FFB:    case 0x07FB:        /* hours (BCD) */        get_time(NVRAM, &tm);        retval = toBCD(tm.tm_hour);        break;    case 0x1FFC:    case 0x07FC:        /* day of the week / century */        get_time(NVRAM, &tm);        retval = NVRAM->buffer[addr] | tm.tm_wday;        break;    case 0x1FFD:    case 0x07FD:        /* date */        get_time(NVRAM, &tm);        retval = toBCD(tm.tm_mday);        break;    case 0x1FFE:    case 0x07FE:        /* month */        get_time(NVRAM, &tm);        retval = toBCD(tm.tm_mon + 1);        break;    case 0x1FFF:    case 0x07FF:        /* year */        get_time(NVRAM, &tm);        if (NVRAM->type == 8)            retval = toBCD(tm.tm_year - 68); // Base year is 1968        else            retval = toBCD(tm.tm_year);        break;    default:        /* Check lock registers state */        if (addr >= 0x20 && addr <= 0x2F && (NVRAM->lock & 1))            break;        if (addr >= 0x30 && addr <= 0x3F && (NVRAM->lock & 2))            break;    do_read:        if (addr < NVRAM->size) {            retval = NVRAM->buffer[addr];	}        break;    }    if (addr > 0x1FF9 && addr < 0x2000)       NVRAM_PRINTF("%s: 0x%08x <= 0x%08x\n", __func__, addr, retval);    return retval;}void m48t59_set_addr (void *opaque, uint32_t addr){    m48t59_t *NVRAM = opaque;    NVRAM->addr = addr;}void m48t59_toggle_lock (void *opaque, int lock){    m48t59_t *NVRAM = opaque;    NVRAM->lock ^= 1 << lock;}/* IO access to NVRAM */static void NVRAM_writeb (void *opaque, uint32_t addr, uint32_t val){    m48t59_t *NVRAM = opaque;    addr -= NVRAM->io_base;    NVRAM_PRINTF("%s: 0x%08x => 0x%08x\n", __func__, addr, val);    switch (addr) {    case 0:        NVRAM->addr &= ~0x00FF;        NVRAM->addr |= val;        break;    case 1:        NVRAM->addr &= ~0xFF00;        NVRAM->addr |= val << 8;        break;    case 3:        m48t59_write(NVRAM, val, NVRAM->addr);        NVRAM->addr = 0x0000;        break;    default:        break;    }}static uint32_t NVRAM_readb (void *opaque, uint32_t addr){    m48t59_t *NVRAM = opaque;    uint32_t retval;    addr -= NVRAM->io_base;    switch (addr) {    case 3:        retval = m48t59_read(NVRAM, NVRAM->addr);        break;    default:        retval = -1;        break;    }    NVRAM_PRINTF("%s: 0x%08x <= 0x%08x\n", __func__, addr, retval);    return retval;}static void nvram_writeb (void *opaque, target_phys_addr_t addr, uint32_t value){    m48t59_t *NVRAM = opaque;    addr -= NVRAM->mem_base;    m48t59_write(NVRAM, addr, value & 0xff);}static void nvram_writew (void *opaque, target_phys_addr_t addr, uint32_t value){    m48t59_t *NVRAM = opaque;    addr -= NVRAM->mem_base;    m48t59_write(NVRAM, addr, (value >> 8) & 0xff);    m48t59_write(NVRAM, addr + 1, value & 0xff);}static void nvram_writel (void *opaque, target_phys_addr_t addr, uint32_t value){    m48t59_t *NVRAM = opaque;    addr -= NVRAM->mem_base;    m48t59_write(NVRAM, addr, (value >> 24) & 0xff);    m48t59_write(NVRAM, addr + 1, (value >> 16) & 0xff);    m48t59_write(NVRAM, addr + 2, (value >> 8) & 0xff);    m48t59_write(NVRAM, addr + 3, value & 0xff);}static uint32_t nvram_readb (void *opaque, target_phys_addr_t addr){    m48t59_t *NVRAM = opaque;    uint32_t retval;    addr -= NVRAM->mem_base;    retval = m48t59_read(NVRAM, addr);    return retval;}static uint32_t nvram_readw (void *opaque, target_phys_addr_t addr){    m48t59_t *NVRAM = opaque;    uint32_t retval;    addr -= NVRAM->mem_base;    retval = m48t59_read(NVRAM, addr) << 8;    retval |= m48t59_read(NVRAM, addr + 1);    return retval;}static uint32_t nvram_readl (void *opaque, target_phys_addr_t addr){    m48t59_t *NVRAM = opaque;    uint32_t retval;    addr -= NVRAM->mem_base;    retval = m48t59_read(NVRAM, addr) << 24;    retval |= m48t59_read(NVRAM, addr + 1) << 16;    retval |= m48t59_read(NVRAM, addr + 2) << 8;    retval |= m48t59_read(NVRAM, addr + 3);    return retval;}static CPUWriteMemoryFunc *nvram_write[] = {    &nvram_writeb,    &nvram_writew,    &nvram_writel,};static CPUReadMemoryFunc *nvram_read[] = {    &nvram_readb,    &nvram_readw,    &nvram_readl,};static void m48t59_save(QEMUFile *f, void *opaque){    m48t59_t *s = opaque;    qemu_put_8s(f, &s->lock);    qemu_put_be16s(f, &s->addr);    qemu_put_buffer(f, s->buffer, s->size);}static int m48t59_load(QEMUFile *f, void *opaque, int version_id){    m48t59_t *s = opaque;    if (version_id != 1)        return -EINVAL;    qemu_get_8s(f, &s->lock);    qemu_get_be16s(f, &s->addr);    qemu_get_buffer(f, s->buffer, s->size);    return 0;}static void m48t59_reset(void *opaque){    m48t59_t *NVRAM = opaque;    if (NVRAM->alrm_timer != NULL)        qemu_del_timer(NVRAM->alrm_timer);    if (NVRAM->wd_timer != NULL)        qemu_del_timer(NVRAM->wd_timer);}/* Initialisation routine */m48t59_t *m48t59_init (qemu_irq IRQ, target_phys_addr_t mem_base,                       uint32_t io_base, uint16_t size,                       int type){    m48t59_t *s;    target_phys_addr_t save_base;    s = qemu_mallocz(sizeof(m48t59_t));    if (!s)	return NULL;    s->buffer = qemu_mallocz(size);    if (!s->buffer) {        qemu_free(s);        return NULL;    }    s->IRQ = IRQ;    s->size = size;    s->mem_base = mem_base;    s->io_base = io_base;    s->addr = 0;    s->type = type;    if (io_base != 0) {        register_ioport_read(io_base, 0x04, 1, NVRAM_readb, s);        register_ioport_write(io_base, 0x04, 1, NVRAM_writeb, s);    }    if (mem_base != 0) {        s->mem_index = cpu_register_io_memory(0, nvram_read, nvram_write, s);        cpu_register_physical_memory(mem_base, size, s->mem_index);    }    if (type == 59) {        s->alrm_timer = qemu_new_timer(vm_clock, &alarm_cb, s);        s->wd_timer = qemu_new_timer(vm_clock, &watchdog_cb, s);    }    s->lock = 0;    qemu_register_reset(m48t59_reset, s);    save_base = mem_base ? mem_base : io_base;    register_savevm("m48t59", save_base, 1, m48t59_save, m48t59_load, s);    return s;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美r级在线观看| 成人h动漫精品一区二区 | 国产日韩欧美高清| 日本一不卡视频| 欧美视频日韩视频| 亚洲卡通动漫在线| 国产91在线|亚洲| 国产欧美日韩麻豆91| 国产一区二区三区在线观看免费 | 亚洲伦在线观看| 国产精品综合视频| 久久久不卡网国产精品二区| 国产又黄又大久久| 久久网站热最新地址| 国产在线一区二区| 久久综合久久久久88| 国产精一区二区三区| 精品成人在线观看| 国产精品影视在线观看| 国产亚洲欧美色| 91在线丨porny丨国产| 亚洲最新在线观看| 欧美日韩aaa| 美国欧美日韩国产在线播放| 久久亚洲一区二区三区明星换脸| 韩国女主播成人在线| 亚洲欧洲美洲综合色网| 欧美主播一区二区三区美女| 午夜精品在线视频一区| 日韩精品一区二区在线| 成人美女视频在线观看| 亚洲最新视频在线观看| 欧美精品一区二区三区蜜桃 | 亚洲国产另类av| 日韩精品一区在线| 99精品一区二区| 日本视频中文字幕一区二区三区| 久久亚洲综合色一区二区三区| 99久久99久久综合| 日本不卡123| 中文字幕一区二区三区在线播放 | 日韩中文字幕一区二区三区| 久久日一线二线三线suv| 欧美私模裸体表演在线观看| 美腿丝袜一区二区三区| 一区二区高清在线| 欧美国产视频在线| 日韩精品一区二| 欧美日韩在线综合| 99精品视频中文字幕| 韩日av一区二区| 婷婷中文字幕一区三区| 亚洲精品一二三| 欧美国产日韩一二三区| 2017欧美狠狠色| 精品国产自在久精品国产| 日韩视频一区二区三区在线播放 | 免费在线观看精品| 亚洲成a人片在线不卡一二三区| 亚洲靠逼com| 亚洲成年人网站在线观看| 午夜欧美电影在线观看| 免费在线看成人av| 久久99最新地址| 国产精品99久久久久久似苏梦涵| 国产麻豆成人传媒免费观看| 国产精品一区二区三区网站| 国产麻豆9l精品三级站| 色婷婷一区二区| 欧美久久一区二区| 久久这里都是精品| 国产网红主播福利一区二区| 国产精品高潮呻吟久久| 偷拍一区二区三区| 国产成人精品一区二区三区网站观看 | 色悠悠亚洲一区二区| 国产精品一区久久久久| 国产99久久久国产精品| 色哟哟一区二区在线观看 | 欧美国产国产综合| 亚洲三级视频在线观看| 亚洲精品伦理在线| 日韩av一区二区三区| 亚洲国产毛片aaaaa无费看 | 亚洲欧洲成人精品av97| 亚洲色图一区二区三区| 日韩精品电影一区亚洲| 国产成人精品亚洲777人妖| 91视频一区二区| 日韩精品一区二| 一区二区欧美视频| 久久精品久久99精品久久| 99精品视频在线观看免费| 在线不卡中文字幕| 中文字幕在线免费不卡| 日韩中文欧美在线| 成人高清在线视频| 91精品国产高清一区二区三区蜜臀 | 综合激情网...| 久久爱www久久做| 色久综合一二码| 久久久蜜臀国产一区二区| 亚洲一区二区成人在线观看| 国产成人免费视频一区| 日韩一区二区三区视频在线观看| 亚洲欧洲成人精品av97| 紧缚奴在线一区二区三区| 精品视频一区二区不卡| 亚洲欧洲精品天堂一级| 高清beeg欧美| 欧美大胆一级视频| 一区二区三区.www| 91色在线porny| 国产亚洲短视频| 国产精品乡下勾搭老头1| 日韩一区二区三区精品视频| 亚洲第一在线综合网站| 色哟哟欧美精品| 亚洲欧美二区三区| 91丨九色丨蝌蚪富婆spa| 中文字幕免费一区| 国产成人午夜片在线观看高清观看| 69久久夜色精品国产69蝌蚪网| 一区二区三区国产精华| 在线看日本不卡| 亚洲国产乱码最新视频| 欧美日韩在线播放| 亚洲国产精品自拍| 欧美精品99久久久**| 欧美aa在线视频| 久久品道一品道久久精品| 福利视频网站一区二区三区| 国产欧美一二三区| 一本久道久久综合中文字幕 | 97久久精品人人做人人爽 | 在线精品观看国产| 日本欧美一区二区三区乱码| 日韩欧美亚洲另类制服综合在线| 国内精品久久久久影院薰衣草| 久久蜜臀精品av| 色综合久久88色综合天天| 日韩黄色免费网站| 国产欧美一二三区| 欧美色欧美亚洲另类二区| 麻豆成人久久精品二区三区红| 久久久久久久久岛国免费| 不卡av免费在线观看| 亚洲亚洲精品在线观看| 日韩精品一区国产麻豆| 99久久久久免费精品国产| 天天综合网天天综合色| 国产日韩影视精品| 欧美羞羞免费网站| 国产精品一区二区三区网站| 亚洲一级片在线观看| 国产丝袜欧美中文另类| 欧美少妇性性性| 成人高清在线视频| 另类人妖一区二区av| 亚洲人精品一区| 久久视频一区二区| 欧美丰满一区二区免费视频 | 久久精品国产一区二区三区免费看| 国产日韩欧美高清在线| 欧美一区二区三区免费| 欧美亚洲一区三区| 暴力调教一区二区三区| 久久99精品国产麻豆婷婷洗澡| 亚洲日本免费电影| 国产精品剧情在线亚洲| 久久蜜臀中文字幕| 精品88久久久久88久久久 | 一区二区三区不卡视频在线观看| 久久久国产午夜精品| wwwwww.欧美系列| 欧美成人国产一区二区| 欧美一区在线视频| 欧美日韩免费电影| 欧美日韩一区不卡| 精品视频全国免费看| 欧美色视频在线观看| 91久久精品日日躁夜夜躁欧美| 99国产精品久久| 91首页免费视频| 色菇凉天天综合网| 91日韩一区二区三区| 色丁香久综合在线久综合在线观看| 91视频91自| 欧美三级电影网站| 欧美精三区欧美精三区| 欧美一区二区视频观看视频| 精品少妇一区二区三区在线播放| 久久久久久久久岛国免费| 中文字幕av一区二区三区免费看| 国产精品国产精品国产专区不片| 成人免费在线观看入口| 一区二区三区免费网站| 日韩在线卡一卡二| 国产高清不卡二三区| 色偷偷一区二区三区|