Subversion Repositories HelenOS-historic

Rev

Rev 532 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 532 Rev 533
Line 31... Line 31...
31
#include <mm/vm.h>
31
#include <mm/vm.h>
32
#include <config.h>
32
#include <config.h>
33
#include <arch/boot/boot.h>
33
#include <arch/boot/boot.h>
34
#include <arch/boot/memmap.h>
34
#include <arch/boot/memmap.h>
35
#include <panic.h>
35
#include <panic.h>
-
 
36
#include <debug.h>
36
 
37
 
37
size_t hardcoded_unmapped_ktext_size = 0;
38
size_t hardcoded_unmapped_ktext_size = 0;
38
size_t hardcoded_unmapped_kdata_size = 0;
39
size_t hardcoded_unmapped_kdata_size = 0;
39
 
40
 
40
void frame_arch_init(void)
41
void frame_arch_init(void)
41
{
42
{
42
    zone_t *z;
43
    zone_t *z;
-
 
44
    __address start, stop;
-
 
45
    size_t size;
43
    __u8 i;
46
    __u8 i;
44
   
47
   
45
    if (config.cpu_active == 1) {
48
    if (config.cpu_active == 1) {
-
 
49
 
-
 
50
        /* Reserve frame 0 (BIOS data) */
-
 
51
        frame_region_not_free(0, FRAME_SIZE);
-
 
52
       
-
 
53
        /* Reserve real mode bootstrap memory */
-
 
54
        frame_region_not_free(BOOTSTRAP_OFFSET, hardcoded_unmapped_ktext_size + hardcoded_unmapped_kdata_size);
-
 
55
       
46
        for (i=0;i<e820counter;i++) {
56
        for (i=0;i<e820counter;i++) {
47
            if (e820table[i].type==MEMMAP_MEMORY_AVAILABLE) {
57
            if (e820table[i].type==MEMMAP_MEMORY_AVAILABLE) {
48
                z = zone_create(e820table[i].base_address, e820table[i].size & ~(FRAME_SIZE-1), 0);
58
                zone_create_in_region(e820table[i].base_address,  e820table[i].size & ~(FRAME_SIZE-1));
49
                if (!z) {
-
 
50
                    panic("Cannot allocate zone (%dB).\n", e820table[i].size & ~(FRAME_SIZE-1));
-
 
51
                }
-
 
52
                zone_attach(z);
-
 
53
            }
59
            }
54
        }
60
        }
55
       
-
 
56
        frame_not_free(0);
-
 
57
 
-
 
58
        /* Reserve real mode bootstrap memory */
-
 
59
                frame_region_not_free(BOOTSTRAP_OFFSET, BOOTSTRAP_OFFSET + hardcoded_unmapped_ktext_size + hardcoded_unmapped_kdata_size);
-
 
60
    }
61
    }
61
}
62
}