Revision ee6847d1 hw/esp.c
b/hw/esp.c | ||
---|---|---|
650 | 650 |
{ |
651 | 651 |
DeviceState *dev; |
652 | 652 |
SysBusDevice *s; |
653 |
ESPState *esp; |
|
653 | 654 |
|
654 | 655 |
dev = qdev_create(NULL, "esp"); |
655 |
qdev_set_prop_ptr(dev, "dma_memory_read", dma_memory_read); |
|
656 |
qdev_set_prop_ptr(dev, "dma_memory_write", dma_memory_write); |
|
657 |
qdev_set_prop_ptr(dev, "dma_opaque", dma_opaque); |
|
658 |
qdev_set_prop_int(dev, "it_shift", it_shift); |
|
656 |
esp = DO_UPCAST(ESPState, busdev.qdev, dev); |
|
657 |
esp->dma_memory_read = dma_memory_read; |
|
658 |
esp->dma_memory_write = dma_memory_write; |
|
659 |
esp->dma_opaque = dma_opaque; |
|
660 |
esp->it_shift = it_shift; |
|
659 | 661 |
qdev_init(dev); |
660 | 662 |
s = sysbus_from_qdev(dev); |
661 | 663 |
sysbus_connect_irq(s, 0, irq); |
... | ... | |
668 | 670 |
int esp_io_memory; |
669 | 671 |
|
670 | 672 |
sysbus_init_irq(dev, &s->irq); |
671 |
s->it_shift = qdev_get_prop_int(&dev->qdev, "it_shift", -1); |
|
672 | 673 |
assert(s->it_shift != -1); |
673 |
s->dma_memory_read = qdev_get_prop_ptr(&dev->qdev, "dma_memory_read"); |
|
674 |
s->dma_memory_write = qdev_get_prop_ptr(&dev->qdev, "dma_memory_write"); |
|
675 |
s->dma_opaque = qdev_get_prop_ptr(&dev->qdev, "dma_opaque"); |
|
676 | 674 |
|
677 | 675 |
esp_io_memory = cpu_register_io_memory(esp_mem_read, esp_mem_write, s); |
678 | 676 |
sysbus_init_mmio(dev, ESP_REGS << s->it_shift, esp_io_memory); |
Also available in: Unified diff