Subversion Repositories HelenOS

Rev

Rev 1833 | Rev 1901 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1833 Rev 1894
Line 92... Line 92...
92
/** Initial user-space tasks */
92
/** Initial user-space tasks */
93
init_t init = {
93
init_t init = {
94
    0
94
    0
95
};
95
};
96
 
96
 
-
 
97
/** Boot allocations. */
-
 
98
ballocs_t ballocs = {
-
 
99
    .base = NULL,
-
 
100
    .size = 0
-
 
101
};
-
 
102
 
97
context_t ctx;
103
context_t ctx;
98
 
104
 
99
/*
105
/*
100
 * These 'hardcoded' variables will be intialized by
106
 * These 'hardcoded' variables will be intialized by
101
 * the linker or the low level assembler code with
107
 * the linker or the low level assembler code with
Line 151... Line 157...
151
    for (i = 0; i < init.cnt; i++) {
157
    for (i = 0; i < init.cnt; i++) {
152
        if (PA_overlaps(config.stack_base, config.stack_size, init.tasks[i].addr, init.tasks[i].size))
158
        if (PA_overlaps(config.stack_base, config.stack_size, init.tasks[i].addr, init.tasks[i].size))
153
            config.stack_base = ALIGN_UP(init.tasks[i].addr + init.tasks[i].size, config.stack_size);
159
            config.stack_base = ALIGN_UP(init.tasks[i].addr + init.tasks[i].size, config.stack_size);
154
    }
160
    }
155
   
161
 
-
 
162
    /* Avoid placing stack on top of boot allocations. */
-
 
163
    if (ballocs.size) {
-
 
164
        if (PA_overlaps(config.stack_base, config.stack_size, ballocs.base, ballocs.size))
-
 
165
            config.stack_base = ALIGN_UP(ballocs.base + ballocs.size, PAGE_SIZE);
-
 
166
    }
-
 
167
   
156
    if (config.stack_base < stack_safe)
168
    if (config.stack_base < stack_safe)
157
        config.stack_base = ALIGN_UP(stack_safe, PAGE_SIZE);
169
        config.stack_base = ALIGN_UP(stack_safe, PAGE_SIZE);
158
   
170
   
159
    context_save(&ctx);
171
    context_save(&ctx);
160
    context_set(&ctx, FADDR(main_bsp_separated_stack), config.stack_base, THREAD_STACK_SIZE);
172
    context_set(&ctx, FADDR(main_bsp_separated_stack), config.stack_base, THREAD_STACK_SIZE);