[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH qom-cpu v4 17/18] memory_mapping: Use hwaddr typ
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH qom-cpu v4 17/18] memory_mapping: Use hwaddr type for MemoryMapping virt_addr field |
Date: |
Sun, 09 Jun 2013 19:25:32 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130510 Thunderbird/17.0.6 |
Am 09.06.2013 19:17, schrieb Peter Maydell:
> On 9 June 2013 17:10, Andreas Färber <address@hidden> wrote:
>> The memory mapping API uses hwaddr, so use it in the struct, too.
>> This avoids a header dependency on target_ulong type.
>
>> --- a/include/sysemu/memory_mapping.h
>> +++ b/include/sysemu/memory_mapping.h
>> @@ -20,7 +20,7 @@
>> /* The physical and virtual address in the memory mapping are contiguous. */
>> typedef struct MemoryMapping {
>> hwaddr phys_addr;
>> - target_ulong virt_addr;
>> + hwaddr virt_addr;
>> ram_addr_t length;
>
> This seems kind of odd given that HACKING specifically
> says that target_ulong is for virtual addresses and hwaddr
> for physical addresses. And in fact all the places that call
> memory_mapping_list_add_merge_sorted() actually pass a
> target_ulong as the virt_addr parameter, so maybe what we
> should be fixing is the function prototype?
Maybe. The benefit with going with the overwhelming use of hwaddr is
that memory_mapping.o can be compiled once for all targets, saving
compilation time.
The benefit of target_ulong would be saving a few bytes for 32-bit
targets at runtime.
> Incidentally that use of ram_addr_t for length looks
> kind of suspicious to me; it should probably be a hwaddr.
Looking at it strictly from a CPU and build perspective I'll happily
leave further code cleanups to someone else. :) Somewhere there's also a
misspelling of "memory" left to fix.
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
- Re: [Qemu-devel] [PATCH qom-cpu v4 12/18] cpu: Change default for CPUClass::get_paging_enabled(), (continued)
- [Qemu-devel] [PATCH qom-cpu v4 13/18] memory_mapping: Cleanup qemu_get_guest_memory_mapping(), Andreas Färber, 2013/06/09
- [Qemu-devel] [PATCH qom-cpu v4 15/18] dump: Abstract dump_init() further with qemu_for_each_cpu(), Andreas Färber, 2013/06/09
- [Qemu-devel] [PATCH qom-cpu v4 16/18] dump: Abstract write_elf{64, 32}_notes() with qemu_for_each_cpu(), Andreas Färber, 2013/06/09
- [Qemu-devel] [PATCH qom-cpu v4 17/18] memory_mapping: Use hwaddr type for MemoryMapping virt_addr field, Andreas Färber, 2013/06/09
- [Qemu-devel] [PATCH qom-cpu v4 18/18] memory_mapping: Build only once, Andreas Färber, 2013/06/09
- Re: [Qemu-devel] [PATCH qom-cpu v4 00/18] dump: Build cleanups, redone, Andreas Färber, 2013/06/09
- Re: [Qemu-devel] [PATCH qom-cpu v4 00/18] dump: Build cleanups, redone, Andreas Färber, 2013/06/11