--- trunk/src/include/cpu.h 2007/10/08 16:18:38 12 +++ trunk/src/include/cpu.h 2007/10/08 16:18:51 14 @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * - * $Id: cpu.h,v 1.43 2005/08/16 05:37:13 debug Exp $ + * $Id: cpu.h,v 1.48 2005/09/17 17:14:28 debug Exp $ * * See cpu.c. */ @@ -41,12 +41,16 @@ /* This is needed for undefining 'mips' or 'ppc', on weird systems: */ #include "../../config.h" -#include "cpu_arm.h" #include "cpu_alpha.h" +#include "cpu_arm.h" +#include "cpu_avr.h" +#include "cpu_hppa.h" +#include "cpu_i960.h" #include "cpu_ia64.h" #include "cpu_m68k.h" #include "cpu_mips.h" #include "cpu_ppc.h" +#include "cpu_sh.h" #include "cpu_sparc.h" #include "cpu_x86.h" @@ -137,13 +141,15 @@ uint64_t vaddr_page, unsigned char *host_page, int writeflag, uint64_t paddr_page); void (*invalidate_translation_caches_paddr)(struct cpu *, - uint64_t paddr); - void (*invalidate_code_translation_caches)(struct cpu *); + uint64_t paddr, int flags); + void (*invalidate_code_translation)(struct cpu *, + uint64_t paddr, int flags); void (*useremul_syscall)(struct cpu *cpu, uint32_t code); uint64_t pc; #ifdef TRACE_NULL_CRASHES + /* TODO: remove this, it's MIPS only */ int trace_null_index; uint64_t trace_null_addr[TRACE_NULL_N_ENTRIES]; #endif @@ -164,10 +170,14 @@ union { struct alpha_cpu alpha; struct arm_cpu arm; + struct avr_cpu avr; + struct hppa_cpu hppa; + struct i960_cpu i960; struct ia64_cpu ia64; struct m68k_cpu m68k; struct mips_cpu mips; struct ppc_cpu ppc; + struct sh_cpu sh; struct sparc_cpu sparc; struct x86_cpu x86; } cd; @@ -200,6 +210,12 @@ void cpu_init(void); +#define JUST_MARK_AS_NON_WRITABLE 1 +#define INVALIDATE_ALL 2 +#define INVALIDATE_PADDR 4 +#define INVALIDATE_VADDR 8 + + #define CPU_FAMILY_INIT(n,s) int n ## _cpu_family_init( \ struct cpu_family *fp) { \ /* Fill in the cpu_family struct with valid data for this arch. */ \