Changeset 9f52563 in mainline for arch/amd64/src/userspace.c


Ignore:
Timestamp:
2006-03-17T01:34:36Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8a0b0669
Parents:
5fceec7
Message:

Support for user space threads.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/amd64/src/userspace.c

    r5fceec7 r9f52563  
    4040 *
    4141 */
    42 void userspace(__address entry)
     42void userspace(uspace_arg_t *uarg)
    4343{
    4444        ipl_t ipl;
     
    4747
    4848        __asm__ volatile (""
    49                           "movq %0, %%rax;"                   
    50                           "movq %1, %%rbx;"
    51                           "movq %2, %%rcx;"
    52                           "movq %3, %%rdx;"
    53                           "movq %4, %%rsi;"
    54                           "pushq %%rax;"
    55                           "pushq %%rbx;"
    56                           "pushq %%rcx;"
    57                           "pushq %%rdx;"
    58                           "pushq %%rsi;"
    59                           "iretq;"
    60                           : : "i" (gdtselector(UDATA_DES) | PL_USER),
    61                           "i" (USTACK_ADDRESS+THREAD_STACK_SIZE),
     49                          "pushq %0\n"
     50                          "pushq %1\n"
     51                          "pushq %2\n"
     52                          "pushq %3\n"
     53                          "pushq %4\n"
     54                          "iretq\n"
     55                          : :
     56                          "i" (gdtselector(UDATA_DES) | PL_USER),
     57                          "r" (uarg->uspace_stack+THREAD_STACK_SIZE),
    6258                          "r" (ipl),
    6359                          "i" (gdtselector(UTEXT_DES) | PL_USER),
    64                           "r" (entry));
     60                          "r" (uarg->uspace_entry));
    6561       
    6662        /* Unreachable */
Note: See TracChangeset for help on using the changeset viewer.