Changeset 2902e1bb in mainline for kernel/arch/ia64/src/ia64.c


Ignore:
Timestamp:
2012-06-13T13:17:46Z (12 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1d4024cf, 375e501
Parents:
faba839
Message:

add support for variable uspace stack size
create individual address space areas for stacks of additional threads (instead of allocating the stack from heap)
avoid memory leaks in program_create()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/src/ia64.c

    rfaba839 r2902e1bb  
    232232         *
    233233         * When calculating stack addresses, mind the stack split between the
    234          * memory stack and the RSE stack. Each occuppies STACK_SIZE / 2 bytes.
     234         * memory stack and the RSE stack. Each occuppies
     235         * uspace_stack_size / 2 bytes.
    235236         */
    236237        switch_to_userspace((uintptr_t) kernel_uarg->uspace_entry,
    237             ((uintptr_t) kernel_uarg->uspace_stack) + STACK_SIZE / 2 -
     238            ((uintptr_t) kernel_uarg->uspace_stack) +
     239            kernel_uarg->uspace_stack_size / 2 -
    238240            ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT),
    239             ((uintptr_t) kernel_uarg->uspace_stack) + STACK_SIZE / 2,
     241            ((uintptr_t) kernel_uarg->uspace_stack) +
     242            kernel_uarg->uspace_stack_size / 2,
    240243            (uintptr_t) kernel_uarg->uspace_uarg, psr.value, rsc.value);
    241 
    242         while (1)
    243                 ;
     244       
     245        while (1);
    244246}
    245247
Note: See TracChangeset for help on using the changeset viewer.