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

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

?? mc146818rtc.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 2 頁
字號:
static void rtc_update_second2(void *opaque){    RTCState *s = opaque;    if (!(s->cmos_data[RTC_REG_B] & REG_B_SET)) {        rtc_copy_date(s);    }    /* check alarm */    if (s->cmos_data[RTC_REG_B] & REG_B_AIE) {        if (((s->cmos_data[RTC_SECONDS_ALARM] & 0xc0) == 0xc0 ||             s->cmos_data[RTC_SECONDS_ALARM] == s->current_tm.tm_sec) &&            ((s->cmos_data[RTC_MINUTES_ALARM] & 0xc0) == 0xc0 ||             s->cmos_data[RTC_MINUTES_ALARM] == s->current_tm.tm_mon) &&            ((s->cmos_data[RTC_HOURS_ALARM] & 0xc0) == 0xc0 ||             s->cmos_data[RTC_HOURS_ALARM] == s->current_tm.tm_hour)) {            s->cmos_data[RTC_REG_C] |= 0xa0;            qemu_irq_raise(s->irq);        }    }    /* update ended interrupt */    if (s->cmos_data[RTC_REG_B] & REG_B_UIE) {        s->cmos_data[RTC_REG_C] |= 0x90;        qemu_irq_raise(s->irq);    }    /* clear update in progress bit */    s->cmos_data[RTC_REG_A] &= ~REG_A_UIP;    s->next_second_time += ticks_per_sec;    qemu_mod_timer(s->second_timer, s->next_second_time);}static uint32_t cmos_ioport_read(void *opaque, uint32_t addr){    RTCState *s = opaque;    int ret;    if ((addr & 1) == 0) {        return 0xff;    } else {        switch(s->cmos_index) {        case RTC_SECONDS:        case RTC_MINUTES:        case RTC_HOURS:        case RTC_DAY_OF_WEEK:        case RTC_DAY_OF_MONTH:        case RTC_MONTH:        case RTC_YEAR:            ret = s->cmos_data[s->cmos_index];            break;        case RTC_REG_A:            ret = s->cmos_data[s->cmos_index];            break;        case RTC_REG_C:            ret = s->cmos_data[s->cmos_index];            qemu_irq_lower(s->irq);            s->cmos_data[RTC_REG_C] = 0x00;            break;        default:            ret = s->cmos_data[s->cmos_index];            break;        }#ifdef DEBUG_CMOS        printf("cmos: read index=0x%02x val=0x%02x\n",               s->cmos_index, ret);#endif        return ret;    }}void rtc_set_memory(RTCState *s, int addr, int val){    if (addr >= 0 && addr <= 127)        s->cmos_data[addr] = val;}void rtc_set_date(RTCState *s, const struct tm *tm){    s->current_tm = *tm;    rtc_copy_date(s);}/* PC cmos mappings */#define REG_IBM_CENTURY_BYTE        0x32#define REG_IBM_PS2_CENTURY_BYTE    0x37static void rtc_set_date_from_host(RTCState *s){    time_t ti;    struct tm *tm;    int val;    /* set the CMOS date */    if (rtc_start_date == -1) {        time(&ti);        if (rtc_utc)            tm = gmtime(&ti);        else            tm = localtime(&ti);    } else {        ti = rtc_start_date;        tm = gmtime(&ti);    }    rtc_set_date(s, tm);    val = to_bcd(s, (tm->tm_year / 100) + 19);    rtc_set_memory(s, REG_IBM_CENTURY_BYTE, val);    rtc_set_memory(s, REG_IBM_PS2_CENTURY_BYTE, val);}static void rtc_save(QEMUFile *f, void *opaque){    RTCState *s = opaque;    qemu_put_buffer(f, s->cmos_data, 128);    qemu_put_8s(f, &s->cmos_index);    qemu_put_be32(f, s->current_tm.tm_sec);    qemu_put_be32(f, s->current_tm.tm_min);    qemu_put_be32(f, s->current_tm.tm_hour);    qemu_put_be32(f, s->current_tm.tm_wday);    qemu_put_be32(f, s->current_tm.tm_mday);    qemu_put_be32(f, s->current_tm.tm_mon);    qemu_put_be32(f, s->current_tm.tm_year);    qemu_put_timer(f, s->periodic_timer);    qemu_put_be64(f, s->next_periodic_time);    qemu_put_be64(f, s->next_second_time);    qemu_put_timer(f, s->second_timer);    qemu_put_timer(f, s->second_timer2);}static int rtc_load(QEMUFile *f, void *opaque, int version_id){    RTCState *s = opaque;    if (version_id != 1)        return -EINVAL;    qemu_get_buffer(f, s->cmos_data, 128);    qemu_get_8s(f, &s->cmos_index);    s->current_tm.tm_sec=qemu_get_be32(f);    s->current_tm.tm_min=qemu_get_be32(f);    s->current_tm.tm_hour=qemu_get_be32(f);    s->current_tm.tm_wday=qemu_get_be32(f);    s->current_tm.tm_mday=qemu_get_be32(f);    s->current_tm.tm_mon=qemu_get_be32(f);    s->current_tm.tm_year=qemu_get_be32(f);    qemu_get_timer(f, s->periodic_timer);    s->next_periodic_time=qemu_get_be64(f);    s->next_second_time=qemu_get_be64(f);    qemu_get_timer(f, s->second_timer);    qemu_get_timer(f, s->second_timer2);    return 0;}RTCState *rtc_init(int base, qemu_irq irq){    RTCState *s;    s = qemu_mallocz(sizeof(RTCState));    if (!s)        return NULL;    s->irq = irq;    s->cmos_data[RTC_REG_A] = 0x26;    s->cmos_data[RTC_REG_B] = 0x02;    s->cmos_data[RTC_REG_C] = 0x00;    s->cmos_data[RTC_REG_D] = 0x80;    rtc_set_date_from_host(s);    s->periodic_timer = qemu_new_timer(vm_clock,                                       rtc_periodic_timer, s);    s->second_timer = qemu_new_timer(vm_clock,                                     rtc_update_second, s);    s->second_timer2 = qemu_new_timer(vm_clock,                                      rtc_update_second2, s);    s->next_second_time = qemu_get_clock(vm_clock) + (ticks_per_sec * 99) / 100;    qemu_mod_timer(s->second_timer2, s->next_second_time);    register_ioport_write(base, 2, 1, cmos_ioport_write, s);    register_ioport_read(base, 2, 1, cmos_ioport_read, s);    register_savevm("mc146818rtc", base, 1, rtc_save, rtc_load, s);    return s;}/* Memory mapped interface */static uint32_t cmos_mm_readb (void *opaque, target_phys_addr_t addr){    RTCState *s = opaque;    return cmos_ioport_read(s, (addr - s->base) >> s->it_shift) & 0xFF;}static void cmos_mm_writeb (void *opaque,                            target_phys_addr_t addr, uint32_t value){    RTCState *s = opaque;    cmos_ioport_write(s, (addr - s->base) >> s->it_shift, value & 0xFF);}static uint32_t cmos_mm_readw (void *opaque, target_phys_addr_t addr){    RTCState *s = opaque;    uint32_t val;    val = cmos_ioport_read(s, (addr - s->base) >> s->it_shift) & 0xFFFF;#ifdef TARGET_WORDS_BIGENDIAN    val = bswap16(val);#endif    return val;}static void cmos_mm_writew (void *opaque,                            target_phys_addr_t addr, uint32_t value){    RTCState *s = opaque;#ifdef TARGET_WORDS_BIGENDIAN    value = bswap16(value);#endif    cmos_ioport_write(s, (addr - s->base) >> s->it_shift, value & 0xFFFF);}static uint32_t cmos_mm_readl (void *opaque, target_phys_addr_t addr){    RTCState *s = opaque;    uint32_t val;    val = cmos_ioport_read(s, (addr - s->base) >> s->it_shift);#ifdef TARGET_WORDS_BIGENDIAN    val = bswap32(val);#endif    return val;}static void cmos_mm_writel (void *opaque,                            target_phys_addr_t addr, uint32_t value){    RTCState *s = opaque;#ifdef TARGET_WORDS_BIGENDIAN    value = bswap32(value);#endif    cmos_ioport_write(s, (addr - s->base) >> s->it_shift, value);}static CPUReadMemoryFunc *rtc_mm_read[] = {    &cmos_mm_readb,    &cmos_mm_readw,    &cmos_mm_readl,};static CPUWriteMemoryFunc *rtc_mm_write[] = {    &cmos_mm_writeb,    &cmos_mm_writew,    &cmos_mm_writel,};RTCState *rtc_mm_init(target_phys_addr_t base, int it_shift, qemu_irq irq){    RTCState *s;    int io_memory;    s = qemu_mallocz(sizeof(RTCState));    if (!s)        return NULL;    s->irq = irq;    s->cmos_data[RTC_REG_A] = 0x26;    s->cmos_data[RTC_REG_B] = 0x02;    s->cmos_data[RTC_REG_C] = 0x00;    s->cmos_data[RTC_REG_D] = 0x80;    s->base = base;    rtc_set_date_from_host(s);    s->periodic_timer = qemu_new_timer(vm_clock,                                       rtc_periodic_timer, s);    s->second_timer = qemu_new_timer(vm_clock,                                     rtc_update_second, s);    s->second_timer2 = qemu_new_timer(vm_clock,                                      rtc_update_second2, s);    s->next_second_time = qemu_get_clock(vm_clock) + (ticks_per_sec * 99) / 100;    qemu_mod_timer(s->second_timer2, s->next_second_time);    io_memory = cpu_register_io_memory(0, rtc_mm_read, rtc_mm_write, s);    cpu_register_physical_memory(base, 2 << it_shift, io_memory);    register_savevm("mc146818rtc", base, 1, rtc_save, rtc_load, s);    return s;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久丝袜美腿综合| 制服.丝袜.亚洲.中文.综合| 国产欧美日韩久久| 成人午夜av影视| 国产精品午夜春色av| 不卡区在线中文字幕| 亚洲精品伦理在线| 欧美日韩一卡二卡三卡| 午夜欧美一区二区三区在线播放| 欧美日本精品一区二区三区| 午夜精品免费在线| 精品国产免费久久| 国产一区激情在线| 中文字幕欧美日本乱码一线二线| 不卡一二三区首页| 天天射综合影视| 欧美电视剧在线看免费| 国产91丝袜在线18| 亚洲精品ww久久久久久p站| 欧美二区三区的天堂| 精品一区二区三区久久久| 国产精品美女久久福利网站| 在线亚洲+欧美+日本专区| 青草av.久久免费一区| 国产日本欧美一区二区| 色乱码一区二区三区88| 美女在线一区二区| 国产精品久久99| 欧美日韩国产高清一区二区三区| 韩国成人在线视频| 亚洲欧美一区二区不卡| 日韩欧美国产一区在线观看| 99精品国产91久久久久久| 日韩电影在线免费| 国产精品免费av| 91精品国产综合久久香蕉的特点| 国产高清亚洲一区| 午夜a成v人精品| 欧美国产1区2区| 日韩一级精品视频在线观看| 91麻豆福利精品推荐| 久久99久久久久| 亚洲电影中文字幕在线观看| 久久综合久久99| 欧美日韩一区精品| 不卡一区二区三区四区| 激情文学综合网| 亚洲成人www| 日韩一区中文字幕| 久久精品人人做人人综合| 欧美日本一区二区在线观看| 91欧美一区二区| 国产剧情av麻豆香蕉精品| 午夜精品成人在线| 一区二区三区美女视频| 中文字幕巨乱亚洲| 精品sm在线观看| 欧美老人xxxx18| 欧美性受xxxx| 99久久精品免费精品国产| 国产一区不卡视频| 麻豆91在线播放免费| 香蕉加勒比综合久久| 亚洲欧美一区二区久久| 中文字幕日韩av资源站| 久久精品男人天堂av| 欧美电影免费观看高清完整版在线 | 国产拍欧美日韩视频二区| 欧美福利视频一区| 欧美视频一区二区三区在线观看| 99精品欧美一区二区三区综合在线| 国产乱码精品一区二区三| 免费成人在线影院| 日韩国产高清在线| 丝袜亚洲另类欧美| 婷婷国产v国产偷v亚洲高清| 亚洲一区在线观看网站| 伊人夜夜躁av伊人久久| 亚洲色图视频免费播放| 一区二区中文字幕在线| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 最新中文字幕一区二区三区| 国产日韩欧美a| 久久久精品国产99久久精品芒果| 日韩精品影音先锋| 精品国产三级电影在线观看| 久久久亚洲精品石原莉奈| 国产亚洲综合性久久久影院| 久久久久一区二区三区四区| 国产亚洲欧洲997久久综合| 国产农村妇女毛片精品久久麻豆 | 日韩中文字幕91| 日韩精品一二三四| 久久se精品一区二区| 国产乱国产乱300精品| 成人高清av在线| 99国产精品久久久久久久久久久| 色老汉一区二区三区| 9191国产精品| 亚洲精品在线观看网站| 国产欧美精品一区aⅴ影院| 亚洲精品免费看| 日本女人一区二区三区| 国产伦精品一区二区三区免费迷| 懂色av一区二区三区免费看| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲日本丝袜连裤袜办公室| 亚洲综合成人网| 老司机精品视频一区二区三区| 国产麻豆成人传媒免费观看| aaa亚洲精品| 欧美日韩国产影片| 欧美成人激情免费网| 中文字幕精品一区二区精品绿巨人 | 国产三区在线成人av| 中文字幕一区二区三中文字幕| 亚洲一区二区不卡免费| 久久精品二区亚洲w码| 成人精品一区二区三区四区| 欧美日韩中文一区| 日韩精品最新网址| 最近日韩中文字幕| 琪琪久久久久日韩精品| 99在线视频精品| 日韩一区二区三区在线视频| 国产精品亲子乱子伦xxxx裸| 五月婷婷综合激情| 成人激情电影免费在线观看| 欧美日韩的一区二区| 日本一区二区免费在线| 五月婷婷综合网| 91免费在线播放| 久久亚洲免费视频| 亚洲444eee在线观看| 成人亚洲精品久久久久软件| 欧美一区二区在线播放| 亚洲视频电影在线| 国产一区二区三区黄视频 | 国内精品伊人久久久久av影院| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国产亚洲精品bt天堂精选| 亚洲国产欧美在线| 成人理论电影网| 久久免费的精品国产v∧| 日韩国产高清在线| 欧美日韩一区二区三区视频| 午夜免费欧美电影| 91热门视频在线观看| 国产无人区一区二区三区| 日本人妖一区二区| 欧美日韩在线播放三区| 一区二区三区四区精品在线视频| 国产v综合v亚洲欧| 久久这里只有精品6| 麻豆免费看一区二区三区| 精品视频资源站| 亚洲一区视频在线| 日本久久电影网| 成人欧美一区二区三区黑人麻豆 | 亚洲欧洲成人自拍| 国产河南妇女毛片精品久久久| 亚洲精品在线观| 狠狠色综合播放一区二区| 日韩一级欧美一级| 麻豆精品视频在线| 欧美一级黄色大片| 美女一区二区视频| 日韩午夜激情电影| 久久aⅴ国产欧美74aaa| 精品福利视频一区二区三区| 久久国产生活片100| 欧美成人一级视频| 国产美女在线精品| 国产喂奶挤奶一区二区三区| 国产91精品精华液一区二区三区| 久久久国际精品| 国产99精品视频| 国产精品久久久久永久免费观看| 成人一级片网址| 亚洲欧美一区二区三区国产精品| 91九色02白丝porn| 性做久久久久久久久| 欧美精品久久天天躁| 捆绑变态av一区二区三区| 2021久久国产精品不只是精品| 国内成人自拍视频| 中文无字幕一区二区三区| 成人黄色软件下载| 亚洲欧美偷拍另类a∨色屁股| 国产天堂亚洲国产碰碰| 成人精品小蝌蚪| 一区二区三区四区高清精品免费观看 | 色综合久久久久久久久| 亚洲综合一区二区精品导航| 欧美日韩精品久久久| 日本vs亚洲vs韩国一区三区| 久久色.com| 99久久国产综合色|国产精品| 亚洲综合一二区| 亚洲精品在线电影|