On 08/23/2010 04:48 PM, Anthony Liguori wrote:
The fundamental issue is: every function (minus trivial ones) in the
device models code should have a state reference. That state
reference should inherit from a DeviceState. If this statement
isn't true, then the device has been modelled in qdev incorrectly.
Using this test, quite a lot of the "converted" devices are being
modelled incorrectly.
Is a "state reference" allowed to have a pointer to the state, or
reach it in some other way (for example, static storage for singleton
devices)?
No. If this was C++, then the statement would be: device have to be
implemented in terms of objects that inherit from Device. Device is
our common base object.
so,
struct MyDevicestate {
struct DeviceState device_state;
bool *some_bit;
};
bad, while
struct MyDevicestate {
struct DeviceState device_state;
bool some_bit;
};
good?
Isn't "save/restore works" an equivalent statement to "device state
is reachable from the DeviceState"?
I'm not sure I can connect the dots here as I'm not sure what follows
if your assertion is true.
If save/restore works then all state is reachable from one point?
Presumable DeviceState?
I really don't see why the state has to be in the DeviceState subclass.
We're probably talking past each other here due to some confusion in terms.
--
error compiling committee.c: too many arguments to function