Rev 946 | Rev 1063 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 946 | Rev 1037 | ||
---|---|---|---|
Line 808... | Line 808... | ||
808 | */ |
808 | */ |
809 | confcount = SIZE2FRAMES(zone_conf_size(count)); |
809 | confcount = SIZE2FRAMES(zone_conf_size(count)); |
810 | if (confframe >= start && confframe < start+count) { |
810 | if (confframe >= start && confframe < start+count) { |
811 | for (;confframe < start+count;confframe++) { |
811 | for (;confframe < start + count; confframe++) { |
812 | addr = PFN2ADDR(confframe); |
812 | addr = PFN2ADDR(confframe); |
813 | if (overlaps(addr, PFN2ADDR(confcount), |
- | |
814 | KA2PA(config.base),config.kernel_size)) |
813 | if (overlaps(addr, PFN2ADDR(confcount), KA2PA(config.base), config.kernel_size)) |
815 | continue; |
814 | continue; |
- | 815 | ||
- | 816 | bool overlap = false; |
|
- | 817 | count_t i; |
|
816 | if (config.init_addr) |
818 | for (i = 0; i < init.cnt; i++) |
817 | if (overlaps(addr,PFN2ADDR(confcount), |
819 | if (overlaps(addr, PFN2ADDR(confcount), KA2PA(init.tasks[i].addr), init.tasks[i].size)) { |
818 | KA2PA(config.init_addr), |
820 | overlap = true; |
- | 821 | break; |
|
- | 822 | } |
|
819 | config.init_size)) |
823 | if (overlap) |
820 | continue; |
824 | continue; |
- | 825 | ||
821 | break; |
826 | break; |
822 | } |
827 | } |
823 | if (confframe >= start+count) |
828 | if (confframe >= start + count) |
824 | panic("Cannot find configuration data for zone."); |
829 | panic("Cannot find configuration data for zone."); |
825 | } |
830 | } |
Line 987... | Line 992... | ||
987 | frame_arch_init(); |
992 | frame_arch_init(); |
988 | if (config.cpu_active == 1) { |
993 | if (config.cpu_active == 1) { |
989 | pfn_t firstframe = ADDR2PFN(KA2PA(config.base)); |
994 | pfn_t firstframe = ADDR2PFN(KA2PA(config.base)); |
990 | pfn_t lastframe = ADDR2PFN(KA2PA(config.base+config.kernel_size)); |
995 | pfn_t lastframe = ADDR2PFN(KA2PA(config.base+config.kernel_size)); |
991 | frame_mark_unavailable(firstframe,lastframe-firstframe+1); |
996 | frame_mark_unavailable(firstframe,lastframe-firstframe+1); |
- | 997 | ||
- | 998 | count_t i; |
|
992 | if (config.init_size > 0) |
999 | for (i = 0; i < init.cnt; i++) |
993 | frame_mark_unavailable(ADDR2PFN(KA2PA(config.init_addr)), |
1000 | frame_mark_unavailable(ADDR2PFN(KA2PA(init.tasks[i].addr)), SIZE2FRAMES(init.tasks[i].size)); |
994 | SIZE2FRAMES(config.init_size)); |
- | |
995 | } |
1001 | } |
996 | } |
1002 | } |
997 | 1003 | ||
998 | 1004 | ||
999 | 1005 |