|
@@ -138,7 +138,7 @@ static unsigned int extmemsize ( void ) {
|
138
|
138
|
* @ret rc Return status code
|
139
|
139
|
*/
|
140
|
140
|
static int meme820 ( struct memory_map *memmap ) {
|
141
|
|
- unsigned int index = 0;
|
|
141
|
+ struct memory_region *region = memmap->regions;
|
142
|
142
|
uint32_t next = 0;
|
143
|
143
|
uint32_t smap;
|
144
|
144
|
unsigned int flags;
|
|
@@ -169,12 +169,13 @@ static int meme820 ( struct memory_map *memmap ) {
|
169
|
169
|
if ( e820buf.type != E820_TYPE_RAM )
|
170
|
170
|
continue;
|
171
|
171
|
|
172
|
|
- memmap->regions[index].start = e820buf.start;
|
173
|
|
- memmap->regions[index].end = e820buf.start + e820buf.len;
|
174
|
|
- index++;
|
|
172
|
+ region->start = e820buf.start;
|
|
173
|
+ region->end = e820buf.start + e820buf.len;
|
|
174
|
+ region++;
|
|
175
|
+ memmap->count++;
|
175
|
176
|
} while ( ( next != 0 ) &&
|
176
|
|
- ( index < ( sizeof ( memmap->regions ) /
|
177
|
|
- sizeof ( memmap->regions[0] ) ) ) );
|
|
177
|
+ ( memmap->count < ( sizeof ( memmap->regions ) /
|
|
178
|
+ sizeof ( memmap->regions[0] ) ) ) );
|
178
|
179
|
return 0;
|
179
|
180
|
}
|
180
|
181
|
|
|
@@ -202,4 +203,5 @@ void get_memmap ( struct memory_map *memmap ) {
|
202
|
203
|
memmap->regions[0].end = ( basemem * 1024 );
|
203
|
204
|
memmap->regions[1].start = 0x100000;
|
204
|
205
|
memmap->regions[1].end = 0x100000 + ( extmem * 1024 );
|
|
206
|
+ memmap->count = 2;
|
205
|
207
|
}
|