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.

>
>>        { 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?

For the general case or a 2-byte access near the end of a region, we need to provide a general fix.

--
error compiling committee.c: too many arguments to function


Reply via email to