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

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

?? pcnet.c

?? xen虛擬機(jī)源代碼安裝包
?? C
?? 第 1 頁 / 共 5 頁
字號:
#ifdef PCNET_DEBUG_IO    printf("pcnet_ioport_writel addr=0x%08x val=0x%08x\n", addr, val);#endif    if (BCR_DWIO(s)) {        switch (addr & 0x0f) {        case 0x00: /* RDP */            pcnet_csr_writew(s, s->rap, val & 0xffff);            break;        case 0x04:            s->rap = val & 0x7f;            break;        case 0x0c:            pcnet_bcr_writew(s, s->rap, val & 0xffff);            break;        }    } else    if ((addr & 0x0f) == 0) {        /* switch device to dword i/o mode */        pcnet_bcr_writew(s, BCR_BSBC, pcnet_bcr_readw(s, BCR_BSBC) | 0x0080);#ifdef PCNET_DEBUG_IO        printf("device switched into dword i/o mode\n");#endif    }    pcnet_update_irq(s);}static uint32_t pcnet_ioport_readl(void *opaque, uint32_t addr){    PCNetState *s = opaque;    uint32_t val = -1;    pcnet_poll_timer(s);    if (BCR_DWIO(s)) {        switch (addr & 0x0f) {        case 0x00: /* RDP */            val = pcnet_csr_readw(s, s->rap);            break;        case 0x04:            val = s->rap;            break;        case 0x08:            pcnet_s_reset(s);            val = 0;            break;        case 0x0c:            val = pcnet_bcr_readw(s, s->rap);            break;        }    }    pcnet_update_irq(s);#ifdef PCNET_DEBUG_IO    printf("pcnet_ioport_readl addr=0x%08x val=0x%08x\n", addr, val);#endif    return val;}static void pcnet_ioport_map(PCIDevice *pci_dev, int region_num,                             uint32_t addr, uint32_t size, int type){    PCNetState *d = (PCNetState *)pci_dev;#ifdef PCNET_DEBUG_IO    printf("pcnet_ioport_map addr=0x%04x size=0x%04x\n", addr, size);#endif    register_ioport_write(addr, 16, 1, pcnet_aprom_writeb, d);    register_ioport_read(addr, 16, 1, pcnet_aprom_readb, d);    register_ioport_write(addr + 0x10, 0x10, 2, pcnet_ioport_writew, d);    register_ioport_read(addr + 0x10, 0x10, 2, pcnet_ioport_readw, d);    register_ioport_write(addr + 0x10, 0x10, 4, pcnet_ioport_writel, d);    register_ioport_read(addr + 0x10, 0x10, 4, pcnet_ioport_readl, d);}static void pcnet_mmio_writeb(void *opaque, target_phys_addr_t addr, uint32_t val){    PCNetState *d = opaque;#ifdef PCNET_DEBUG_IO    printf("pcnet_mmio_writeb addr=0x%08x val=0x%02x\n", addr, val);#endif    if (!(addr & 0x10))        pcnet_aprom_writeb(d, addr & 0x0f, val);}static uint32_t pcnet_mmio_readb(void *opaque, target_phys_addr_t addr){    PCNetState *d = opaque;    uint32_t val = -1;    if (!(addr & 0x10))        val = pcnet_aprom_readb(d, addr & 0x0f);#ifdef PCNET_DEBUG_IO    printf("pcnet_mmio_readb addr=0x%08x val=0x%02x\n", addr, val & 0xff);#endif    return val;}static void pcnet_mmio_writew(void *opaque, target_phys_addr_t addr, uint32_t val){    PCNetState *d = opaque;#ifdef PCNET_DEBUG_IO    printf("pcnet_mmio_writew addr=0x%08x val=0x%04x\n", addr, val);#endif    if (addr & 0x10)        pcnet_ioport_writew(d, addr & 0x0f, val);    else {        addr &= 0x0f;        pcnet_aprom_writeb(d, addr, val & 0xff);        pcnet_aprom_writeb(d, addr+1, (val & 0xff00) >> 8);    }}static uint32_t pcnet_mmio_readw(void *opaque, target_phys_addr_t addr){    PCNetState *d = opaque;    uint32_t val = -1;    if (addr & 0x10)        val = pcnet_ioport_readw(d, addr & 0x0f);    else {        addr &= 0x0f;        val = pcnet_aprom_readb(d, addr+1);        val <<= 8;        val |= pcnet_aprom_readb(d, addr);    }#ifdef PCNET_DEBUG_IO    printf("pcnet_mmio_readw addr=0x%08x val = 0x%04x\n", addr, val & 0xffff);#endif    return val;}static void pcnet_mmio_writel(void *opaque, target_phys_addr_t addr, uint32_t val){    PCNetState *d = opaque;#ifdef PCNET_DEBUG_IO    printf("pcnet_mmio_writel addr=0x%08x val=0x%08x\n", addr, val);#endif    if (addr & 0x10)        pcnet_ioport_writel(d, addr & 0x0f, val);    else {        addr &= 0x0f;        pcnet_aprom_writeb(d, addr, val & 0xff);        pcnet_aprom_writeb(d, addr+1, (val & 0xff00) >> 8);        pcnet_aprom_writeb(d, addr+2, (val & 0xff0000) >> 16);        pcnet_aprom_writeb(d, addr+3, (val & 0xff000000) >> 24);    }}static uint32_t pcnet_mmio_readl(void *opaque, target_phys_addr_t addr){    PCNetState *d = opaque;    uint32_t val;    if (addr & 0x10)        val = pcnet_ioport_readl(d, addr & 0x0f);    else {        addr &= 0x0f;        val = pcnet_aprom_readb(d, addr+3);        val <<= 8;        val |= pcnet_aprom_readb(d, addr+2);        val <<= 8;        val |= pcnet_aprom_readb(d, addr+1);        val <<= 8;        val |= pcnet_aprom_readb(d, addr);    }#ifdef PCNET_DEBUG_IO    printf("pcnet_mmio_readl addr=0x%08x val=0x%08x\n", addr, val);#endif    return val;}static void pcnet_save(QEMUFile *f, void *opaque){    PCNetState *s = opaque;    unsigned int i;    if (s->pci_dev)        pci_device_save(s->pci_dev, f);    qemu_put_be32(f, s->rap);    qemu_put_be32(f, s->isr);    qemu_put_be32(f, s->lnkst);    qemu_put_be32s(f, &s->rdra);    qemu_put_be32s(f, &s->tdra);    qemu_put_buffer(f, s->prom, 16);    for (i = 0; i < 128; i++)        qemu_put_be16s(f, &s->csr[i]);    for (i = 0; i < 32; i++)        qemu_put_be16s(f, &s->bcr[i]);    qemu_put_be64s(f, &s->timer);    qemu_put_be32(f, s->xmit_pos);    qemu_put_be32(f, s->recv_pos);    qemu_put_buffer(f, s->buffer, 4096);    qemu_put_be32(f, s->tx_busy);    qemu_put_timer(f, s->poll_timer);}static int pcnet_load(QEMUFile *f, void *opaque, int version_id){    PCNetState *s = opaque;    int i, ret;    if (version_id != 2)        return -EINVAL;    if (s->pci_dev) {        ret = pci_device_load(s->pci_dev, f);        if (ret < 0)            return ret;    }    qemu_get_be32s(f, (uint32_t*)&s->rap);    qemu_get_be32s(f, (uint32_t*)&s->isr);    qemu_get_be32s(f, (uint32_t*)&s->lnkst);    qemu_get_be32s(f, &s->rdra);    qemu_get_be32s(f, &s->tdra);    qemu_get_buffer(f, s->prom, 16);    for (i = 0; i < 128; i++)        qemu_get_be16s(f, &s->csr[i]);    for (i = 0; i < 32; i++)        qemu_get_be16s(f, &s->bcr[i]);    qemu_get_be64s(f, &s->timer);    qemu_get_be32s(f, (uint32_t*)&s->xmit_pos);    qemu_get_be32s(f, (uint32_t*)&s->recv_pos);    qemu_get_buffer(f, s->buffer, 4096);    qemu_get_be32s(f, (uint32_t*)&s->tx_busy);    qemu_get_timer(f, s->poll_timer);    return 0;}static void pcnet_common_init(PCNetState *d, NICInfo *nd, const char *info_str){    int instance;    d->poll_timer = qemu_new_timer(vm_clock, pcnet_poll_timer, d);    d->nd = nd;    if (nd && nd->vlan) {        d->vc = qemu_new_vlan_client(nd->vlan, pcnet_receive,                                     pcnet_can_receive, d);        snprintf(d->vc->info_str, sizeof(d->vc->info_str),                 "pcnet macaddr=%02x:%02x:%02x:%02x:%02x:%02x",                 d->nd->macaddr[0],                 d->nd->macaddr[1],                 d->nd->macaddr[2],                 d->nd->macaddr[3],                 d->nd->macaddr[4],                 d->nd->macaddr[5]);    } else {        d->vc = NULL;    }    pcnet_h_reset(d);    instance = pci_bus_num(d->dev.bus) << 8 | d->dev.devfn;    register_savevm("pcnet", instance, 2, pcnet_save, pcnet_load, d);}/* PCI interface */static CPUWriteMemoryFunc *pcnet_mmio_write[] = {    (CPUWriteMemoryFunc *)&pcnet_mmio_writeb,    (CPUWriteMemoryFunc *)&pcnet_mmio_writew,    (CPUWriteMemoryFunc *)&pcnet_mmio_writel};static CPUReadMemoryFunc *pcnet_mmio_read[] = {    (CPUReadMemoryFunc *)&pcnet_mmio_readb,    (CPUReadMemoryFunc *)&pcnet_mmio_readw,    (CPUReadMemoryFunc *)&pcnet_mmio_readl};static void pcnet_mmio_map(PCIDevice *pci_dev, int region_num,                            uint32_t addr, uint32_t size, int type){    PCNetState *d = (PCNetState *)pci_dev;#ifdef PCNET_DEBUG_IO    printf("pcnet_ioport_map addr=0x%08x 0x%08x\n", addr, size);#endif    cpu_register_physical_memory(addr, PCNET_PNPMMIO_SIZE, d->mmio_index);}static void pci_physical_memory_write(void *dma_opaque, target_phys_addr_t addr,                                      uint8_t *buf, int len, int do_bswap){    cpu_physical_memory_write(addr, buf, len);}static void pci_physical_memory_read(void *dma_opaque, target_phys_addr_t addr,                                     uint8_t *buf, int len, int do_bswap){    cpu_physical_memory_read(addr, buf, len);}void pci_pcnet_init(PCIBus *bus, NICInfo *nd, int devfn){    PCNetState *d;    uint8_t *pci_conf;#if 0    printf("sizeof(RMD)=%d, sizeof(TMD)=%d\n",        sizeof(struct pcnet_RMD), sizeof(struct pcnet_TMD));#endif    d = (PCNetState *)pci_register_device(bus, "PCNet", sizeof(PCNetState),                                          devfn, NULL, NULL);    pci_conf = d->dev.config;    *(uint16_t *)&pci_conf[0x00] = cpu_to_le16(0x1022);    *(uint16_t *)&pci_conf[0x02] = cpu_to_le16(0x2000);    *(uint16_t *)&pci_conf[0x04] = cpu_to_le16(0x0007);    *(uint16_t *)&pci_conf[0x06] = cpu_to_le16(0x0280);    pci_conf[0x08] = 0x10;    pci_conf[0x09] = 0x00;    pci_conf[0x0a] = 0x00; // ethernet network controller    pci_conf[0x0b] = 0x02;    pci_conf[0x0e] = 0x00; // header_type    *(uint32_t *)&pci_conf[0x10] = cpu_to_le32(0x00000001);    *(uint32_t *)&pci_conf[0x14] = cpu_to_le32(0x00000000);    pci_conf[0x3d] = 1; // interrupt pin 0    pci_conf[0x3e] = 0x06;    pci_conf[0x3f] = 0xff;    /* Handler for memory-mapped I/O */    d->mmio_index =      cpu_register_io_memory(0, pcnet_mmio_read, pcnet_mmio_write, d);    pci_register_io_region((PCIDevice *)d, 0, PCNET_IOPORT_SIZE,                           PCI_ADDRESS_SPACE_IO, pcnet_ioport_map);    pci_register_io_region((PCIDevice *)d, 1, PCNET_PNPMMIO_SIZE,                           PCI_ADDRESS_SPACE_MEM, pcnet_mmio_map);    d->irq = d->dev.irq[0];    d->phys_mem_read = pci_physical_memory_read;    d->phys_mem_write = pci_physical_memory_write;    d->pci_dev = &d->dev;    pcnet_common_init(d, nd, "pcnet");}/* SPARC32 interface */#if defined (TARGET_SPARC) && !defined(TARGET_SPARC64) // Avoid compile failure#include "sun4m.h"static void parent_lance_reset(void *opaque, int irq, int level){    if (level)        pcnet_h_reset(opaque);}static void lance_mem_writew(void *opaque, target_phys_addr_t addr,                             uint32_t val){#ifdef PCNET_DEBUG_IO    printf("lance_mem_writew addr=" TARGET_FMT_plx " val=0x%04x\n", addr,           val & 0xffff);#endif    pcnet_ioport_writew(opaque, addr & 7, val & 0xffff);}static uint32_t lance_mem_readw(void *opaque, target_phys_addr_t addr){    uint32_t val;    val = pcnet_ioport_readw(opaque, addr & 7);#ifdef PCNET_DEBUG_IO    printf("pcnet_mmio_readw addr=" TARGET_FMT_plx " val = 0x%04x\n", addr,           val & 0xffff);#endif    return val & 0xffff;}static CPUReadMemoryFunc *lance_mem_read[3] = {    NULL,    lance_mem_readw,    NULL,};static CPUWriteMemoryFunc *lance_mem_write[3] = {    NULL,    lance_mem_writew,    NULL,};void lance_init(NICInfo *nd, target_phys_addr_t leaddr, void *dma_opaque,                qemu_irq irq, qemu_irq *reset){    PCNetState *d;    int lance_io_memory;    d = qemu_mallocz(sizeof(PCNetState));    if (!d)        return;    lance_io_memory =        cpu_register_io_memory(0, lance_mem_read, lance_mem_write, d);    d->dma_opaque = dma_opaque;    *reset = *qemu_allocate_irqs(parent_lance_reset, d, 1);    cpu_register_physical_memory(leaddr, 4, lance_io_memory);    d->irq = irq;    d->phys_mem_read = ledma_memory_read;    d->phys_mem_write = ledma_memory_write;    pcnet_common_init(d, nd, "lance");}#endif /* TARGET_SPARC */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色播五月激情综合网| 亚洲另类春色国产| 菠萝蜜视频在线观看一区| 综合久久国产九一剧情麻豆| 日本久久精品电影| 免费精品视频在线| 国产精品拍天天在线| 在线看一区二区| 蜜桃av一区二区在线观看| 国产欧美日韩激情| 欧美午夜免费电影| 激情文学综合丁香| 一区二区三区在线观看网站| 欧美一区二区三区的| 粉嫩一区二区三区在线看| 亚洲国产精品一区二区www| 久久久综合网站| 日本精品裸体写真集在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美激情综合在线| 欧美日韩成人在线| 国产成人免费网站| 偷拍亚洲欧洲综合| 国产精品国产精品国产专区不蜜 | 中文字幕免费一区| 精品视频在线看| 麻豆精品视频在线| 一区二区三区波多野结衣在线观看| 欧美精品一区二区在线播放| 欧美亚洲国产一区二区三区| 国产一区二区导航在线播放| 亚洲综合色区另类av| 中文字幕电影一区| 欧美在线观看视频在线| 欧美自拍丝袜亚洲| 成人一道本在线| 国产曰批免费观看久久久| 亚洲va天堂va国产va久| 国产精品久久久久久久久动漫| 欧美曰成人黄网| 北条麻妃国产九九精品视频| 国产成人免费xxxxxxxx| 久久精品噜噜噜成人av农村| 亚洲成av人片一区二区梦乃| 亚洲美女精品一区| 1区2区3区精品视频| 欧美极品另类videosde| 久久男人中文字幕资源站| 日韩三级免费观看| 91.com视频| 欧美日韩高清一区二区三区| 日本高清免费不卡视频| 成人久久18免费网站麻豆| 国产精品一区二区三区网站| 美脚の诱脚舐め脚责91| 成人欧美一区二区三区1314| 国产日产精品1区| 久久免费午夜影院| 国产无一区二区| 久久影院视频免费| 久久嫩草精品久久久精品一| 欧美精品一区二区蜜臀亚洲| 精品国产123| 欧美日韩国产色站一区二区三区| 一本大道av伊人久久综合| 色综合婷婷久久| 99久久伊人久久99| 97成人超碰视| 欧亚洲嫩模精品一区三区| 欧美日韩一区中文字幕| 欧美在线制服丝袜| 欧美日韩一区二区在线观看| 欧美巨大另类极品videosbest| 一本大道久久a久久综合| 色哟哟在线观看一区二区三区| 色婷婷综合五月| 成人性视频网站| 99久久夜色精品国产网站| 97se亚洲国产综合自在线观| 精品欧美一区二区久久| 国产亚洲综合在线| 国产精品久久久久久妇女6080| 亚洲视频一区二区在线| 亚洲国产综合在线| 国内精品视频666| 在线精品视频免费观看| 日韩三级免费观看| 综合久久久久久久| 精品在线观看免费| 色偷偷成人一区二区三区91 | 欧美一区二区三区播放老司机| www激情久久| 亚洲一区在线播放| 国产精品亚洲一区二区三区妖精 | 国产伦理精品不卡| 91福利国产成人精品照片| 久久综合色一综合色88| 亚洲一区二区三区三| 久99久精品视频免费观看| 欧美性猛片aaaaaaa做受| 国产欧美精品国产国产专区| 日本视频中文字幕一区二区三区| 成年人午夜久久久| 亚洲精品一线二线三线无人区| 亚洲一区二区三区自拍| 成人免费高清在线| 欧美精品一区二区在线播放| 午夜欧美电影在线观看| 99麻豆久久久国产精品免费| 2019国产精品| 免费观看30秒视频久久| 色哦色哦哦色天天综合| 国产日韩精品一区二区三区| 久久丁香综合五月国产三级网站| 日本韩国精品在线| 中文字幕乱码日本亚洲一区二区| 久久国产精品72免费观看| 欧美日韩第一区日日骚| 亚洲精品少妇30p| 成人污视频在线观看| 久久精品日韩一区二区三区| 开心九九激情九九欧美日韩精美视频电影| 欧洲av一区二区嗯嗯嗯啊| 亚洲欧美另类久久久精品 | 欧美婷婷六月丁香综合色| 日本一区二区三区在线不卡| 国产一区二区网址| 欧美电影免费观看高清完整版在线 | 91精品视频网| 亚洲国产一区二区视频| 91视频在线看| 自拍偷拍亚洲激情| 99re8在线精品视频免费播放| 国产欧美日产一区| 国产91清纯白嫩初高中在线观看 | 国产最新精品免费| 精品国产伦一区二区三区观看体验| 琪琪久久久久日韩精品| 欧美精品乱人伦久久久久久| 性欧美大战久久久久久久久| 欧美色中文字幕| 亚洲成人av一区| 欧美色综合网站| 日本成人在线一区| 欧美一级艳片视频免费观看| 麻豆高清免费国产一区| 精品国产一区二区三区四区四| 精品一区二区三区免费| 久久精品人人做人人综合| 国产99久久久国产精品潘金网站| 国产精品美女久久久久aⅴ国产馆| 成人动漫一区二区三区| 亚洲欧美综合网| 欧日韩精品视频| 日本欧美一区二区三区| 精品久久久久久久人人人人传媒 | 日本欧美一区二区三区乱码| 精品日韩一区二区| 国产高清视频一区| 亚洲欧美日本韩国| 88在线观看91蜜桃国自产| 伦理电影国产精品| 国产精品―色哟哟| 欧美少妇bbb| 久久99久久久久久久久久久| 国产日韩三级在线| 色偷偷一区二区三区| 欧美aⅴ一区二区三区视频| 国产三级精品在线| 91免费观看视频在线| 青青草国产精品亚洲专区无| www精品美女久久久tv| 91看片淫黄大片一级在线观看| 亚洲国产毛片aaaaa无费看 | 爽好多水快深点欧美视频| 精品对白一区国产伦| 91在线精品一区二区| 亚洲成人1区2区| 久久久av毛片精品| 欧美系列亚洲系列| 国产一区在线精品| 亚洲三级电影网站| 国产精品国产三级国产有无不卡 | 国产精品欧美精品| 欧美日本国产一区| 福利电影一区二区三区| 亚洲18女电影在线观看| 国产欧美视频一区二区| 欧美日韩中文字幕一区| 国产精品亚洲一区二区三区妖精| 亚洲午夜久久久久久久久电影院| 久久伊人蜜桃av一区二区| 在线观看欧美日本| 国产91清纯白嫩初高中在线观看| 亚洲国产精品影院| 中文字幕免费观看一区| 欧美成人精品二区三区99精品| 92国产精品观看| 韩国v欧美v日本v亚洲v| 日韩国产在线一|