On 2011-09-18 18:51, Avi Kivity wrote: > On 09/18/2011 07:28 PM, Jan Kiszka wrote: >> On 2011-09-18 17:51, Avi Kivity wrote: >> > On 09/18/2011 03:44 PM, Jan Kiszka wrote: >> >> From: Jan Kiszka<jan.kis...@siemens.com> >> >> >> >> Fix copy&paste errors and reduce duplications of the BOCHS VBE >> ranges. >> >> >> >> Signed-off-by: Jan Kiszka<jan.kis...@siemens.com> >> >> --- >> >> >> >> #ifdef CONFIG_BOCHS_VBE >> >> static const MemoryRegionPortio vbe_portio_list[] = { >> >> -# ifdef TARGET_I386 >> >> { 0, 1, 2, .read = vbe_ioport_read_index, .write = >> >> vbe_ioport_write_index }, >> >> +# ifdef TARGET_I386 >> > >> > Strange how the card knows what target it's plugged into. Fixing this >> > is going to involve major pain - need to update the bios and need to >> > provide backwards compatibility. All this assuming guests don't >> > hardcode the address. >> > >> > Anyway I find the deduplication makes the code harder to read. >> >> That line is rather tricky to deduplicate in mind. So it's not nice for >> our readers keeping it duplicated around. > > I don't think it should be deduplicated. The device is providing two > separate ABIs.
Yes, two ABIs, and the only difference is the offset of the data register. > >> > >> >> { 1, 1, 2, .read = vbe_ioport_read_data, .write = >> >> vbe_ioport_write_data }, >> >> # else >> >> - { 0, 2, 2, .read = vbe_ioport_read_index, .write = >> >> vbe_ioport_write_index }, >> >> - { 2, 2, 2, .read = vbe_ioport_read_data, .write = >> >> vbe_ioport_write_data }, >> >> + { 2, 1, 2, .read = vbe_ioport_read_data, .write = >> >> vbe_ioport_write_data }, >> > >> > Is this correct? length 1 region with size 2? >> >> Yes, it prevents accesses on base+1. >> > > Why disallow it? Did anyone check that something useful or at least valid comes out of the handlers when doing this so far impossible access? Jan
signature.asc
Description: OpenPGP digital signature