On 9 October 2012 05:53, David Gibson <da...@gibson.dropbear.id.au> wrote:
> The savevm code contains VMSTATE_ helpers for a number of commonly used
> types, but not for target_phys_addr_t.  This patch fixes that deficiency
> implementing VMSTATE_TPA helpers in terms of VMSTATE_UINT32 or
> VMSTATE_UINT64 helpers as appropriate.

(This comment is out of date...)

Traditionally we have deliberately not had any vmstate helpers
for target_phys_addr_t because the meaning of that type is "a
type wide enough to hold the widest address in use in the system".
vmstate fields, on the other hand, are for the state of a specific
device model, and a particular device's registers are always a
fixed width. Even if a pci card model is plugged into a system
with 64 bit PCI addresses, if the chip on the card itself only
has 32 bit wide registers controlling DMA those registers need
to be uint32_t. So if you think you need to put target_phys_addr_t
into a vmstate the chances are you don't. I think this logic
should still hold even now we have made target_phys_addr_t
64 bits for every platform.

What was the problem this patch is trying to fix?

-- PMM

Reply via email to