📄 memory.h
字号:
/*文件名: memory.h 说明: 页级内存管理函数 作者: marsinfan 日期: 2005/12/20*/#ifndef _memory_h_#define _memory_h_#include <fairysky/types.h>#define PAGE_SIZE 4096#define PAGE_PRESENT 0x001#define PAGE_RW 0x002#define PAGE_USER 0x004#define PAGE_PWT 0x008 /* 486 only - not used currently */#define PAGE_PCD 0x010 /* 486 only - not used currently */#define PAGE_ACCESSED 0x020#define PAGE_DIRTY 0x040#define PAGE_COW 0x200 /* implemented in software (one of the AVL bits) */#define PAGE_PRIVATE (PAGE_PRESENT | PAGE_RW | PAGE_USER | PAGE_ACCESSED | PAGE_COW)#define PAGE_SHARED (PAGE_PRESENT | PAGE_RW | PAGE_USER | PAGE_ACCESSED)#define PAGE_COPY (PAGE_PRESENT | PAGE_USER | PAGE_ACCESSED | PAGE_COW)#define PAGE_READONLY (PAGE_PRESENT | PAGE_USER | PAGE_ACCESSED)#define PAGE_TABLE (PAGE_PRESENT | PAGE_RW | PAGE_USER | PAGE_ACCESSED)extern s32 put_page(addr_t addr);extern s32 copy_page_table(u32 to, u32 from);extern void do_wp_page(u32 addr);extern void do_no_page(u32 addr);extern int get_free_page();extern int free_page(u32 addr);//用刷新cr3的方法来刷新TLB #define __flush_tlb() \ do { \ unsigned int tmpreg; \ __asm__ __volatile__( \ "movl %%cr3, %0; \n" \ "movl %0, %%cr3; # flush TLB \n" \ : "=r" (tmpreg) \ :: "memory"); \ } while (0)#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -