⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rb.h

📁 这是Skyeye 0.9 版本的源代码
💻 H
字号:
#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_t;

/*mmu_rb_init
 * @rb_t	:rb_t to init
 * @num		:number of entry
 * */
int mmu_rb_init (rb_t * rb_t, int num);

/*mmu_rb_exit*/
void mmu_rb_exit (rb_t * 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_t * rb_t, ARMword va);


void mmu_rb_invalidate_entry (rb_t * rb_t, int i);
void mmu_rb_invalidate_all (rb_t * rb_t);
void mmu_rb_load (ARMul_State * state, rb_t * rb_t, int i_rb,
		  int type, ARMword va);

#endif /*_MMU_RB_H_*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -