Changeset 2902e1bb in mainline for kernel/arch/amd64/src/userspace.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/amd64/src/userspace.c

    rfaba839 r2902e1bb  
    5555        asm volatile (
    5656                "pushq %[udata_des]\n"
    57                 "pushq %[stack_size]\n"
     57                "pushq %[stack_top]\n"
    5858                "pushq %[ipl]\n"
    5959                "pushq %[utext_des]\n"
     
    6565                "iretq\n"
    6666                :: [udata_des] "i" (GDT_SELECTOR(UDATA_DES) | PL_USER),
    67                    [stack_size] "r" (kernel_uarg->uspace_stack + STACK_SIZE),
     67                   [stack_top] "r" ((uint8_t *) kernel_uarg->uspace_stack +
     68                       kernel_uarg->uspace_stack_size),
    6869                   [ipl] "r" (ipl),
    6970                   [utext_des] "i" (GDT_SELECTOR(UTEXT_DES) | PL_USER),
     
    7475       
    7576        /* Unreachable */
    76         while (1)
    77                 ;
     77        while (1);
    7878}
    7979
Note: See TracChangeset for help on using the changeset viewer.