Rev 534 | Rev 537 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 534 | Rev 536 | ||
---|---|---|---|
Line 36... | Line 36... | ||
36 | #include <list.h> |
36 | #include <list.h> |
37 | #include <synch/spinlock.h> |
37 | #include <synch/spinlock.h> |
38 | #include <arch/asm.h> |
38 | #include <arch/asm.h> |
39 | #include <arch.h> |
39 | #include <arch.h> |
40 | #include <print.h> |
40 | #include <print.h> |
- | 41 | #include <align.h> |
|
41 | 42 | ||
42 | spinlock_t zone_head_lock; /**< this lock protects zone_head list */ |
43 | spinlock_t zone_head_lock; /**< this lock protects zone_head list */ |
43 | link_t zone_head; /**< list of all zones in the system */ |
44 | link_t zone_head; /**< list of all zones in the system */ |
44 | 45 | ||
45 | region_t zone_blacklist[ZONE_BLACKLIST_SIZE]; |
46 | region_t zone_blacklist[ZONE_BLACKLIST_SIZE]; |
Line 60... | Line 61... | ||
60 | */ |
61 | */ |
61 | void frame_init(void) |
62 | void frame_init(void) |
62 | { |
63 | { |
63 | if (config.cpu_active == 1) { |
64 | if (config.cpu_active == 1) { |
64 | zone_init(); |
65 | zone_init(); |
65 | frame_region_not_free(config.base, config.base + config.kernel_size + CONFIG_STACK_SIZE); |
66 | frame_region_not_free(config.base, config.kernel_size); |
66 | } |
67 | } |
67 | 68 | ||
68 | frame_arch_init(); |
69 | frame_arch_init(); |
69 | } |
70 | } |
70 | 71 | ||
Line 209... | Line 210... | ||
209 | count_t index; |
210 | count_t index; |
210 | index = zone_blacklist_count++; |
211 | index = zone_blacklist_count++; |
211 | ASSERT(base % FRAME_SIZE == 0); |
212 | ASSERT(base % FRAME_SIZE == 0); |
212 | 213 | ||
213 | if (size % FRAME_SIZE != 0) { |
214 | if (size % FRAME_SIZE != 0) { |
214 | size = size + (FRAME_SIZE - size % FRAME_SIZE); |
215 | size = ALIGN(size, FRAME_SIZE); |
215 | } |
216 | } |
216 | ASSERT(size % FRAME_SIZE == 0); |
217 | ASSERT(size % FRAME_SIZE == 0); |
217 | ASSERT(zone_blacklist_count <= ZONE_BLACKLIST_SIZE); |
218 | ASSERT(zone_blacklist_count <= ZONE_BLACKLIST_SIZE); |
218 | zone_blacklist[index].base = base; |
219 | zone_blacklist[index].base = base; |
219 | zone_blacklist[index].size = size; |
220 | zone_blacklist[index].size = size; |