Subversion Repositories Kolibri OS

Rev

Rev 3593 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. #include <newlib.h>
  2.  
  3. void init_reent();
  4.  
  5. void  __attribute__((noreturn))
  6. __thread_startup (int (*entry)(void*), void *param,
  7.                   void *stacklow, void *stackhigh)
  8. {
  9.     int retval;
  10.  
  11.     __asm__ __volatile__(               // save stack limits
  12.     "movl %0, %%fs:8    \n\t"           // use TLS
  13.     "movl %1, %%fs:12    \n\t"
  14.     ::"r"(stacklow), "r"(stackhigh));
  15.  
  16.     init_reent();                       // initialize thread reentry structure
  17.  
  18.     retval = entry(param);              // call user thread function
  19.  
  20.     _exit(retval);
  21. };
  22.  
  23.