CR16C: fix build for 10.1

This commit is contained in:
fridtjof 2025-09-02 22:44:19 +02:00
parent 2ff7b31f7a
commit d0b2f99c50
7 changed files with 21 additions and 17 deletions

View file

@ -1,5 +1,5 @@
#include "boot.h"
#include "exec/memory.h"
#include "system/memory.h"
#include "hw/boards.h"
#include "hw/sysbus.h"
#include "qapi/error.h"
@ -37,7 +37,7 @@ static void de410_init(MachineState* machine)
}
}
static void de410_class_init(ObjectClass* oc, void* data)
static void de410_class_init(ObjectClass* oc, const void* data)
{
MachineClass* mc = MACHINE_CLASS(oc);
mc->desc = "DE410 VoIP desk telephone by Gigaset";

View file

@ -1,6 +1,6 @@
#include "sc14461.h"
#include "cpu-qom.h"
#include "exec/address-spaces.h"
#include "system/address-spaces.h"
#include "hw/core/cpu.h"
#include "hw/cr16c/boot.h"
#include "qapi/error.h"
@ -44,7 +44,7 @@ static void sc14461_reset_hold(Object *obj, ResetType type) {
cpu_set_pc(cpu_state, 0xFEF00);
}
static void sc14461_class_init(ObjectClass* oc, void* data)
static void sc14461_class_init(ObjectClass* oc, const void* data)
{
DeviceClass* dc = DEVICE_CLASS(oc);
SC14461McuClass* sc14461 = SC14461_MCU_CLASS(oc);

View file

@ -1,6 +1,6 @@
#include "boot.h"
#include "cpu-qom.h"
#include "exec/address-spaces.h"
#include "system/address-spaces.h"
#include "hw/boards.h"
#include "qapi/error.h"
#include "qemu/units.h"
@ -37,7 +37,7 @@ static void virt_init(MachineState* machine)
}
}
static void virt_class_init(ObjectClass* oc, void* data)
static void virt_class_init(ObjectClass* oc, const void* data)
{
MachineClass* mc = MACHINE_CLASS(oc);
mc->desc = "Generic CR16C board for debugging, testing and development";

View file

@ -6,4 +6,6 @@
#define TARGET_PHYS_ADDR_SPACE_BITS 32
#define TARGET_VIRT_ADDR_SPACE_BITS 32
#define TARGET_INSN_START_EXTRA_WORDS 0
#endif // CR16C_CPU_PARAM_H

View file

@ -8,6 +8,8 @@
#include "qapi/error.h"
#include "cpu.h"
#include "disas/dis-asm.h"
#include "exec/cpu-interrupt.h"
#include "exec/target_page.h"
static void cr16c_cpu_disas_set_info(CPUState *cpu, disassemble_info *info) {
info->mach = bfd_arch_cr16c;
@ -131,6 +133,11 @@ hwaddr cr16c_cpu_get_phys_page_debug(CPUState* cs, vaddr addr) {
return addr;
}
static TCGTBCPUState cr16c_cpu_get_tb_cpu_state(CPUState *cs) {
CPUCR16CState *env = cpu_env(cs);
return (TCGTBCPUState){ .pc = env->pc };
}
bool cr16c_cpu_tlb_fill(CPUState *cs, vaddr addr, int size,
MMUAccessType access_type, int mmu_idx,
@ -156,14 +163,18 @@ static const struct SysemuCPUOps cr16c_sysemu_ops = {
static const struct TCGCPUOps cr16c_tcg_ops = {
.initialize = cr16c_translate_init,
.mmu_index = cr16c_cpu_mmu_index,
.cpu_exec_interrupt = cr16c_cpu_exec_interrupt,
.cpu_exec_reset = cpu_reset,
.translate_code = cr16c_translate_code,
.get_tb_cpu_state = cr16c_cpu_get_tb_cpu_state,
.tlb_fill = cr16c_cpu_tlb_fill,
.pointer_wrap = cpu_pointer_wrap_notreached,
.cpu_exec_halt = cr16c_cpu_has_work,
};
static void cr16c_cpu_class_init(ObjectClass *oc, void *data)
static void cr16c_cpu_class_init(ObjectClass *oc, const void *data)
{
CR16CCPUClass *acc = CR16C_CPU_CLASS(oc);
CPUClass *cc = CPU_CLASS(oc);
@ -177,7 +188,6 @@ static void cr16c_cpu_class_init(ObjectClass *oc, void *data)
cc->dump_state = cr16c_cpu_dump_state;
cc->set_pc = cr16c_cpu_set_pc;
cc->mmu_index = cr16c_cpu_mmu_index;
cc->sysemu_ops = &cr16c_sysemu_ops;
cc->disas_set_info = cr16c_cpu_disas_set_info;
cc->tcg_ops = &cr16c_tcg_ops;

View file

@ -46,12 +46,6 @@ static inline int cpu_interrupts_enabled(CPUCR16CState* env) {
return false; // TODO: Interrupts
}
static inline void cpu_get_tb_cpu_state(CPUCR16CState *env, vaddr *pc, uint64_t *cs_base, uint32_t *pflags) {
*pc = env->pc;
*cs_base = 0;
*pflags = 0;
}
void cr16c_translate_init(void);
bool cr16c_cpu_tlb_fill(CPUState *cs, vaddr address, int size, MMUAccessType access_type, int mmu_idx, bool probe, uintptr_t retaddr);
void cr16c_cpu_do_interrupt(CPUState *cpu);
@ -66,6 +60,4 @@ void cr16c_cpu_synchronize_from_tb(CPUState *cs, const TranslationBlock *tb);
void cr16c_translate_code(CPUState *cs, TranslationBlock *tb,
int *max_insns, vaddr pc, void *host_pc);
#include "exec/cpu-all.h"
#endif // !QEMU_CR16C_CPU_H

View file

@ -4,7 +4,7 @@
#include "qemu/compiler.h"
#include "cpu.h"
#include "exec/translator.h"
#include "exec/cpu_ldst.h"
#include "accel/tcg/cpu-ldst.h"
#include "qemu/typedefs.h"
#include "tcg/tcg-cond.h"
#include "tcg/tcg-op-common.h"