| 123456789101112131415161718192021222324252627282930 |
- /************************************************************************
- * 0xc0000000 是内核从虚拟地址3G起
- * 0x100000 是内核从物理地址1M起
- *
- * 低端1MB内存中,0x00000000~0x00a0000 是低端640K内存
- * 0x00a0000~0x00f0000 是显存
- * 0x00f0000~0x0100000 是BIOS数据区
- *
- * 0xc0000000~0xc0100000 是映射到物理地址的前1MB内存
- * 0xc0100000~0xf0000000 是内核地址空间,共503MB
- * 0xf0000000~ 是保留给用户的地址空间
- ************************************************************************/
- #ifndef __KERNEL_MEMORY_H
- #define __KERNEL_MEMORY_H
- #include "../lib/stdint.h"
- #include "../lib/kernel/bitmap.h"
- // 虚拟地址池,用于虚拟地址管理
- struct virtual_addr
- {
- Bitmap vaddr_bitmap; // 虚拟地址用到的位图结构
- uint32_t vaddr_start; // 虚拟地址起始地址
- };
- extern struct pool kernel_pool, user_pool; // 内核内存池和用户内存池
- void mem_init(void); // 内存管理初始化
- #endif // __KERNEL_MEMORY_H
|