qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

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