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

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

?? vga.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 4 頁
字號:
    }    dpy_update(s->ds, 0, 0,               s->last_scr_width, s->last_scr_height);}#define GMODE_TEXT     0#define GMODE_GRAPH    1#define GMODE_BLANK 2static void vga_update_display(void *opaque){    VGAState *s = (VGAState *)opaque;    int full_update, graphic_mode;    if (s->ds->depth == 0) {        /* nothing to do */    } else {        s->rgb_to_pixel =            rgb_to_pixel_dup_table[get_depth_index(s->ds)];        full_update = 0;        if (!(s->ar_index & 0x20)) {            graphic_mode = GMODE_BLANK;        } else {            graphic_mode = s->gr[6] & 1;        }        if (graphic_mode != s->graphic_mode) {            s->graphic_mode = graphic_mode;            full_update = 1;        }        switch(graphic_mode) {        case GMODE_TEXT:            vga_draw_text(s, full_update);            break;        case GMODE_GRAPH:            vga_draw_graphic(s, full_update);            break;        case GMODE_BLANK:        default:            vga_draw_blank(s, full_update);            break;        }    }}/* force a full display refresh */static void vga_invalidate_display(void *opaque){    VGAState *s = (VGAState *)opaque;    s->last_width = -1;    s->last_height = -1;}static void vga_reset(VGAState *s){    memset(s, 0, sizeof(VGAState));    s->graphic_mode = -1; /* force full update */}static CPUReadMemoryFunc *vga_mem_read[3] = {    vga_mem_readb,    vga_mem_readw,    vga_mem_readl,};static CPUWriteMemoryFunc *vga_mem_write[3] = {    vga_mem_writeb,    vga_mem_writew,    vga_mem_writel,};static void vga_save(QEMUFile *f, void *opaque){    VGAState *s = opaque;    int i;    if (s->pci_dev)        pci_device_save(s->pci_dev, f);    qemu_put_be32s(f, &s->latch);    qemu_put_8s(f, &s->sr_index);    qemu_put_buffer(f, s->sr, 8);    qemu_put_8s(f, &s->gr_index);    qemu_put_buffer(f, s->gr, 16);    qemu_put_8s(f, &s->ar_index);    qemu_put_buffer(f, s->ar, 21);    qemu_put_be32(f, s->ar_flip_flop);    qemu_put_8s(f, &s->cr_index);    qemu_put_buffer(f, s->cr, 256);    qemu_put_8s(f, &s->msr);    qemu_put_8s(f, &s->fcr);    qemu_put_byte(f, s->st00);    qemu_put_8s(f, &s->st01);    qemu_put_8s(f, &s->dac_state);    qemu_put_8s(f, &s->dac_sub_index);    qemu_put_8s(f, &s->dac_read_index);    qemu_put_8s(f, &s->dac_write_index);    qemu_put_buffer(f, s->dac_cache, 3);    qemu_put_buffer(f, s->palette, 768);    qemu_put_be32(f, s->bank_offset);#ifdef CONFIG_BOCHS_VBE    qemu_put_byte(f, 1);    qemu_put_be16s(f, &s->vbe_index);    for(i = 0; i < VBE_DISPI_INDEX_NB; i++)        qemu_put_be16s(f, &s->vbe_regs[i]);    qemu_put_be32s(f, &s->vbe_start_addr);    qemu_put_be32s(f, &s->vbe_line_offset);    qemu_put_be32s(f, &s->vbe_bank_mask);#else    qemu_put_byte(f, 0);#endif}static int vga_load(QEMUFile *f, void *opaque, int version_id){    VGAState *s = opaque;    int is_vbe, i, ret;    if (version_id > 2)        return -EINVAL;    if (s->pci_dev && version_id >= 2) {        ret = pci_device_load(s->pci_dev, f);        if (ret < 0)            return ret;    }    qemu_get_be32s(f, &s->latch);    qemu_get_8s(f, &s->sr_index);    qemu_get_buffer(f, s->sr, 8);    qemu_get_8s(f, &s->gr_index);    qemu_get_buffer(f, s->gr, 16);    qemu_get_8s(f, &s->ar_index);    qemu_get_buffer(f, s->ar, 21);    s->ar_flip_flop=qemu_get_be32(f);    qemu_get_8s(f, &s->cr_index);    qemu_get_buffer(f, s->cr, 256);    qemu_get_8s(f, &s->msr);    qemu_get_8s(f, &s->fcr);    qemu_get_8s(f, &s->st00);    qemu_get_8s(f, &s->st01);    qemu_get_8s(f, &s->dac_state);    qemu_get_8s(f, &s->dac_sub_index);    qemu_get_8s(f, &s->dac_read_index);    qemu_get_8s(f, &s->dac_write_index);    qemu_get_buffer(f, s->dac_cache, 3);    qemu_get_buffer(f, s->palette, 768);    s->bank_offset=qemu_get_be32(f);    is_vbe = qemu_get_byte(f);#ifdef CONFIG_BOCHS_VBE    if (!is_vbe)        return -EINVAL;    qemu_get_be16s(f, &s->vbe_index);    for(i = 0; i < VBE_DISPI_INDEX_NB; i++)        qemu_get_be16s(f, &s->vbe_regs[i]);    qemu_get_be32s(f, &s->vbe_start_addr);    qemu_get_be32s(f, &s->vbe_line_offset);    qemu_get_be32s(f, &s->vbe_bank_mask);#else    if (is_vbe)        return -EINVAL;#endif    /* force refresh */    s->graphic_mode = -1;    return 0;}typedef struct PCIVGAState {    PCIDevice dev;    VGAState vga_state;} PCIVGAState;static void vga_map(PCIDevice *pci_dev, int region_num,                    uint32_t addr, uint32_t size, int type){    PCIVGAState *d = (PCIVGAState *)pci_dev;    VGAState *s = &d->vga_state;    if (region_num == PCI_ROM_SLOT) {        cpu_register_physical_memory(addr, s->bios_size, s->bios_offset);    } else {        cpu_register_physical_memory(addr, s->vram_size, s->vram_offset);    }}void vga_common_init(VGAState *s, DisplayState *ds, uint8_t *vga_ram_base,                     unsigned long vga_ram_offset, int vga_ram_size){    int i, j, v, b;    for(i = 0;i < 256; i++) {        v = 0;        for(j = 0; j < 8; j++) {            v |= ((i >> j) & 1) << (j * 4);        }        expand4[i] = v;        v = 0;        for(j = 0; j < 4; j++) {            v |= ((i >> (2 * j)) & 3) << (j * 4);        }        expand2[i] = v;    }    for(i = 0; i < 16; i++) {        v = 0;        for(j = 0; j < 4; j++) {            b = ((i >> j) & 1);            v |= b << (2 * j);            v |= b << (2 * j + 1);        }        expand4to8[i] = v;    }    vga_reset(s);    s->vram_ptr = vga_ram_base;    s->vram_offset = vga_ram_offset;    s->vram_size = vga_ram_size;    s->ds = ds;    s->get_bpp = vga_get_bpp;    s->get_offsets = vga_get_offsets;    s->get_resolution = vga_get_resolution;    s->update = vga_update_display;    s->invalidate = vga_invalidate_display;    s->screen_dump = vga_screen_dump;}/* used by both ISA and PCI */void vga_init(VGAState *s){    int vga_io_memory;    register_savevm("vga", 0, 2, vga_save, vga_load, s);    register_ioport_write(0x3c0, 16, 1, vga_ioport_write, s);    register_ioport_write(0x3b4, 2, 1, vga_ioport_write, s);    register_ioport_write(0x3d4, 2, 1, vga_ioport_write, s);    register_ioport_write(0x3ba, 1, 1, vga_ioport_write, s);    register_ioport_write(0x3da, 1, 1, vga_ioport_write, s);    register_ioport_read(0x3c0, 16, 1, vga_ioport_read, s);    register_ioport_read(0x3b4, 2, 1, vga_ioport_read, s);    register_ioport_read(0x3d4, 2, 1, vga_ioport_read, s);    register_ioport_read(0x3ba, 1, 1, vga_ioport_read, s);    register_ioport_read(0x3da, 1, 1, vga_ioport_read, s);    s->bank_offset = 0;#ifdef CONFIG_BOCHS_VBE    s->vbe_regs[VBE_DISPI_INDEX_ID] = VBE_DISPI_ID0;    s->vbe_bank_mask = ((s->vram_size >> 16) - 1);#if defined (TARGET_I386)    register_ioport_read(0x1ce, 1, 2, vbe_ioport_read_index, s);    register_ioport_read(0x1cf, 1, 2, vbe_ioport_read_data, s);    register_ioport_write(0x1ce, 1, 2, vbe_ioport_write_index, s);    register_ioport_write(0x1cf, 1, 2, vbe_ioport_write_data, s);    /* old Bochs IO ports */    register_ioport_read(0xff80, 1, 2, vbe_ioport_read_index, s);    register_ioport_read(0xff81, 1, 2, vbe_ioport_read_data, s);    register_ioport_write(0xff80, 1, 2, vbe_ioport_write_index, s);    register_ioport_write(0xff81, 1, 2, vbe_ioport_write_data, s);#else    register_ioport_read(0x1ce, 1, 2, vbe_ioport_read_index, s);    register_ioport_read(0x1d0, 1, 2, vbe_ioport_read_data, s);    register_ioport_write(0x1ce, 1, 2, vbe_ioport_write_index, s);    register_ioport_write(0x1d0, 1, 2, vbe_ioport_write_data, s);#endif#endif /* CONFIG_BOCHS_VBE */    vga_io_memory = cpu_register_io_memory(0, vga_mem_read, vga_mem_write, s);    cpu_register_physical_memory(isa_mem_base + 0x000a0000, 0x20000,                                 vga_io_memory);}/* Memory mapped interface */static uint32_t vga_mm_readb (void *opaque, target_phys_addr_t addr){    VGAState *s = opaque;    return vga_ioport_read(s, (addr - s->base_ctrl) >> s->it_shift) & 0xff;}static void vga_mm_writeb (void *opaque,                           target_phys_addr_t addr, uint32_t value){    VGAState *s = opaque;    vga_ioport_write(s, (addr - s->base_ctrl) >> s->it_shift, value & 0xff);}static uint32_t vga_mm_readw (void *opaque, target_phys_addr_t addr){    VGAState *s = opaque;    return vga_ioport_read(s, (addr - s->base_ctrl) >> s->it_shift) & 0xffff;}static void vga_mm_writew (void *opaque,                           target_phys_addr_t addr, uint32_t value){    VGAState *s = opaque;    vga_ioport_write(s, (addr - s->base_ctrl) >> s->it_shift, value & 0xffff);}static uint32_t vga_mm_readl (void *opaque, target_phys_addr_t addr){    VGAState *s = opaque;    return vga_ioport_read(s, (addr - s->base_ctrl) >> s->it_shift);}static void vga_mm_writel (void *opaque,                           target_phys_addr_t addr, uint32_t value){    VGAState *s = opaque;    vga_ioport_write(s, (addr - s->base_ctrl) >> s->it_shift, value);}static CPUReadMemoryFunc *vga_mm_read_ctrl[] = {    &vga_mm_readb,    &vga_mm_readw,    &vga_mm_readl,};static CPUWriteMemoryFunc *vga_mm_write_ctrl[] = {    &vga_mm_writeb,    &vga_mm_writew,    &vga_mm_writel,};static void vga_mm_init(VGAState *s, target_phys_addr_t vram_base,                        target_phys_addr_t ctrl_base, int it_shift){    int s_ioport_ctrl, vga_io_memory;    s->base_ctrl = ctrl_base;    s->it_shift = it_shift;    s_ioport_ctrl = cpu_register_io_memory(0, vga_mm_read_ctrl, vga_mm_write_ctrl, s);    vga_io_memory = cpu_register_io_memory(0, vga_mem_read, vga_mem_write, s);    register_savevm("vga", 0, 2, vga_save, vga_load, s);    cpu_register_physical_memory(ctrl_base, 0x100000, s_ioport_ctrl);    s->bank_offset = 0;    cpu_register_physical_memory(vram_base + 0x000a0000, 0x20000, vga_io_memory);}int isa_vga_init(DisplayState *ds, uint8_t *vga_ram_base,                 unsigned long vga_ram_offset, int vga_ram_size){    VGAState *s;    s = qemu_mallocz(sizeof(VGAState));    if (!s)        return -1;    vga_common_init(s, ds, vga_ram_base, vga_ram_offset, vga_ram_size);    vga_init(s);    graphic_console_init(s->ds, s->update, s->invalidate, s->screen_dump, s);#ifdef CONFIG_BOCHS_VBE    /* XXX: use optimized standard vga accesses */    cpu_register_physical_memory(VBE_DISPI_LFB_PHYSICAL_ADDRESS,                                 vga_ram_size, vga_ram_offset);#endif    return 0;}int isa_vga_mm_init(DisplayState *ds, uint8_t *vga_ram_base,                    unsigned long vga_ram_offset, int vga_ram_size,                    target_phys_addr_t vram_base, target_phys_addr_t ctrl_base,                    int it_shift){    VGAState *s;    s = qemu_mallocz(sizeof(VGAState));    if (!s)        return -1;    vga_common_init(s, ds, vga_ram_base, vga_ram_offset, vga_ram_size);    vga_mm_init(s, vram_base, ctrl_base, it_shift);    graphic_console_init(s->ds, s->update, s->invalidate, s->screen_dump, s);#ifdef CONFIG_BOCHS_VBE    /* XXX: use optimized standard vga accesses */    cpu_register_physical_memory(VBE_DISPI_LFB_PHYSICAL_ADDRESS,                                 vga_ram_size, vga_ram_offset);#endif    return 0;}int pci_vga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base,                 unsigned long vga_ram_offset, int vga_ram_size,                 unsigned long vga_bios_offset, int vga_bios_size){    PCIVGAState *d;    VGAState *s;    uint8_t *pci_conf;    d = (PCIVGAState *)pci_register_device(bus, "VGA",                                           sizeof(PCIVGAState),                                           -1, NULL, NULL);    if (!d)        return -1;    s = &d->vga_state;    vga_common_init(s, ds, vga_ram_base, vga_ram_offset, vga_ram_size);    vga_init(s);    graphic_console_init(s->ds, s->update, s->invalidate, s->screen_dump, s);    s->pci_dev = &d->dev;    pci_conf = d->dev.config;    pci_conf[0x00] = 0x34; // dummy VGA (same as Bochs ID)    pci_conf[0x01] = 0x12;    pci_conf[0x02] = 0x11;    pci_conf[0x03] = 0x11;    pci_conf[0x0a] = 0x00; // VGA controller    pci_conf[0x0b] = 0x03;    pci_conf[0x0e] = 0x00; // header_type    /* XXX: vga_ram_size must be a power of two */    pci_register_io_region(&d->dev, 0, vga_ram_size,                           PCI_ADDRESS_SPACE_MEM_PREFETCH, vga_map);    if (vga_bios_size != 0) {        unsigned int bios_total_size;        s->bios_offset = vga_bios_offset;        s->bios_size = vga_bios_size;        /* must be a power of two */        bios_total_size = 1;        while (bios_total_size < vga_bios_size)            bios_total_size <<= 1;        pci_register_io_region(&d->dev, PCI_ROM_SLOT, bios_total_size,                               PCI_ADDRESS_SPACE_MEM_PREFETCH, vga_map);    }    return 0;}/********************************************************//* vga screen dump */static int vga_save_w, vga_save_h;static void vga_save_dpy_update(DisplayState *s,                                int x, int y, int w, int h){}static void vga_save_dpy_resize(DisplayState *s, int w, int h){    s->linesize = w * 4;    s->data = qemu_malloc(h * s->linesize);    vga_save_w = w;    vga_save_h = h;}static void vga_save_dpy_refresh(DisplayState *s){}int ppm_save(const char *filename, uint8_t *data,             int w, int h, int linesize){    FILE *f;    uint8_t *d, *d1;    unsigned int v;    int y, x;    f = fopen(filename, "wb");    if (!f)        return -1;    fprintf(f, "P6\n%d %d\n%d\n",            w, h, 255);    d1 = data;    for(y = 0; y < h; y++) {        d = d1;        for(x = 0; x < w; x++) {            v = *(uint32_t *)d;            fputc((v >> 16) & 0xff, f);            fputc((v >> 8) & 0xff, f);            fputc((v) & 0xff, f);            d += 4;        }        d1 += linesize;    }    fclose(f);    return 0;}/* save the vga display in a PPM image even if no display is   available */static void vga_screen_dump(void *opaque, const char *filename){    VGAState *s = (VGAState *)opaque;    DisplayState *saved_ds, ds1, *ds = &ds1;    /* XXX: this is a little hackish */    vga_invalidate_display(s);    saved_ds = s->ds;    memset(ds, 0, sizeof(DisplayState));    ds->dpy_update = vga_save_dpy_update;    ds->dpy_resize = vga_save_dpy_resize;    ds->dpy_refresh = vga_save_dpy_refresh;    ds->depth = 32;    s->ds = ds;    s->graphic_mode = -1;    vga_update_display(s);    if (ds->data) {        ppm_save(filename, ds->data, vga_save_w, vga_save_h,                 s->ds->linesize);        qemu_free(ds->data);    }    s->ds = saved_ds;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区免费高清| 欧美日韩精品免费| 91精品国产欧美一区二区| 国产性做久久久久久| 午夜久久久久久久久久一区二区| 国产成人精品一区二区三区网站观看| 欧美日本精品一区二区三区| 一色屋精品亚洲香蕉网站| 久久99久久久欧美国产| 欧美三区在线视频| 日韩伦理免费电影| 国产精品一区二区久激情瑜伽| 91精品国模一区二区三区| 亚洲精品国产成人久久av盗摄| 国产福利电影一区二区三区| 日韩色视频在线观看| 亚洲成人在线免费| 色噜噜狠狠成人网p站| 亚洲国产电影在线观看| 精品在线视频一区| 日韩色视频在线观看| 午夜不卡av在线| 色拍拍在线精品视频8848| 中文字幕亚洲一区二区va在线| 国产精品一区二区在线观看不卡 | 日韩在线一区二区| 91麻豆精品一区二区三区| 久久久久国产精品免费免费搜索| 奇米精品一区二区三区在线观看 | 91精品国产色综合久久不卡蜜臀 | 亚洲激情av在线| www.爱久久.com| 国产精品超碰97尤物18| 成人免费视频免费观看| 久久午夜国产精品| 国产精品羞羞答答xxdd| 久久九九久精品国产免费直播| 免费成人你懂的| 日韩免费在线观看| 久久国产精品一区二区| 精品嫩草影院久久| 精品无人区卡一卡二卡三乱码免费卡 | 日韩影院精彩在线| 欧美日韩午夜影院| 五月天一区二区| 欧美精品乱码久久久久久按摩 | 国产精品久久久久婷婷二区次| 国产成人精品影视| 国产精品日韩成人| 91首页免费视频| 一区二区三区四区高清精品免费观看 | 一区二区三区四区视频精品免费| 色香蕉久久蜜桃| 亚洲国产成人tv| 欧美一区午夜精品| 老司机免费视频一区二区 | 欧美在线短视频| 亚洲第一福利一区| 日韩三级视频在线看| 国模冰冰炮一区二区| 久久久99精品久久| 成人黄页毛片网站| 亚洲激情成人在线| 日韩一区二区在线观看视频| 经典一区二区三区| 国产精品第一页第二页第三页| 99re免费视频精品全部| 亚洲一二三四久久| 欧美一区永久视频免费观看| 国产又黄又大久久| 亚洲三级理论片| 9191精品国产综合久久久久久| 麻豆精品久久久| 国产视频视频一区| 91久久精品日日躁夜夜躁欧美| 亚洲国产美女搞黄色| 精品999在线播放| 成人av在线播放网站| 性久久久久久久久久久久| 精品美女被调教视频大全网站| 成人小视频免费观看| 亚洲图片欧美色图| 欧美电视剧免费全集观看| fc2成人免费人成在线观看播放| 夜夜揉揉日日人人青青一国产精品| 欧美一区二区三区在线| 成人免费看的视频| 亚洲成在线观看| 久久久高清一区二区三区| 色综合欧美在线视频区| 免费看日韩a级影片| 国产精品久久久久久久久图文区| 欧美日韩国产乱码电影| 国产精品一区在线观看乱码| 亚洲综合色网站| 婷婷丁香久久五月婷婷| 国产午夜精品久久久久久免费视| 色综合视频在线观看| 久久狠狠亚洲综合| 亚洲精选视频免费看| 欧美大片免费久久精品三p| aaa欧美大片| 久久国产乱子精品免费女| 亚洲欧美偷拍三级| 日韩一区二区在线观看视频播放 | 日韩二区三区在线观看| 国产午夜精品久久久久久免费视 | 不卡的看片网站| 麻豆精品一区二区| 亚洲免费观看视频| 日韩欧美在线影院| 欧美亚洲免费在线一区| 国产成人在线观看免费网站| 日韩精品一二区| ...av二区三区久久精品| 精品99一区二区三区| 精品视频资源站| 成人黄色小视频| 激情欧美一区二区三区在线观看| 亚洲国产欧美在线| 国产精品盗摄一区二区三区| 欧美大黄免费观看| 欧美调教femdomvk| 91一区二区三区在线观看| 国产综合一区二区| 日韩电影免费在线观看网站| 亚洲美女区一区| 国产精品毛片高清在线完整版| 欧美成人免费网站| 在线电影院国产精品| 91免费观看在线| 岛国一区二区三区| 国产精品原创巨作av| 麻豆久久久久久久| 日韩国产欧美一区二区三区| 一区二区三区在线视频免费| 国产精品第四页| 国产精品视频你懂的| 久久精品一区二区三区不卡牛牛| 日韩精品每日更新| 亚洲成av人片| 亚洲国产成人精品视频| 一区二区三区在线不卡| 亚洲美女在线一区| 中文字幕中文字幕一区| 国产精品久久久久久久久免费相片 | 不卡的av电影在线观看| 粉嫩av亚洲一区二区图片| 国产一区二区三区四区五区美女| 欧美a级一区二区| 日日夜夜精品免费视频| 日韩av中文字幕一区二区三区| 亚洲一区二区三区爽爽爽爽爽| 亚洲欧美一区二区三区国产精品 | 中文在线资源观看网站视频免费不卡| 精品国产一二三区| 日韩你懂的在线观看| 精品久久人人做人人爰| 欧美成人激情免费网| 精品噜噜噜噜久久久久久久久试看| 欧美一区二区三区精品| 日韩一级成人av| 日韩欧美在线观看一区二区三区| 日韩欧美电影在线| 亚洲精品在线观看网站| 久久影院午夜论| 国产欧美一区二区三区网站| 国产女同互慰高潮91漫画| 中文字幕高清不卡| 亚洲色图在线看| 一区二区三区加勒比av| 亚洲国产精品一区二区www在线| 亚洲成人三级小说| 蜜臀精品一区二区三区在线观看| 美洲天堂一区二卡三卡四卡视频| 麻豆精品视频在线| 国产不卡视频一区| 91丨porny丨国产| 欧美日韩日日摸| 日韩视频免费直播| 久久久久久免费毛片精品| 中文幕一区二区三区久久蜜桃| 亚洲免费色视频| 日韩制服丝袜av| 国产精品一级在线| 99在线精品一区二区三区| 在线观看一区不卡| 欧美一级久久久久久久大片| 精品99一区二区三区| 国产精品三级电影| 亚洲国产精品一区二区www在线| 日本不卡123| 国产精品亚洲成人| 色欧美日韩亚洲| 欧美一二区视频| 国产精品久99| 日韩成人一级片| 成人精品免费网站| 欧美丝袜丝交足nylons图片| 日韩欧美国产午夜精品|