qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] isa: Avoid using obsolete memory_region_set_off


From: Avi Kivity
Subject: Re: [Qemu-devel] [PATCH] isa: Avoid using obsolete memory_region_set_offset for old portio
Date: Mon, 19 Sep 2011 15:14:35 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0.2) Gecko/20110906 Thunderbird/6.0.2

On 09/18/2011 10:04 PM, Jan Kiszka wrote:
>
>  If you make the core patch add both mr->offset and mrp->offset, then
>  change isa to drop memory_region_set_offset(), instead adding the delta
>  to mrp->offset, does that not work out?

Nope. The old API accepted arbitrary portio lists per memory region, the
new requires one region with a consistent offset per range. I should
have documented it...

What does "a consistent offset per range" mean? You aren't actually changing the caller's ranges.



>
>>  >    And I
>>  >   don't want to remove memory_region_set_offset() until everything (that
>>  >   can potentially use it, at least) has been converted.
>>
>>  IMO it's easier to fix those potential users before converting them. You
>>  need to review them anyway to decide if an offset might be needed, and
>>  which one precisely.
>>
>>  Are you aware of any candidates? For PIO, there should be none now.
>
>  For pio, none, but mmio has some:
>
>  hw/sh7750.c:    cpu_register_physical_memory_offset(0x1f000000, 0x1000,
>  hw/sh7750.c:    cpu_register_physical_memory_offset(0xff000000, 0x1000,
>  hw/sh7750.c:    cpu_register_physical_memory_offset(0x1f800000, 0x1000,
>  hw/sh7750.c:    cpu_register_physical_memory_offset(0xff800000, 0x1000,
>  hw/sh7750.c:    cpu_register_physical_memory_offset(0x1fc00000, 0x1000,
>  hw/sh7750.c:    cpu_register_physical_memory_offset(0xffc00000, 0x1000,
>  hw/sh_intc.c:
>  cpu_register_physical_memory_offset(P4ADDR(address), 4,
>  hw/sh_intc.c:
>  cpu_register_physical_memory_offset(A7ADDR(address), 4,

Cool, that's all. Trivial to fix, just push the offset math into those
few handler. Then we can drop cpu_register_physical_memory_offset as well.

They all use the same handler, so you need to split e.g. sh7750_io_memory into six MemoryRegionsOps. Or use tricks with aliases - have one giant 4G region with one handler, and map six 4k aliases into the system address space.

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]