diff options
author | ShizZy <shizzy@6bit.net> | 2013-09-18 05:03:54 +0200 |
---|---|---|
committer | ShizZy <shizzy@6bit.net> | 2013-09-18 05:03:54 +0200 |
commit | 7dcfb9c1cf6f8e51e78f6cd686a88bcacb061a54 (patch) | |
tree | 0379e21c648ff1724477ae17d86037a3c3130a51 /src/core/src/arm/mmu/rb.h | |
parent | changed log CPU from PPC to ARM11 (diff) | |
download | yuzu-7dcfb9c1cf6f8e51e78f6cd686a88bcacb061a54.tar yuzu-7dcfb9c1cf6f8e51e78f6cd686a88bcacb061a54.tar.gz yuzu-7dcfb9c1cf6f8e51e78f6cd686a88bcacb061a54.tar.bz2 yuzu-7dcfb9c1cf6f8e51e78f6cd686a88bcacb061a54.tar.lz yuzu-7dcfb9c1cf6f8e51e78f6cd686a88bcacb061a54.tar.xz yuzu-7dcfb9c1cf6f8e51e78f6cd686a88bcacb061a54.tar.zst yuzu-7dcfb9c1cf6f8e51e78f6cd686a88bcacb061a54.zip |
Diffstat (limited to 'src/core/src/arm/mmu/rb.h')
-rw-r--r-- | src/core/src/arm/mmu/rb.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/core/src/arm/mmu/rb.h b/src/core/src/arm/mmu/rb.h new file mode 100644 index 000000000..b2850eff9 --- /dev/null +++ b/src/core/src/arm/mmu/rb.h @@ -0,0 +1,55 @@ +#ifndef _MMU_RB_H +#define _MMU_RB_H + +enum rb_type_t +{ + RB_INVALID = 0, //invalid + RB_1, //1 word + RB_4, //4 word + RB_8, //8 word +}; + +/*bytes of each rb_type*/ +extern ARMword rb_masks[]; + +#define RB_WORD_NUM 8 +typedef struct rb_entry_s +{ + ARMword data[RB_WORD_NUM]; //array to store data + ARMword va; //first word va + int type; //rb type + fault_t fault; //fault set by rb alloc +} rb_entry_t; + +typedef struct rb_s +{ + int num; + rb_entry_t *entrys; +} rb_s; + +/*mmu_rb_init + * @rb_t :rb_t to init + * @num :number of entry + * */ +int mmu_rb_init (rb_s * rb_t, int num); + +/*mmu_rb_exit*/ +void mmu_rb_exit (rb_s * rb_t); + + +/*mmu_rb_search + * @rb_t :rb_t to serach + * @va :va address to math + * + * $ NULL :not match + * NO-NULL: + * */ +rb_entry_t *mmu_rb_search (rb_s * rb_t, ARMword va); + + +void mmu_rb_invalidate_entry (rb_s * rb_t, int i); +void mmu_rb_invalidate_all (rb_s * rb_t); +void mmu_rb_load (ARMul_State * state, rb_s * rb_t, int i_rb, + int type, ARMword va); + +#endif /*_MMU_RB_H_*/ |