On 06/07/2017 19:13, Peter Maydell wrote:
> Slightly awkward because owner is an Object but vmstate_register_ram()
> needs a DeviceState. Is this OK, or too much magic?
>
> DeviceState *owner_dev;
> Error *err = NULL;
>
> memory_region_init_ram(mr, owner, name, ram_size, &err);
> if (err) {
> error_propagate(errp, err);
> return;
> }
> /* Note that owner_dev may be NULL if owner is not a DeviceState;
> * in that case this is equivalent to calling
> vmstate_register_ram_global().
> */
> owner_dev = object_dynamic_cast(owner, TYPE_DEVICE);
> vmstate_register_ram(mr, owner_dev);
Maybe, for memory_region_init_ram only, the owner argument can be made a
DeviceState (or NULL)?
Paolo