--- trunk/src/include/cpu_arm.h 2007/10/08 16:20:18 27 +++ trunk/src/include/cpu_arm.h 2007/10/08 16:20:26 28 @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * - * $Id: cpu_arm.h,v 1.66 2006/06/24 21:47:23 debug Exp $ + * $Id: cpu_arm.h,v 1.68 2006/07/16 13:32:27 debug Exp $ */ #include "misc.h" @@ -83,20 +83,6 @@ #define ARM_ADDR_TO_PAGENR(a) ((a) >> (ARM_IC_ENTRIES_SHIFT \ + ARM_INSTR_ALIGNMENT_SHIFT)) -struct arm_instr_call { - void (*f)(struct cpu *, struct arm_instr_call *); - size_t arg[ARM_N_IC_ARGS]; -}; - -/* Translation cache struct for each physical page: */ -struct arm_tc_physpage { - struct arm_instr_call ics[ARM_IC_ENTRIES_PER_PAGE + 1]; - uint32_t next_ofs; /* or 0 for end of chain */ - uint32_t physaddr; - int flags; -}; - - #define ARM_F_N 8 /* Same as ARM_FLAG_*, but */ #define ARM_F_Z 4 /* for the 'flags' field instead */ #define ARM_F_C 2 /* of cpsr. */ @@ -139,15 +125,9 @@ #define ARM_EXCEPTION_IRQ 6 #define ARM_EXCEPTION_FIQ 7 +DYNTRANS_MISC_DECLARATIONS(arm,ARM,uint32_t) #define ARM_MAX_VPH_TLB_ENTRIES 128 -struct arm_vpg_tlb_entry { - unsigned char valid; - unsigned char writeflag; - uint32_t vaddr_page; - uint32_t paddr_page; - unsigned char *host_page; -}; struct arm_cpu { @@ -310,6 +290,7 @@ void arm_translation_table_set_l1_b(struct cpu *cpu, uint32_t vaddr, uint32_t paddr); void arm_exception(struct cpu *, int); +int arm_run_instr(struct cpu *cpu); void arm_update_translation_table(struct cpu *cpu, uint64_t vaddr_page, unsigned char *host_page, int writeflag, uint64_t paddr_page); void arm_invalidate_translation_caches(struct cpu *cpu, uint64_t, int);