[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/5] hw/pxa2xx_lcd.c: drop VMSTATE_UINTTL usage
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH 3/5] hw/pxa2xx_lcd.c: drop VMSTATE_UINTTL usage |
Date: |
Wed, 22 Feb 2012 12:00:16 +0000 |
On 22 February 2012 11:36, andrzej zaborowski <address@hidden> wrote:
> On 22 February 2012 11:15, Igor Mitsyanko <address@hidden> wrote:
>> Convert three variables in DMAChannel state from type target_phys_addr_t to
>> uint32_t,
>> use VMSTATE_UINT32 instead of VMSTATE_UINTTL for these variables.
>> We can do it safely because:
>> 1) pxa2xx has 32-bit physical address;
>> 2) rest of the code in this file treats these variables as uint32_t;
>
> Why's uint32_t more correct though? The purpose of using a named type
> across qemu is to mark fields as memory addresses (similar to size_t
> being used for sizes, etc.), uint32_t conveys less information -- only
> the size.
>
> It's a safe hack, but I don't see the rationale.
Because we might change target_phys_addr_t to 64 bits globally
some day (it's certainly been mooted) and that shouldn't suddenly
change the register width and certainly shouldn't change the
migration state.
Basically VMSTATE_UINTTL in hw/ is always a bug, because its
behaviour depends on the size of target_ulong, which is a
property of the CPU, which is a completely separate device.
> If it's because VMSTATE_UINT32 requires that specific type than a less
> ugly hack would be to make a pxa specific memory address type.
Yuck.
-- PMM
[Qemu-devel] [PATCH 1/5] target-alpha/machine.c: use VMSTATE_UINT64* instead of VMSTATE_UINTTL*, Igor Mitsyanko, 2012/02/22