Revision df182043
b/hw/cs4231.c | ||
---|---|---|
35 | 35 |
|
36 | 36 |
typedef struct CSState { |
37 | 37 |
SysBusDevice busdev; |
38 |
MemoryRegion iomem; |
|
38 | 39 |
qemu_irq irq; |
39 | 40 |
uint32_t regs[CS_REGS]; |
40 | 41 |
uint8_t dregs[CS_DREGS]; |
... | ... | |
54 | 55 |
s->dregs[25] = CS_VER; |
55 | 56 |
} |
56 | 57 |
|
57 |
static uint32_t cs_mem_readl(void *opaque, target_phys_addr_t addr) |
|
58 |
static uint64_t cs_mem_read(void *opaque, target_phys_addr_t addr, |
|
59 |
unsigned size) |
|
58 | 60 |
{ |
59 | 61 |
CSState *s = opaque; |
60 | 62 |
uint32_t saddr, ret; |
... | ... | |
80 | 82 |
return ret; |
81 | 83 |
} |
82 | 84 |
|
83 |
static void cs_mem_writel(void *opaque, target_phys_addr_t addr, uint32_t val) |
|
85 |
static void cs_mem_write(void *opaque, target_phys_addr_t addr, |
|
86 |
uint64_t val, unsigned size) |
|
84 | 87 |
{ |
85 | 88 |
CSState *s = opaque; |
86 | 89 |
uint32_t saddr; |
... | ... | |
119 | 122 |
} |
120 | 123 |
} |
121 | 124 |
|
122 |
static CPUReadMemoryFunc * const cs_mem_read[3] = { |
|
123 |
cs_mem_readl, |
|
124 |
cs_mem_readl, |
|
125 |
cs_mem_readl, |
|
126 |
}; |
|
127 |
|
|
128 |
static CPUWriteMemoryFunc * const cs_mem_write[3] = { |
|
129 |
cs_mem_writel, |
|
130 |
cs_mem_writel, |
|
131 |
cs_mem_writel, |
|
125 |
static const MemoryRegionOps cs_mem_ops = { |
|
126 |
.read = cs_mem_read, |
|
127 |
.write = cs_mem_write, |
|
128 |
.endianness = DEVICE_NATIVE_ENDIAN, |
|
132 | 129 |
}; |
133 | 130 |
|
134 | 131 |
static const VMStateDescription vmstate_cs4231 = { |
... | ... | |
145 | 142 |
|
146 | 143 |
static int cs4231_init1(SysBusDevice *dev) |
147 | 144 |
{ |
148 |
int io; |
|
149 | 145 |
CSState *s = FROM_SYSBUS(CSState, dev); |
150 | 146 |
|
151 |
io = cpu_register_io_memory(cs_mem_read, cs_mem_write, s, |
|
152 |
DEVICE_NATIVE_ENDIAN); |
|
153 |
sysbus_init_mmio(dev, CS_SIZE, io); |
|
147 |
memory_region_init_io(&s->iomem, &cs_mem_ops, s, "cs4321", CS_SIZE); |
|
148 |
sysbus_init_mmio_region(dev, &s->iomem); |
|
154 | 149 |
sysbus_init_irq(dev, &s->irq); |
155 | 150 |
|
156 | 151 |
return 0; |
Also available in: Unified diff