Revision 4b48bf05 hw/slavio_intctl.c

b/hw/slavio_intctl.c
416 416
    slavio_intctl_reset(s);
417 417
}
418 418

  
419
DeviceState *slavio_intctl_init(target_phys_addr_t addr,
420
                                target_phys_addr_t addrg,
421
                                const uint32_t *intbit_to_level,
422
                                qemu_irq **parent_irq, unsigned int cputimer)
423
{
424
    DeviceState *dev;
425
    SysBusDevice *s;
426
    unsigned int i, j;
427

  
428
    dev = qdev_create(NULL, "slavio_intctl");
429
    qdev_prop_set_ptr(dev, "intbit_to_level", (void *)intbit_to_level);
430
    qdev_prop_set_uint32(dev, "cputimer_bit", cputimer);
431
    qdev_init(dev);
432

  
433
    s = sysbus_from_qdev(dev);
434

  
435
    for (i = 0; i < MAX_CPUS; i++) {
436
        for (j = 0; j < MAX_PILS; j++) {
437
            sysbus_connect_irq(s, i * MAX_PILS + j, parent_irq[i][j]);
438
        }
439
    }
440
    sysbus_mmio_map(s, 0, addrg);
441
    for (i = 0; i < MAX_CPUS; i++) {
442
        sysbus_mmio_map(s, i + 1, addr + i * TARGET_PAGE_SIZE);
443
    }
444

  
445
    return dev;
446
}
447

  
448 419
static SysBusDeviceInfo slavio_intctl_info = {
449 420
    .init = slavio_intctl_init1,
450 421
    .qdev.name  = "slavio_intctl",

Also available in: Unified diff