mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
memory: Fix old portio word accesses
As we register old portio regions via ioport_register, we are also responsible for providing the word access wrapper. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
6bf9fd43cf
commit
03808f58e4
1 changed files with 10 additions and 0 deletions
10
memory.c
10
memory.c
|
@ -404,6 +404,11 @@ 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);
|
||||
} 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);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -426,6 +431,11 @@ static void memory_region_iorange_write(IORange *iorange,
|
|||
|
||||
if (mrp) {
|
||||
mrp->write(mr->opaque, offset + mr->offset, data);
|
||||
} else if (width == 2) {
|
||||
mrp = find_portio(mr, offset, 1, false);
|
||||
assert(mrp);
|
||||
mrp->write(mr->opaque, offset + mr->offset, data & 0xff);
|
||||
mrp->write(mr->opaque, offset + mr->offset + 1, data >> 8);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue