|
@@ -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->cc->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->cc->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->cc->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->cc->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->cc->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->cc->sysemu_ops->get_crash_info) {
|
|
|
+ res = cpu->cc->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);
|