mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-19 09:06:32 +00:00
🐛 修复空指针错误的问题
This commit is contained in:
@ -16,10 +16,11 @@ void mm_init()
|
||||
memory_management_struct.kernel_data_end = (ul)&_edata;
|
||||
memory_management_struct.kernel_end = (ul)&_end;
|
||||
|
||||
struct multiboot_mmap_entry_t *mb2_mem_info;
|
||||
struct multiboot_mmap_entry_t mb2_mem_info[512];
|
||||
int count;
|
||||
multiboot2_iter(multiboot2_get_memory, mb2_mem_info, &count);
|
||||
|
||||
multiboot2_iter(multiboot2_get_memory, mb2_mem_info, &count);
|
||||
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
//可用的内存
|
||||
@ -27,15 +28,15 @@ void mm_init()
|
||||
Total_Memory += mb2_mem_info->len;
|
||||
|
||||
// 保存信息到mms
|
||||
memory_management_struct.e820[i].BaseAddr = mb2_mem_info->addr;
|
||||
memory_management_struct.e820[i].Length = mb2_mem_info->len;
|
||||
memory_management_struct.e820[i].type = mb2_mem_info->type;
|
||||
memory_management_struct.e820[i].BaseAddr = mb2_mem_info[i].addr;
|
||||
memory_management_struct.e820[i].Length = mb2_mem_info[i].len;
|
||||
memory_management_struct.e820[i].type = mb2_mem_info[i].type;
|
||||
memory_management_struct.len_e820 = i;
|
||||
|
||||
++mb2_mem_info;
|
||||
|
||||
|
||||
// 脏数据
|
||||
if (mb2_mem_info->type > 4 || mb2_mem_info->len == 0 || mb2_mem_info->type < 1)
|
||||
if (mb2_mem_info[i].type > 4 || mb2_mem_info[i].len == 0 || mb2_mem_info[i].type < 1)
|
||||
break;
|
||||
}
|
||||
printk("[ INFO ] Total amounts of RAM : %ld bytes\n", Total_Memory);
|
||||
@ -200,6 +201,7 @@ void mm_init()
|
||||
|
||||
kinfo("Memory management unit initialize complete!");
|
||||
|
||||
|
||||
flush_tlb();
|
||||
// 初始化slab内存池
|
||||
slab_init();
|
||||
|
Reference in New Issue
Block a user