summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Brinkmann <marcus@gnu.org>2004-03-18 02:54:43 +0000
committerThomas Schwinge <tschwinge@gnu.org>2009-04-06 22:31:30 +0200
commit0f67345c47f86459d5fd854d664797316824d250 (patch)
treee06e49fa91017391082da34a178a841da1b04295
parent3bbee34f0e375e9fd768cc0e59949b0c16849bd5 (diff)
2004-03-17 Marcus Brinkmann <marcus@gnu.org>
* sysdeps/l4/pt-thread-start.c (__pthread_thread_start): Use L4 convenience interface.
-rw-r--r--sysdeps/l4/pt-thread-start.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/sysdeps/l4/pt-thread-start.c b/sysdeps/l4/pt-thread-start.c
index 36770703..72c4d302 100644
--- a/sysdeps/l4/pt-thread-start.c
+++ b/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;
}