本文整理汇总了C++中cpu_register_io_memory函数的典型用法代码示例。如果您正苦于以下问题:C++ cpu_register_io_memory函数的具体用法?C++ cpu_register_io_memory怎么用?C++ cpu_register_io_memory使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cpu_register_io_memory函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: xilinx_uartlite_init
static int xilinx_uartlite_init(SysBusDevice *dev)
{
struct xlx_uartlite *s = FROM_SYSBUS(typeof (*s), dev);
int uart_regs;
sysbus_init_irq(dev, &s->irq);
uart_update_status(s);
uart_regs = cpu_register_io_memory(uart_read, uart_write, s,
DEVICE_NATIVE_ENDIAN);
sysbus_init_mmio(dev, R_MAX * 4, uart_regs);
s->chr = qdev_init_chardev(&dev->qdev);
if (s->chr)
qemu_chr_add_handlers(s->chr, uart_can_rx, uart_rx, uart_event, s);
return 0;
}
开发者ID:AsherBond,项目名称:qemu-kvm,代码行数:17,代码来源:xilinx_uartlite.c
示例2: qemu_mallocz
PXA2xxKeyPadState *pxa27x_keypad_init(target_phys_addr_t base,
qemu_irq irq)
{
int iomemtype;
PXA2xxKeyPadState *s;
s = (PXA2xxKeyPadState *) qemu_mallocz(sizeof(PXA2xxKeyPadState));
s->irq = irq;
iomemtype = cpu_register_io_memory(pxa2xx_keypad_readfn,
pxa2xx_keypad_writefn, s, DEVICE_NATIVE_ENDIAN);
cpu_register_physical_memory(base, 0x00100000, iomemtype);
vmstate_register(NULL, 0, &vmstate_pxa2xx_keypad, s);
return s;
}
开发者ID:16aug,项目名称:nvmeqemu,代码行数:17,代码来源:pxa2xx_keypad.c
示例3: lm32_timer_init
static int lm32_timer_init(SysBusDevice *dev)
{
LM32TimerState *s = FROM_SYSBUS(typeof(*s), dev);
int timer_regs;
sysbus_init_irq(dev, &s->irq);
s->bh = qemu_bh_new(timer_hit, s);
s->ptimer = ptimer_init(s->bh);
ptimer_set_freq(s->ptimer, s->freq_hz);
timer_regs = cpu_register_io_memory(timer_read_fn, timer_write_fn, s,
DEVICE_NATIVE_ENDIAN);
sysbus_init_mmio(dev, R_MAX * 4, timer_regs);
return 0;
}
开发者ID:16aug,项目名称:nvmeqemu,代码行数:17,代码来源:lm32_timer.c
示例4: etraxfs_ser_init
static void etraxfs_ser_init(SysBusDevice *dev)
{
struct etrax_serial *s = FROM_SYSBUS(typeof (*s), dev);
int ser_regs;
/* transmitter begins ready and idle. */
s->regs[RS_STAT_DIN] |= (1 << STAT_TR_RDY);
s->regs[RS_STAT_DIN] |= (1 << STAT_TR_IDLE);
sysbus_init_irq(dev, &s->irq);
ser_regs = cpu_register_io_memory(ser_read, ser_write, s);
sysbus_init_mmio(dev, R_MAX * 4, ser_regs);
s->chr = qdev_init_chardev(&dev->qdev);
if (s->chr)
qemu_chr_add_handlers(s->chr,
serial_can_receive, serial_receive,
serial_event, s);
}
开发者ID:ESOS-Lab,项目名称:VSSIM,代码行数:18,代码来源:etraxfs_ser.c
示例5: icp_pit_init
void icp_pit_init(uint32_t base, qemu_irq *pic, int irq)
{
int iomemtype;
icp_pit_state *s;
s = (icp_pit_state *)qemu_mallocz(sizeof(icp_pit_state));
/* Timer 0 runs at the system clock speed (40MHz). */
s->timer[0] = arm_timer_init(40000000, pic[irq]);
/* The other two timers run at 1MHz. */
s->timer[1] = arm_timer_init(1000000, pic[irq + 1]);
s->timer[2] = arm_timer_init(1000000, pic[irq + 2]);
iomemtype = cpu_register_io_memory(0, icp_pit_readfn,
icp_pit_writefn, s);
cpu_register_physical_memory(base, 0x00001000, iomemtype);
/* This device has no state to save/restore. The component timers will
save themselves. */
}
开发者ID:CPFL,项目名称:gxen,代码行数:18,代码来源:arm_timer.c
示例6: sp804_init
void sp804_init(uint32_t base, qemu_irq irq)
{
int iomemtype;
sp804_state *s;
qemu_irq *qi;
s = (sp804_state *)qemu_mallocz(sizeof(sp804_state));
qi = qemu_allocate_irqs(sp804_set_irq, s, 2);
s->irq = irq;
/* ??? The timers are actually configurable between 32kHz and 1MHz, but
we don't implement that. */
s->timer[0] = arm_timer_init(1000000, qi[0]);
s->timer[1] = arm_timer_init(1000000, qi[1]);
iomemtype = cpu_register_io_memory(0, sp804_readfn,
sp804_writefn, s);
cpu_register_physical_memory(base, 0x00001000, iomemtype);
register_savevm("sp804", -1, 1, sp804_save, sp804_load, s);
}
开发者ID:CPFL,项目名称:gxen,代码行数:18,代码来源:arm_timer.c
示例7: lance_init
static int lance_init(SysBusDevice *dev)
{
SysBusPCNetState *d = FROM_SYSBUS(SysBusPCNetState, dev);
PCNetState *s = &d->state;
s->mmio_index =
cpu_register_io_memory(lance_mem_read, lance_mem_write, d);
qdev_init_gpio_in(&dev->qdev, parent_lance_reset, 1);
sysbus_init_mmio(dev, 4, s->mmio_index);
sysbus_init_irq(dev, &s->irq);
s->phys_mem_read = ledma_memory_read;
s->phys_mem_write = ledma_memory_write;
return pcnet_common_init(&dev->qdev, s, &net_lance_info);
}
开发者ID:raedwulf,项目名称:qemu-ps2mouse,代码行数:18,代码来源:lance.c
示例8: smc91c111_init1
static int smc91c111_init1(SysBusDevice *dev)
{
smc91c111_state *s = FROM_SYSBUS(smc91c111_state, dev);
s->mmio_index = cpu_register_io_memory(smc91c111_readfn,
smc91c111_writefn, s);
sysbus_init_mmio(dev, 16, s->mmio_index);
sysbus_init_irq(dev, &s->irq);
qemu_macaddr_default_if_unset(&s->conf.macaddr);
smc91c111_reset(s);
s->nic = qemu_new_nic(&net_smc91c111_info, &s->conf,
dev->qdev.info->name, dev->qdev.id, s);
qemu_format_nic_info_str(&s->nic->nc, s->conf.macaddr.a);
/* ??? Save/restore. */
return 0;
}
开发者ID:TheLoneRanger14,项目名称:vmxray,代码行数:18,代码来源:smc91c111.c
示例9: stm32l_sys_init
static int stm32l_sys_init(uint32_t base, qemu_irq irq,
stm32_board_info * board)
{
int iomemtype;
ssys_state *s;
s = (ssys_state *)g_malloc0(sizeof(ssys_state));
s->irq = irq;
s->board = board;
iomemtype = cpu_register_io_memory(ssys_readfn,
ssys_writefn, s,
DEVICE_NATIVE_ENDIAN);
cpu_register_physical_memory(base, 0x00001000, iomemtype);
ssys_reset(s);
vmstate_register(NULL, -1, &vmstate_stm32_sys, s);
return 0;
}
开发者ID:mickours,项目名称:qemu_stm32L,代码行数:18,代码来源:stm32.c
示例10: qemu_mallocz
PXA2xxKeyPadState *pxa27x_keypad_init(target_phys_addr_t base,
qemu_irq irq)
{
int iomemtype;
PXA2xxKeyPadState *s;
s = (PXA2xxKeyPadState *) qemu_mallocz(sizeof(PXA2xxKeyPadState));
s->irq = irq;
iomemtype = cpu_register_io_memory(pxa2xx_keypad_readfn,
pxa2xx_keypad_writefn, s);
cpu_register_physical_memory(base, 0x00100000, iomemtype);
register_savevm("pxa2xx_keypad", 0, 0,
pxa2xx_keypad_save, pxa2xx_keypad_load, s);
return s;
}
开发者ID:ESOS-Lab,项目名称:VSSIM,代码行数:18,代码来源:pxa2xx_keypad.c
示例11: lm32_uart_init
static int lm32_uart_init(SysBusDevice *dev)
{
LM32UartState *s = FROM_SYSBUS(typeof(*s), dev);
int uart_regs;
sysbus_init_irq(dev, &s->irq);
uart_regs = cpu_register_io_memory(uart_read_fn, uart_write_fn, s,
DEVICE_NATIVE_ENDIAN);
sysbus_init_mmio(dev, R_MAX * 4, uart_regs);
s->chr = qdev_init_chardev(&dev->qdev);
if (s->chr) {
qemu_chr_add_handlers(s->chr, uart_can_rx, uart_rx, uart_event, s);
}
return 0;
}
开发者ID:B-Rich,项目名称:serialice,代码行数:18,代码来源:lm32_uart.c
示例12: msix_init
/* Initialize the MSI-X structures. Note: if MSI-X is supported, BAR size is
* modified, it should be retrieved with msix_bar_size. */
int msix_init(struct PCIDevice *dev, unsigned short nentries,
unsigned bar_nr, unsigned bar_size)
{
int ret;
/* Nothing to do if MSI is not supported by interrupt controller */
if (!msix_supported)
return -ENOTSUP;
if (nentries > MSIX_MAX_ENTRIES)
return -EINVAL;
dev->msix_entry_used = qemu_mallocz(MSIX_MAX_ENTRIES *
sizeof *dev->msix_entry_used);
dev->msix_table_page = qemu_mallocz(MSIX_PAGE_SIZE);
msix_mask_all(dev, nentries);
dev->msix_mmio_index = cpu_register_io_memory(msix_mmio_read,
msix_mmio_write, dev,
DEVICE_NATIVE_ENDIAN);
if (dev->msix_mmio_index == -1) {
ret = -EBUSY;
goto err_index;
}
dev->msix_entries_nr = nentries;
ret = msix_add_config(dev, nentries, bar_nr, bar_size);
if (ret)
goto err_config;
dev->cap_present |= QEMU_PCI_CAP_MSIX;
return 0;
err_config:
dev->msix_entries_nr = 0;
cpu_unregister_io_memory(dev->msix_mmio_index);
err_index:
qemu_free(dev->msix_table_page);
dev->msix_table_page = NULL;
qemu_free(dev->msix_entry_used);
dev->msix_entry_used = NULL;
return ret;
}
开发者ID:MegabytePhreak,项目名称:qemu-mcf5307,代码行数:45,代码来源:msix.c
示例13: sp804_init
static void sp804_init(SysBusDevice *dev)
{
int iomemtype;
sp804_state *s = FROM_SYSBUS(sp804_state, dev);
qemu_irq *qi;
qi = qemu_allocate_irqs(sp804_set_irq, s, 2);
sysbus_init_irq(dev, &s->irq);
/* ??? The timers are actually configurable between 32kHz and 1MHz, but
we don't implement that. */
s->timer[0] = arm_timer_init(1000000);
s->timer[1] = arm_timer_init(1000000);
s->timer[0]->irq = qi[0];
s->timer[1]->irq = qi[1];
iomemtype = cpu_register_io_memory(0, sp804_readfn,
sp804_writefn, s);
sysbus_init_mmio(dev, 0x1000, iomemtype);
register_savevm("sp804", -1, 1, sp804_save, sp804_load, s);
}
开发者ID:astarasikov,项目名称:qemu,代码行数:19,代码来源:arm_timer.c
示例14: at91_pio_init
static int at91_pio_init(SysBusDevice *dev)
{
PIOState *s = FROM_SYSBUS(typeof (*s), dev);
int pio_regs;
sysbus_init_irq(dev, &s->parent_irq);
qdev_init_gpio_in(&dev->qdev, at91_pio_set_pin, PIO_PINS * 3);
qdev_init_gpio_out(&dev->qdev, s->out, PIO_PINS * 3);
pio_regs = cpu_register_io_memory(at91_pio_readfn, at91_pio_writefn, s, DEVICE_NATIVE_ENDIAN);
sysbus_init_mmio(dev, PIO_SIZE, pio_regs);
at91_pio_reset(s);
qemu_register_reset(at91_pio_reset, s);
//register_savevm(&dev->qdev, "at91_pio", -1, 1, at91_pio_save, at91_pio_load, s);
vmstate_register(&dev->qdev, -1, &vmstate_at91sam9_pio, s);
return 0;
}
开发者ID:sun12jun,项目名称:QEMU_porting,代码行数:19,代码来源:at91_pio.c
示例15: s5pc1xx_onedram_init1
static int s5pc1xx_onedram_init1(SysBusDevice *dev, ModemPlatformData *mp)
{
S5pc1xxOneDRAMState *s = FROM_SYSBUS(S5pc1xxOneDRAMState, dev);
int onedram_io;
sysbus_init_irq(dev, &s->irq_onedram_int_ap);
onedram_io = cpu_register_io_memory(onedram_mm_read,
onedram_mm_write, s);
sysbus_init_mmio(dev, ONEDRAM_REGISTER_SIZE, onedram_io);
s->sem = 0;
s->mbx_ab = 0;
s->mbx_ba = 0;
s->check_ab = 0;
s->check_ba = 0;
s->irq_onedram_int_ap_pending = 0;
s->irq_onedram_int_cp_pending = 0;
s->vmodem_connected = 0;
s->vmodem_bootup = 0;
s->fmt_info = (ModemInfo *)qemu_mallocz(sizeof(ModemInfo));
s->socket_buffer = (uint8_t *)qemu_mallocz(SOCKET_BUFFER_MAX_SIZE);
s->socket_len = 0;
s->onedram_state.waiting_authority = FALSE;
s->onedram_state.non_cmd = INT_MASK_CMD_NONE;
s->onedram_state.send_size = 0;
s->onedram_state.waiting_sem_rep = 0;
s->onedram_state.send_buf = NULL;
s->onedram_state.interruptable = 1;
s->onedram_state.writable = 1;
onedram_register_modem(s, mp);
onedram_tcp_init(s);
s->bootup_timer = qemu_new_timer(vm_clock, onedram_bootup, s);
s->sem_timer = qemu_new_timer(vm_clock, onedram_wait_semaphore, s);
return 0;
}
开发者ID:vonnyfly,项目名称:qemu-s5pc110,代码行数:42,代码来源:s5pc1xx_onedram.c
示例16: smc91c111_init1
static void smc91c111_init1(SysBusDevice *dev)
{
smc91c111_state *s = FROM_SYSBUS(smc91c111_state, dev);
s->mmio_index = cpu_register_io_memory(smc91c111_readfn,
smc91c111_writefn, s);
sysbus_init_mmio(dev, 16, s->mmio_index);
sysbus_init_irq(dev, &s->irq);
qdev_get_macaddr(&dev->qdev, s->macaddr);
smc91c111_reset(s);
s->vc = qdev_get_vlan_client(&dev->qdev,
smc91c111_can_receive, smc91c111_receive, NULL,
smc91c111_cleanup, s);
qemu_format_nic_info_str(s->vc, s->macaddr);
register_savevm( "smc91c111", 0, SMC91C111_SAVE_VERSION,
smc91c111_save, smc91c111_load, s);
}
开发者ID:ecit241,项目名称:qemu-android,代码行数:20,代码来源:smc91c111.c
示例17: smc91c111_init
void smc91c111_init(NICInfo *nd, uint32_t base, void *pic, int irq)
{
smc91c111_state *s;
int iomemtype;
s = (smc91c111_state *)qemu_mallocz(sizeof(smc91c111_state));
iomemtype = cpu_register_io_memory(0, smc91c111_readfn,
smc91c111_writefn, s);
cpu_register_physical_memory(base, 16, iomemtype);
s->base = base;
s->pic = pic;
s->irq = irq;
memcpy(s->macaddr, nd->macaddr, 6);
smc91c111_reset(s);
s->vc = qemu_new_vlan_client(nd->vlan, smc91c111_receive,
smc91c111_can_receive, s);
/* ??? Save/restore. */
}
开发者ID:AmesianX,项目名称:winkvm,代码行数:20,代码来源:smc91c111.c
示例18: grlib_apbuart_init
static int grlib_apbuart_init(SysBusDevice *dev)
{
UART *uart = FROM_SYSBUS(typeof(*uart), dev);
int uart_regs = 0;
qemu_chr_add_handlers(uart->chr, &grlib_handlers, uart);
sysbus_init_irq(dev, &uart->irq);
uart_regs = cpu_register_io_memory(grlib_apbuart_read,
grlib_apbuart_write,
uart, DEVICE_NATIVE_ENDIAN);
if (uart_regs < 0) {
return -1;
}
sysbus_init_mmio(dev, UART_REG_SIZE, uart_regs);
return 0;
}
开发者ID:jitesh1337,项目名称:csc574-net-sec,代码行数:20,代码来源:grlib_apbuart.c
示例19: s5pc1xx_keyif_init
static int s5pc1xx_keyif_init(SysBusDevice *dev)
{
S5pc1xxKeyIFState *s = FROM_SYSBUS(S5pc1xxKeyIFState, dev);
int iomemtype;
sysbus_init_irq(dev, &s->irq_keypad);
iomemtype = cpu_register_io_memory(s5pc1xx_keyif_mm_read,
s5pc1xx_keyif_mm_write, s);
sysbus_init_mmio(dev, S5PC1XX_KEYIF_REG_MEM_SIZE, iomemtype);
s5pc1xx_gpio_register_io_memory(GPIO_IDX_KEYIF, 0,
s5pc1xx_keyif_gpio_readfn,
s5pc1xx_keyif_gpio_writefn, NULL, s);
s5pc1xx_init_keymap();
qemu_add_kbd_event_handler(s5pc1xx_keypad_event, s);
s5pc1xx_keyif_reset(s);
return 0;
}
开发者ID:vonnyfly,项目名称:qemu-s5pc110,代码行数:20,代码来源:s5pc1xx_keyif.c
示例20: icp_pit_init
static void icp_pit_init(SysBusDevice *dev)
{
int iomemtype;
icp_pit_state *s = FROM_SYSBUS(icp_pit_state, dev);
/* Timer 0 runs at the system clock speed (40MHz). */
s->timer[0] = arm_timer_init(40000000);
/* The other two timers run at 1MHz. */
s->timer[1] = arm_timer_init(1000000);
s->timer[2] = arm_timer_init(1000000);
sysbus_init_irq(dev, &s->timer[0]->irq);
sysbus_init_irq(dev, &s->timer[1]->irq);
sysbus_init_irq(dev, &s->timer[2]->irq);
iomemtype = cpu_register_io_memory(0, icp_pit_readfn,
icp_pit_writefn, s);
sysbus_init_mmio(dev, 0x1000, iomemtype);
/* This device has no state to save/restore. The component timers will
save themselves. */
}
开发者ID:astarasikov,项目名称:qemu,代码行数:21,代码来源:arm_timer.c
注:本文中的cpu_register_io_memory函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论