diff options
author | marcus <marcus> | 2004-03-18 02:54:43 +0000 |
---|---|---|
committer | marcus <marcus> | 2004-03-18 02:54:43 +0000 |
commit | a0e6b2f856703e0775fb5eaa64243649423d4503 (patch) | |
tree | 5bfe8e7681f4092e4f611443680066b9ea14f840 /libpthread | |
parent | 7287321326eeda04e909c844aa01668c03418f8d (diff) |
2004-03-17 Marcus Brinkmann <marcus@gnu.org>
* sysdeps/l4/pt-thread-start.c (__pthread_thread_start): Use L4
convenience interface.
Diffstat (limited to 'libpthread')
-rw-r--r-- | libpthread/ChangeLog | 3 | ||||
-rw-r--r-- | libpthread/sysdeps/l4/pt-thread-start.c | 12 |
2 files changed, 6 insertions, 9 deletions
diff --git a/libpthread/ChangeLog b/libpthread/ChangeLog index 185daee..63b877b 100644 --- a/libpthread/ChangeLog +++ b/libpthread/ChangeLog @@ -1,5 +1,8 @@ 2004-03-17 Marcus Brinkmann <marcus@gnu.org> + * sysdeps/l4/pt-thread-start.c (__pthread_thread_start): Use L4 + convenience interface. + * sysdeps/l4/pt-spin.c (_pthread_spin_lock): Implement using new time period interface. diff --git a/libpthread/sysdeps/l4/pt-thread-start.c b/libpthread/sysdeps/l4/pt-thread-start.c index 3677070..72c4d30 100644 --- a/libpthread/sysdeps/l4/pt-thread-start.c +++ b/libpthread/sysdeps/l4/pt-thread-start.c @@ -32,15 +32,9 @@ __pthread_thread_start (struct __pthread *thread) assert (__pthread_total == 1); else { - l4_thread_id_t dest = thread->threadid; - l4_word_t control = (L4_XCHG_REGS_SET_HALT | L4_XCHG_REGS_SET_SP - | L4_XCHG_REGS_SET_IP | L4_XCHG_REGS_SET_PAGER); - l4_word_t sp = (l4_word_t) thread->mcontext.sp; - l4_word_t ip = (l4_word_t) thread->mcontext.pc; - l4_word_t dummy = 0; - l4_thread_id_t pager = l4_pager (); - - l4_exchange_registers (&dest, &control, &sp, &ip, &dummy, &dummy, &pager); + l4_set_pager_of (thread->threadid, l4_pager ()); + l4_start_sp_ip (thread->threadid, (l4_word_t) thread->mcontext.sp, + (l4_word_t) thread->mcontext.pc); } return 0; } |