Paolo Bonzini <pbonz...@redhat.com> writes:

> On 06/05/2010 11:31 PM, Blue Swirl wrote:
>> Use only an opaque CPUState pointer and move the actual CPUState
>> contents handling to cpu.h and cpuid.c.
>>
>> Set env->halted in pc.c and add a function to get the local APIC state
>> of the current CPU for the MMIO.
>>
>> Signed-off-by: Blue Swirl<blauwir...@gmail.com>
>> ---
>>   hw/apic.c           |   40 +++++++++++++++-------------------------
>>   hw/apic.h           |    9 ++++++++-
>>   hw/pc.c             |   12 +++++++++++-
>>   target-i386/cpu.h   |   27 ++++++++++++++++-----------
>>   target-i386/cpuid.c |    6 ++++++
>>   5 files changed, 56 insertions(+), 38 deletions(-)
>>
>> diff --git a/hw/apic.c b/hw/apic.c
>> index 91c8d93..332c66e 100644
>> --- a/hw/apic.c
>> +++ b/hw/apic.c
>> @@ -95,7 +95,7 @@
>>   #define MSI_ADDR_SIZE                   0x100000
>>
>>   struct APICState {
>> -    CPUState *cpu_env;
>> +    void *cpu_env;
>
> I proposed having an opaque CPUState type in hw/ but it was
> rejected. But I don't think using a void pointer is any better.
Using void * to hide implementation details of a monomorphic type is bad
style.  That's what incomplete types are for.  Lets the compiler check
types for you, and lets the debugger do a better job.

Reply via email to