On 09/18/2011 03:54 PM, Jan Kiszka wrote:
From: Jan Kiszka<jan.kis...@siemens.com>
We can express the offset of old portio completely via
MemoryRegionPortio::offset by splitting up regions of different offsets
and adjusting those offsets appropriately.
Please split into two patches - core and isa.
+ /* Copy the sub-list and null-terminate it. */
+ pio = g_new(MemoryRegionPortio, count + 1);
+ memcpy(pio, pio_init, sizeof(MemoryRegionPortio) * count);
+ memset(pio + count, 0, sizeof(MemoryRegionPortio));
Wish: g_copy(pio, pio_init, count); // aka std::copy()
@@ -396,12 +395,12 @@ static void memory_region_iorange_read(IORange *iorange,
*data = ((uint64_t)1<< (width * 8)) - 1;
if (mrp) {
- *data = mrp->read(mr->opaque, offset + mr->offset);
+ *data = mrp->read(mr->opaque, offset + mrp->offset);
} else if (width == 2) {
mrp = find_portio(mr, offset, 1, false);
assert(mrp);
- *data = mrp->read(mr->opaque, offset + mr->offset) |
- (mrp->read(mr->opaque, offset + mr->offset + 1)<< 8);
+ *data = mrp->read(mr->opaque, offset + mrp->offset) |
+ (mrp->read(mr->opaque, offset + mrp->offset + 1)<< 8);
}
return;
}
So long as mr->offset exists, you need to take it into account. And I
don't want to remove memory_region_set_offset() until everything (that
can potentially use it, at least) has been converted.
--
error compiling committee.c: too many arguments to function