]> Git Repo - qemu.git/blobdiff - target/nios2/cpu.h
target/nios2: Rewrite interrupt handling
[qemu.git] / target / nios2 / cpu.h
index 1fa0fdaa3534b50f6710c10b6afa4b2142b4ec10..a00e4229ce9ddd7f4604c824a44f67445041c65d 100644 (file)
@@ -33,7 +33,7 @@ typedef struct CPUNios2State CPUNios2State;
 #define TYPE_NIOS2_CPU "nios2-cpu"
 
 OBJECT_DECLARE_TYPE(Nios2CPU, Nios2CPUClass,
-                    nios2_cpu, NIOS2_CPU)
+                    NIOS2_CPU)
 
 /**
  * Nios2CPUClass:
@@ -160,9 +160,8 @@ struct CPUNios2State {
 
 #if !defined(CONFIG_USER_ONLY)
     Nios2MMU mmu;
-
-    uint32_t irq_pending;
 #endif
+    int error_code;
 };
 
 /**
@@ -193,23 +192,18 @@ struct Nios2CPU {
 
 void nios2_tcg_init(void);
 void nios2_cpu_do_interrupt(CPUState *cs);
-int cpu_nios2_signal_handler(int host_signum, void *pinfo, void *puc);
 void dump_mmu(CPUNios2State *env);
 void nios2_cpu_dump_state(CPUState *cpu, FILE *f, int flags);
 hwaddr nios2_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
 void nios2_cpu_do_unaligned_access(CPUState *cpu, vaddr addr,
-                                   MMUAccessType access_type,
-                                   int mmu_idx, uintptr_t retaddr);
-
-qemu_irq *nios2_cpu_pic_init(Nios2CPU *cpu);
-void nios2_check_interrupts(CPUNios2State *env);
+                                   MMUAccessType access_type, int mmu_idx,
+                                   uintptr_t retaddr) QEMU_NORETURN;
 
 void do_nios2_semihosting(CPUNios2State *env);
 
 #define CPU_RESOLVING_TYPE TYPE_NIOS2_CPU
 
 #define cpu_gen_code cpu_nios2_gen_code
-#define cpu_signal_handler cpu_nios2_signal_handler
 
 #define CPU_SAVE_VERSION 1
 
@@ -223,9 +217,15 @@ static inline int cpu_mmu_index(CPUNios2State *env, bool ifetch)
                                                   MMU_SUPERVISOR_IDX;
 }
 
+#ifdef CONFIG_USER_ONLY
+void nios2_cpu_record_sigsegv(CPUState *cpu, vaddr addr,
+                              MMUAccessType access_type,
+                              bool maperr, uintptr_t ra);
+#else
 bool nios2_cpu_tlb_fill(CPUState *cs, vaddr address, int size,
                         MMUAccessType access_type, int mmu_idx,
                         bool probe, uintptr_t retaddr);
+#endif
 
 static inline int cpu_interrupts_enabled(CPUNios2State *env)
 {
This page took 0.02583 seconds and 4 git commands to generate.