Rev 1789 | Rev 1822 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1789 | Rev 1790 | ||
---|---|---|---|
Line 78... | Line 78... | ||
78 | for (i = 0; i < COMPONENTS; i++) |
78 | for (i = 0; i < COMPONENTS; i++) |
79 | printf(" %P: %s image (size %d bytes)\n", components[i].start, components[i].name, components[i].size); |
79 | printf(" %P: %s image (size %d bytes)\n", components[i].start, components[i].name, components[i].size); |
80 | 80 | ||
81 | printf("\nCopying components\n"); |
81 | printf("\nCopying components\n"); |
82 | unsigned int top = 0; |
82 | unsigned int top = 0; |
83 | bootinfo.cnt = 0; |
83 | bootinfo.taskmap.count = 0; |
84 | for (i = 0; i < COMPONENTS; i++) { |
84 | for (i = 0; i < COMPONENTS; i++) { |
- | 85 | void * base = (void *) KERNEL_VIRTUAL_ADDRESS; |
|
- | 86 | ||
85 | printf(" %s...", components[i].name); |
87 | printf(" %s...", components[i].name); |
86 | top = ALIGN_UP(top, PAGE_SIZE); |
88 | top = ALIGN_UP(top, PAGE_SIZE); |
87 | memcpy(((void *) KERNEL_VIRTUAL_ADDRESS) + top, components[i].start, components[i].size); |
89 | memcpy(base + top, components[i].start, components[i].size); |
88 | if (i > 0) { |
90 | if (i > 0) { |
89 | bootinfo.tasks[bootinfo.cnt].addr = ((void *) KERNEL_VIRTUAL_ADDRESS) + top; |
91 | bootinfo.taskmap.tasks[bootinfo.taskmap.count].addr = base + top; |
90 | bootinfo.tasks[bootinfo.cnt].size = components[i].size; |
92 | bootinfo.taskmap.tasks[bootinfo.taskmap.count].size = components[i].size; |
91 | bootinfo.cnt++; |
93 | bootinfo.taskmap.count++; |
92 | } |
94 | } |
93 | top += components[i].size; |
95 | top += components[i].size; |
94 | printf("done.\n"); |
96 | printf("done.\n"); |
95 | } |
97 | } |
96 | 98 |