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