First cut at 1.4.0.
[mknbi.git] / memsizes.c
1 #include        "etherboot.h"
2
3 /* Taken from Etherboot */
4 /* by Eric Biederman */
5
6 extern unsigned int memsize P((void));
7 extern unsigned short basememsize P((void));
8 extern int meme820(struct e820entry *buf, int count);
9
10 struct meminfo meminfo;
11
12 void get_memsizes(void)
13 {
14         int i;
15         meminfo.basememsize = basememsize();
16         meminfo.memsize = memsize();
17         meminfo.map_count = meme820(meminfo.map, E820MAX);
18         if (meminfo.map_count == 0) {
19                 /* If we don't have an e820 memory map fake it */
20                 meminfo.map_count = 2;
21                 meminfo.map[0].size = meminfo.basememsize << 10;
22                 meminfo.map[0].type = E820_RAM;
23                 meminfo.map[1].addr = 1024*1024;
24                 meminfo.map[1].size = meminfo.memsize << 10;
25                 meminfo.map[1].type = E820_RAM;
26         }
27 }