[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Suspicious QOM types without instance/class size
From: |
Roman Bolshakov |
Subject: |
Re: Suspicious QOM types without instance/class size |
Date: |
Fri, 21 Aug 2020 13:53:52 +0300 |
On Thu, Aug 20, 2020 at 05:55:29PM -0400, Eduardo Habkost wrote:
> While trying to convert TypeInfo declarations to the new
> OBJECT_DECLARE* macros, I've stumbled on a few suspicious cases
> where instance_size or class_size is not set, despite having type
> checker macros that use a specific type.
>
> The ones with "WARNING" are abstract types (maybe not serious if
> subclasses set the appropriate sizes). The ones with "ERROR"
> don't seem to be abstract types.
>
> ERROR: target/i386/hvf/hvf.c:908:1: instance_size should be set to
> sizeof(HVFState)?
Hi Eduardo,
How do you get the error?
Given your changes, instance size should really be sizeof(HVFState).
BTW, the object definition for hvf seems different from KVM (and perhaps
wrong?), e.g. HVFState is allocated within init_machine handler and then
assigned to a global variable:
static int hvf_accel_init(MachineState *ms)
{
int x;
hv_return_t ret;
HVFState *s;
ret = hv_vm_create(HV_VM_DEFAULT);
assert_hvf_ok(ret);
s = g_new0(HVFState, 1);
s->num_slots = 32;
for (x = 0; x < s->num_slots; ++x) {
s->slots[x].size = 0;
s->slots[x].slot_id = x;
}
hvf_state = s;
cpu_interrupt_handler = hvf_handle_interrupt;
memory_listener_register(&hvf_memory_listener, &address_space_memory);
return 0;
}
static void hvf_accel_class_init(ObjectClass *oc, void *data)
{
AccelClass *ac = ACCEL_CLASS(oc);
ac->name = "HVF";
ac->init_machine = hvf_accel_init;
ac->allowed = &hvf_allowed;
}
static const TypeInfo hvf_accel_type = {
.name = TYPE_HVF_ACCEL,
.parent = TYPE_ACCEL,
.class_init = hvf_accel_class_init,
};
Thanks,
Roman
- Suspicious QOM types without instance/class size, Eduardo Habkost, 2020/08/20
- Re: Suspicious QOM types without instance/class size, David Gibson, 2020/08/20
- Re: Suspicious QOM types without instance/class size, Peter Maydell, 2020/08/21
- Re: Suspicious QOM types without instance/class size, David Hildenbrand, 2020/08/21
- Re: Suspicious QOM types without instance/class size, Cornelia Huck, 2020/08/21
- Re: Suspicious QOM types without instance/class size,
Roman Bolshakov <=
- Re: Suspicious QOM types without instance/class size, Eduardo Habkost, 2020/08/21
- Re: Suspicious QOM types without instance/class size, Eduardo Habkost, 2020/08/21
- Re: Suspicious QOM types without instance/class size, Roman Bolshakov, 2020/08/24
- Re: Suspicious QOM types without instance/class size, Eduardo Habkost, 2020/08/24
- Re: Suspicious QOM types without instance/class size, Roman Bolshakov, 2020/08/24
- Re: Suspicious QOM types without instance/class size, Eduardo Habkost, 2020/08/24
Re: Suspicious QOM types without instance/class size, Alistair Francis, 2020/08/21