48 |
|
|
49 |
/* For the rootserver components, find_components() must fill in the |
/* For the rootserver components, find_components() must fill in the |
50 |
start and end address of the ELF images in memory. The end address |
start and end address of the ELF images in memory. The end address |
51 |
is one more than the last byte in the image. */ |
is one more than the address of the last byte in the image. */ |
52 |
extern rootserver_t kernel; |
extern rootserver_t kernel; |
53 |
extern rootserver_t sigma0; |
extern rootserver_t sigma0; |
54 |
extern rootserver_t sigma1; |
extern rootserver_t sigma1; |
63 |
extern struct l4_memory_desc memory_map[MEMORY_MAP_MAX]; |
extern struct l4_memory_desc memory_map[MEMORY_MAP_MAX]; |
64 |
extern l4_word_t memory_map_size; |
extern l4_word_t memory_map_size; |
65 |
|
|
66 |
#define add_memory_map(start,end,mtype,msubtype) \ |
#define add_memory_map(start, end, mtype, msubtype) \ |
67 |
({ \ |
({ \ |
68 |
if (memory_map_size == MEMORY_MAP_MAX) \ |
if (memory_map_size == MEMORY_MAP_MAX) \ |
69 |
panic ("No more memory descriptor slots available.\n"); \ |
panic ("No more memory descriptor slots available.\n"); \ |
70 |
memory_map[memory_map_size].low = (start) >> 10; \ |
memory_map[memory_map_size].low = (start) >> 10; \ |
71 |
memory_map[memory_map_size].high = ((end) + (1 << 10) - 1) >> 10; \ |
memory_map[memory_map_size].high = (end) >> 10; \ |
72 |
memory_map[memory_map_size].virtual = 0; \ |
memory_map[memory_map_size].virtual = 0; \ |
73 |
memory_map[memory_map_size].type = (mtype); \ |
memory_map[memory_map_size].type = (mtype); \ |
74 |
memory_map[memory_map_size].subtype = (msubtype); \ |
memory_map[memory_map_size].subtype = (msubtype); \ |