rb.h

来自「这是Skyeye 0.9 版本的源代码」· C头文件 代码 · 共 56 行

H
56
字号
#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 + =
减小字号Ctrl + -
显示快捷键?