bug fixed: e820 procedures were crashing on real pc
[quarnos.git] / arch / x86 / e820.cpp
blob3a5390aadf2d64fa03e5fa352d87f80ddc90d9e2
1 #include "e820.h"
3 using namespace arch;
5 e820_record *e820data;
7 unsigned int arch::get_memory_size() {
8 e820data = (e820_record*)0x10000;
10 u32 mem_size = 0;
12 for (int i = 0; e820data[i].type; i++)
13 mem_size += (u32)e820data[i].length;
15 return mem_size;
18 unsigned int arch::get_free_memory_size() {
19 e820data = (e820_record*)0x10000;
21 u32 mem_size = 0;
23 for (int i = 0; e820data[i].type; i++)
24 if (e820data[i].type == e820_free)
25 mem_size += (u32)e820data[i].length;
27 return mem_size;