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

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

?? versatilepb.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
字號:
/* * ARM Versatile Platform/Application Baseboard System emulation. * * Copyright (c) 2005-2007 CodeSourcery. * Written by Paul Brook * * This code is licenced under the GPL. */#include "hw.h"#include "arm-misc.h"#include "primecell.h"#include "devices.h"#include "net.h"#include "sysemu.h"#include "pci.h"#include "boards.h"/* Primary interrupt controller.  */typedef struct vpb_sic_state{  uint32_t base;  uint32_t level;  uint32_t mask;  uint32_t pic_enable;  qemu_irq *parent;  int irq;} vpb_sic_state;static void vpb_sic_update(vpb_sic_state *s){    uint32_t flags;    flags = s->level & s->mask;    qemu_set_irq(s->parent[s->irq], flags != 0);}static void vpb_sic_update_pic(vpb_sic_state *s){    int i;    uint32_t mask;    for (i = 21; i <= 30; i++) {        mask = 1u << i;        if (!(s->pic_enable & mask))            continue;        qemu_set_irq(s->parent[i], (s->level & mask) != 0);    }}static void vpb_sic_set_irq(void *opaque, int irq, int level){    vpb_sic_state *s = (vpb_sic_state *)opaque;    if (level)        s->level |= 1u << irq;    else        s->level &= ~(1u << irq);    if (s->pic_enable & (1u << irq))        qemu_set_irq(s->parent[irq], level);    vpb_sic_update(s);}static uint32_t vpb_sic_read(void *opaque, target_phys_addr_t offset){    vpb_sic_state *s = (vpb_sic_state *)opaque;    offset -= s->base;    switch (offset >> 2) {    case 0: /* STATUS */        return s->level & s->mask;    case 1: /* RAWSTAT */        return s->level;    case 2: /* ENABLE */        return s->mask;    case 4: /* SOFTINT */        return s->level & 1;    case 8: /* PICENABLE */        return s->pic_enable;    default:        printf ("vpb_sic_read: Bad register offset 0x%x\n", (int)offset);        return 0;    }}static void vpb_sic_write(void *opaque, target_phys_addr_t offset,                          uint32_t value){    vpb_sic_state *s = (vpb_sic_state *)opaque;    offset -= s->base;    switch (offset >> 2) {    case 2: /* ENSET */        s->mask |= value;        break;    case 3: /* ENCLR */        s->mask &= ~value;        break;    case 4: /* SOFTINTSET */        if (value)            s->mask |= 1;        break;    case 5: /* SOFTINTCLR */        if (value)            s->mask &= ~1u;        break;    case 8: /* PICENSET */        s->pic_enable |= (value & 0x7fe00000);        vpb_sic_update_pic(s);        break;    case 9: /* PICENCLR */        s->pic_enable &= ~value;        vpb_sic_update_pic(s);        break;    default:        printf ("vpb_sic_write: Bad register offset 0x%x\n", (int)offset);        return;    }    vpb_sic_update(s);}static CPUReadMemoryFunc *vpb_sic_readfn[] = {   vpb_sic_read,   vpb_sic_read,   vpb_sic_read};static CPUWriteMemoryFunc *vpb_sic_writefn[] = {   vpb_sic_write,   vpb_sic_write,   vpb_sic_write};static qemu_irq *vpb_sic_init(uint32_t base, qemu_irq *parent, int irq){    vpb_sic_state *s;    qemu_irq *qi;    int iomemtype;    s = (vpb_sic_state *)qemu_mallocz(sizeof(vpb_sic_state));    if (!s)        return NULL;    qi = qemu_allocate_irqs(vpb_sic_set_irq, s, 32);    s->base = base;    s->parent = parent;    s->irq = irq;    iomemtype = cpu_register_io_memory(0, vpb_sic_readfn,                                       vpb_sic_writefn, s);    cpu_register_physical_memory(base, 0x00001000, iomemtype);    /* ??? Save/restore.  */    return qi;}/* Board init.  *//* The AB and PB boards both use the same core, just with different   peripherans and expansion busses.  For now we emulate a subset of the   PB peripherals and just change the board ID.  */static void versatile_init(int ram_size, int vga_ram_size,                     const char *boot_device, DisplayState *ds,                     const char *kernel_filename, const char *kernel_cmdline,                     const char *initrd_filename, const char *cpu_model,                     int board_id){    CPUState *env;    qemu_irq *pic;    qemu_irq *sic;    void *scsi_hba;    PCIBus *pci_bus;    NICInfo *nd;    int n;    int done_smc = 0;    int index;    if (!cpu_model)        cpu_model = "arm926";    env = cpu_init(cpu_model);    if (!env) {        fprintf(stderr, "Unable to find CPU definition\n");        exit(1);    }    /* ??? RAM shoud repeat to fill physical memory space.  */    /* SDRAM at address zero.  */    cpu_register_physical_memory(0, ram_size, IO_MEM_RAM);    arm_sysctl_init(0x10000000, 0x41007004);    pic = arm_pic_init_cpu(env);    pic = pl190_init(0x10140000, pic[0], pic[1]);    sic = vpb_sic_init(0x10003000, pic, 31);    pl050_init(0x10006000, sic[3], 0);    pl050_init(0x10007000, sic[4], 1);    pci_bus = pci_vpb_init(sic, 27, 0);    /* The Versatile PCI bridge does not provide access to PCI IO space,       so many of the qemu PCI devices are not useable.  */    for(n = 0; n < nb_nics; n++) {        nd = &nd_table[n];        if (!nd->model)            nd->model = done_smc ? "rtl8139" : "smc91c111";        if (strcmp(nd->model, "smc91c111") == 0) {            smc91c111_init(nd, 0x10010000, sic[25]);        } else {            pci_nic_init(pci_bus, nd, -1);        }    }    if (usb_enabled) {        usb_ohci_init_pci(pci_bus, 3, -1);    }    if (drive_get_max_bus(IF_SCSI) > 0) {        fprintf(stderr, "qemu: too many SCSI bus\n");        exit(1);    }    scsi_hba = lsi_scsi_init(pci_bus, -1);    for (n = 0; n < LSI_MAX_DEVS; n++) {        index = drive_get_index(IF_SCSI, 0, n);        if (index == -1)            continue;        lsi_scsi_attach(scsi_hba, drives_table[index].bdrv, n);    }    pl011_init(0x101f1000, pic[12], serial_hds[0], PL011_ARM);    pl011_init(0x101f2000, pic[13], serial_hds[1], PL011_ARM);    pl011_init(0x101f3000, pic[14], serial_hds[2], PL011_ARM);    pl011_init(0x10009000, sic[6], serial_hds[3], PL011_ARM);    pl080_init(0x10130000, pic[17], 8);    sp804_init(0x101e2000, pic[4]);    sp804_init(0x101e3000, pic[5]);    /* The versatile/PB actually has a modified Color LCD controller       that includes hardware cursor support from the PL111.  */    pl110_init(ds, 0x10120000, pic[16], 1);    index = drive_get_index(IF_SD, 0, 0);    if (index == -1) {        fprintf(stderr, "qemu: missing SecureDigital card\n");        exit(1);    }    pl181_init(0x10005000, drives_table[index].bdrv, sic[22], sic[1]);#if 0    /* Disabled because there's no way of specifying a block device.  */    pl181_init(0x1000b000, NULL, sic, 23, 2);#endif    /* Add PL031 Real Time Clock. */    pl031_init(0x101e8000,pic[10]);    /* Memory map for Versatile/PB:  */    /* 0x10000000 System registers.  */    /* 0x10001000 PCI controller config registers.  */    /* 0x10002000 Serial bus interface.  */    /*  0x10003000 Secondary interrupt controller.  */    /* 0x10004000 AACI (audio).  */    /*  0x10005000 MMCI0.  */    /*  0x10006000 KMI0 (keyboard).  */    /*  0x10007000 KMI1 (mouse).  */    /* 0x10008000 Character LCD Interface.  */    /*  0x10009000 UART3.  */    /* 0x1000a000 Smart card 1.  */    /*  0x1000b000 MMCI1.  */    /*  0x10010000 Ethernet.  */    /* 0x10020000 USB.  */    /* 0x10100000 SSMC.  */    /* 0x10110000 MPMC.  */    /*  0x10120000 CLCD Controller.  */    /*  0x10130000 DMA Controller.  */    /*  0x10140000 Vectored interrupt controller.  */    /* 0x101d0000 AHB Monitor Interface.  */    /* 0x101e0000 System Controller.  */    /* 0x101e1000 Watchdog Interface.  */    /* 0x101e2000 Timer 0/1.  */    /* 0x101e3000 Timer 2/3.  */    /* 0x101e4000 GPIO port 0.  */    /* 0x101e5000 GPIO port 1.  */    /* 0x101e6000 GPIO port 2.  */    /* 0x101e7000 GPIO port 3.  */    /* 0x101e8000 RTC.  */    /* 0x101f0000 Smart card 0.  */    /*  0x101f1000 UART0.  */    /*  0x101f2000 UART1.  */    /*  0x101f3000 UART2.  */    /* 0x101f4000 SSPI.  */    arm_load_kernel(env, ram_size, kernel_filename, kernel_cmdline,                    initrd_filename, board_id, 0x0);}static void vpb_init(int ram_size, int vga_ram_size,                     const char *boot_device, DisplayState *ds,                     const char *kernel_filename, const char *kernel_cmdline,                     const char *initrd_filename, const char *cpu_model){    versatile_init(ram_size, vga_ram_size,                   boot_device, ds,                   kernel_filename, kernel_cmdline,                   initrd_filename, cpu_model, 0x183);}static void vab_init(int ram_size, int vga_ram_size,                     const char *boot_device, DisplayState *ds,                     const char *kernel_filename, const char *kernel_cmdline,                     const char *initrd_filename, const char *cpu_model){    versatile_init(ram_size, vga_ram_size,                   boot_device, ds,                   kernel_filename, kernel_cmdline,                   initrd_filename, cpu_model, 0x25e);}QEMUMachine versatilepb_machine = {    "versatilepb",    "ARM Versatile/PB (ARM926EJ-S)",    vpb_init,};QEMUMachine versatileab_machine = {    "versatileab",    "ARM Versatile/AB (ARM926EJ-S)",    vab_init,};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清久久久| 欧洲精品一区二区| 色94色欧美sute亚洲13| 欧美日韩二区三区| 国产三级三级三级精品8ⅰ区| 亚洲三级免费电影| 久久99国产精品久久99| 色先锋久久av资源部| 久久久久国产精品麻豆ai换脸| 亚洲妇熟xx妇色黄| 91免费在线播放| 久久久久九九视频| 青青青伊人色综合久久| 欧美性大战久久久| 亚洲日本青草视频在线怡红院| 国产另类ts人妖一区二区| 欧美精品1区2区3区| 亚洲免费观看在线视频| 成人av在线播放网站| 久久亚洲春色中文字幕久久久| 午夜精品久久久久久久| 日本道在线观看一区二区| 欧美激情一区二区| 国产91精品一区二区麻豆网站 | 亚洲一二三区在线观看| 丰满放荡岳乱妇91ww| 久久婷婷一区二区三区| 久久av资源站| 日韩欧美一区在线观看| 日日骚欧美日韩| 欧美欧美午夜aⅴ在线观看| 一卡二卡欧美日韩| 欧美亚男人的天堂| 亚洲欧美偷拍三级| 91黄色在线观看| 亚洲一区二区三区视频在线播放| 91性感美女视频| 亚洲免费观看在线视频| 欧美日韩一区二区三区在线看| 亚洲一级在线观看| 欧美喷潮久久久xxxxx| 日本怡春院一区二区| 欧美一区二区在线播放| 免费成人小视频| 久久久久综合网| 成人网页在线观看| 成人欧美一区二区三区| 色婷婷激情一区二区三区| 一区二区三区高清在线| 欧美日本在线看| 狠狠色丁香婷婷综合久久片| 久久久久久久久久久久久女国产乱 | 日韩精品电影一区亚洲| 日韩一区二区三区视频在线| 国产在线精品一区在线观看麻豆| 国产午夜精品久久| 91黄视频在线观看| 久久99精品国产麻豆婷婷洗澡| 国产日产欧产精品推荐色| 色综合久久久久久久久| 免费美女久久99| 亚洲国产成人午夜在线一区| 日本韩国欧美三级| 紧缚奴在线一区二区三区| 中文字幕日本不卡| 欧美一级夜夜爽| 99在线精品视频| 麻豆免费精品视频| 亚洲欧洲精品一区二区精品久久久 | 欧美成人r级一区二区三区| 国产成人小视频| 亚洲成av人片观看| 欧美高清一级片在线观看| 欧美影视一区在线| 韩日精品视频一区| 亚洲精选免费视频| 久久久久国产成人精品亚洲午夜| 欧美在线影院一区二区| 国产一区二区三区香蕉| 亚洲一区二区三区爽爽爽爽爽 | 丁香激情综合国产| 日韩和欧美一区二区三区| 中文字幕二三区不卡| 欧美日本韩国一区| 91亚洲精品久久久蜜桃网站| 经典三级在线一区| 青青草国产成人av片免费| 亚洲色图制服丝袜| 国产欧美一区二区精品婷婷| 欧美三级电影在线观看| 91在线云播放| 粉嫩aⅴ一区二区三区四区| 午夜影院在线观看欧美| 亚洲色图20p| 国产精品高潮呻吟| 国产亚洲精品aa| 欧美不卡一区二区三区| 欧美色成人综合| 色激情天天射综合网| 成人一道本在线| 国产黄色精品视频| 国产主播一区二区| 日本女人一区二区三区| 亚洲国产另类精品专区| 亚洲激情五月婷婷| 亚洲色图一区二区三区| 国产精品美女久久久久高潮| www亚洲一区| 欧美精品一区二区三区很污很色的 | 天天操天天干天天综合网| 亚洲欧美偷拍另类a∨色屁股| 国产人久久人人人人爽| 精品粉嫩aⅴ一区二区三区四区| 91精品国产高清一区二区三区蜜臀 | 亚洲人成网站色在线观看| 国产精品无人区| 中文字幕国产精品一区二区| 精品久久久久久久人人人人传媒 | 中文成人综合网| 中文欧美字幕免费| 亚洲少妇30p| 亚洲国产精品一区二区www在线| 亚洲一区精品在线| 亚洲福利国产精品| 美女精品自拍一二三四| 久久精品国产澳门| 国产在线精品一区二区夜色| 国产成人综合自拍| 播五月开心婷婷综合| 色香蕉久久蜜桃| 7799精品视频| www成人在线观看| 国产亲近乱来精品视频| 中文字幕在线不卡一区二区三区 | 久久婷婷综合激情| 国产精品天干天干在线综合| 国产精品久久久久影视| 亚洲小说欧美激情另类| 男人的j进女人的j一区| 狠狠色丁香婷婷综合| 波多野结衣一区二区三区| 不卡一卡二卡三乱码免费网站| 99re这里只有精品首页| 欧美日韩国产综合视频在线观看 | 国产精品久久久久aaaa樱花| 一区二区在线观看免费视频播放| 日韩综合在线视频| 国产精品香蕉一区二区三区| 99这里只有久久精品视频| 欧洲另类一二三四区| 久久综合久久鬼色中文字| 亚洲摸摸操操av| 免费成人小视频| www.欧美日韩| 91精品国产色综合久久 | 日韩欧美一级特黄在线播放| 欧美激情一区二区三区全黄| 亚洲动漫第一页| 国产乱妇无码大片在线观看| gogogo免费视频观看亚洲一| 欧美一区二区视频在线观看2020| 国产精品毛片无遮挡高清| 视频一区视频二区中文| 不卡av电影在线播放| 亚洲精品一区二区三区四区高清| 亚洲女爱视频在线| 国产麻豆精品一区二区| 欧美剧情电影在线观看完整版免费励志电影| www激情久久| 男女男精品网站| 91国偷自产一区二区三区观看 | 制服丝袜亚洲色图| 国产精品久久午夜| 激情综合色丁香一区二区| 欧美性极品少妇| 亚洲天堂2014| 国产精品1区二区.| 精品国产区一区| 日韩精品免费专区| 欧美中文字幕亚洲一区二区va在线| 欧美国产精品一区二区| 久久超级碰视频| 日韩视频国产视频| 日韩精品成人一区二区在线| 欧美亚洲一区二区在线观看| 中文字幕在线不卡一区| 国产成人av电影| 中文字幕av一区二区三区高| 久久国产精品99久久久久久老狼 | 色综合久久中文综合久久牛| 国产色91在线| 丁香网亚洲国际| 欧美激情一区在线观看| 国产一区二区不卡| 久久久www成人免费毛片麻豆| 久久国产剧场电影| 欧美mv日韩mv国产网站| 开心九九激情九九欧美日韩精美视频电影| 欧美日韩国产bt| 欧美a级理论片|