@ -33,10 +33,8 @@
bool cpu_paging_enabled ( const CPUState * cpu )
{
CPUClass * cc = CPU_GET_CLASS ( cpu ) ;
if ( cc - > sysemu_ops - > get_paging_enabled ) {
return cc - > sysemu_ops - > get_paging_enabled ( cpu ) ;
if ( cpu - > cc - > sysemu_ops - > get_paging_enabled ) {
return cpu - > cc - > sysemu_ops - > get_paging_enabled ( cpu ) ;
}
return false ;
@ -45,10 +43,8 @@ bool cpu_paging_enabled(const CPUState *cpu)
bool cpu_get_memory_mapping ( CPUState * cpu , MemoryMappingList * list ,
Error * * errp )
{
CPUClass * cc = CPU_GET_CLASS ( cpu ) ;
if ( cc - > sysemu_ops - > get_memory_mapping ) {
return cc - > sysemu_ops - > get_memory_mapping ( cpu , list , errp ) ;
if ( cpu - > cc - > sysemu_ops - > get_memory_mapping ) {
return cpu - > cc - > sysemu_ops - > get_memory_mapping ( cpu , list , errp ) ;
}
error_setg ( errp , " Obtaining memory mappings is unsupported on this CPU. " ) ;
@ -58,15 +54,15 @@ bool cpu_get_memory_mapping(CPUState *cpu, MemoryMappingList *list,
hwaddr cpu_get_phys_page_attrs_debug ( CPUState * cpu , vaddr addr ,
MemTxAttrs * attrs )
{
CPUClass * cc = CPU_GET_CLASS ( cpu ) ;
hwaddr paddr ;
if ( cc - > sysemu_ops - > get_phys_page_attrs_debug ) {
paddr = cc - > sysemu_ops - > get_phys_page_attrs_debug ( cpu , addr , attrs ) ;
if ( cpu - > cc - > sysemu_ops - > get_phys_page_attrs_debug ) {
paddr = cpu - > cc - > sysemu_ops - > get_phys_page_attrs_debug ( cpu , addr ,
attrs ) ;
} else {
/* Fallback for CPUs which don't implement the _attrs_ hook */
* attrs = MEMTXATTRS_UNSPECIFIED ;
paddr = cc - > sysemu_ops - > get_phys_page_debug ( cpu , addr ) ;
paddr = cpu - > c c - > sysemu_ops - > get_phys_page_debug ( cpu , addr ) ;
}
/* Indicate that this is a debug access. */
attrs - > debug = 1 ;
@ -94,64 +90,53 @@ int cpu_asidx_from_attrs(CPUState *cpu, MemTxAttrs attrs)
int cpu_write_elf32_qemunote ( WriteCoreDumpFunction f , CPUState * cpu ,
void * opaque )
{
CPUClass * cc = CPU_GET_CLASS ( cpu ) ;
if ( ! cc - > sysemu_ops - > write_elf32_qemunote ) {
if ( ! cpu - > cc - > sysemu_ops - > write_elf32_qemunote ) {
return 0 ;
}
return ( * cc - > sysemu_ops - > write_elf32_qemunote ) ( f , cpu , opaque ) ;
return ( * cpu - > c c - > sysemu_ops - > write_elf32_qemunote ) ( f , cpu , opaque ) ;
}
int cpu_write_elf32_note ( WriteCoreDumpFunction f , CPUState * cpu ,
int cpuid , void * opaque )
{
CPUClass * cc = CPU_GET_CLASS ( cpu ) ;
if ( ! cc - > sysemu_ops - > write_elf32_note ) {
if ( ! cpu - > cc - > sysemu_ops - > write_elf32_note ) {
return - 1 ;
}
return ( * cc - > sysemu_ops - > write_elf32_note ) ( f , cpu , cpuid , opaque ) ;
return ( * cpu - > c c - > sysemu_ops - > write_elf32_note ) ( f , cpu , cpuid , opaque ) ;
}
int cpu_write_elf64_qemunote ( WriteCoreDumpFunction f , CPUState * cpu ,
void * opaque )
{
CPUClass * cc = CPU_GET_CLASS ( cpu ) ;
if ( ! cc - > sysemu_ops - > write_elf64_qemunote ) {
if ( ! cpu - > cc - > sysemu_ops - > write_elf64_qemunote ) {
return 0 ;
}
return ( * cc - > sysemu_ops - > write_elf64_qemunote ) ( f , cpu , opaque ) ;
return ( * cpu - > c c - > sysemu_ops - > write_elf64_qemunote ) ( f , cpu , opaque ) ;
}
int cpu_write_elf64_note ( WriteCoreDumpFunction f , CPUState * cpu ,
int cpuid , void * opaque )
{
CPUClass * cc = CPU_GET_CLASS ( cpu ) ;
if ( ! cc - > sysemu_ops - > write_elf64_note ) {
if ( ! cpu - > cc - > sysemu_ops - > write_elf64_note ) {
return - 1 ;
}
return ( * cc - > sysemu_ops - > write_elf64_note ) ( f , cpu , cpuid , opaque ) ;
return ( * cpu - > c c - > sysemu_ops - > write_elf64_note ) ( f , cpu , cpuid , opaque ) ;
}
bool cpu_virtio_is_big_endian ( CPUState * cpu )
{
CPUClass * cc = CPU_GET_CLASS ( cpu ) ;
if ( cc - > sysemu_ops - > virtio_is_big_endian ) {
return cc - > sysemu_ops - > virtio_is_big_endian ( cpu ) ;
if ( cpu - > cc - > sysemu_ops - > virtio_is_big_endian ) {
return cpu - > cc - > sysemu_ops - > virtio_is_big_endian ( cpu ) ;
}
return target_words_bigendian ( ) ;
}
GuestPanicInformation * cpu_get_crash_info ( CPUState * cpu )
{
CPUClass * cc = CPU_GET_CLASS ( cpu ) ;
GuestPanicInformation * res = NULL ;
if ( cc - > sysemu_ops - > get_crash_info ) {
res = cc - > sysemu_ops - > get_crash_info ( cpu ) ;
if ( cpu - > c c - > sysemu_ops - > get_crash_info ) {
res = cpu - > c c - > sysemu_ops - > get_crash_info ( cpu ) ;
}
return res ;
}
@ -300,10 +285,8 @@ void cpu_vmstate_register(CPUState *cpu)
void cpu_vmstate_unregister ( CPUState * cpu )
{
CPUClass * cc = CPU_GET_CLASS ( cpu ) ;
if ( cc - > sysemu_ops - > legacy_vmsd ! = NULL ) {
vmstate_unregister ( NULL , cc - > sysemu_ops - > legacy_vmsd , cpu ) ;
if ( cpu - > cc - > sysemu_ops - > legacy_vmsd ! = NULL ) {
vmstate_unregister ( NULL , cpu - > cc - > sysemu_ops - > legacy_vmsd , cpu ) ;
}
if ( qdev_get_vmsd ( DEVICE ( cpu ) ) = = NULL ) {
vmstate_unregister ( NULL , & vmstate_cpu_common , cpu ) ;