l4_thread_ex_regs -- read and write register values of a thread, create a thread

1 Synopsis

#include <l4/sys/syscalls.h>

static inline void
l4_thread_ex_regs(l4_threadid_t dest , l4_umword_t eip , l4_umword_t esp , l4_threadid_t *preempter , l4_threadid_t *pager , l4_umword_t *old_eflags , l4_umword_t *old_eip , l4_umword_t *old_esp );

2 Description

The l4_thread_ex_regs() system call reads and writes user-level register values of a thread in the current task. Ongoing kernel activities are not effected. An ipc operation is cancelled or aborted, however. Setting stack and instruction pointer to different valid values results in the creation of a new thread.

3 Arguments

dest
The identifier of the destination thread.
eip
The new instruction pointer of the thread. It must point into the user-accessible part of the address space. The existing instruction pointer is not modified if 0xFFFFFFFF is given.
esp
The new stack pointer for the thread. It must point into the user-accessible part of the address space. The existing stack pointer is not modified if 0xFFFFFFFF is given.
*preempter
Defines the internal preempter used by the thread. The current preempter id is not modified if L4_INVALID_ID is given.
*pager
Defines the pager used by the thread. the current pager id is not modified if L4_INVALID_ID is given.
*old_flags
Flags of the thread.
*old_eip
Old instruction pointer of the thread.
*old_esp
Old stack pointer of the thread.

4 Return Values

The thread id of the current thread is returned.

5 See Also

l4_fpage_unmap , l4_myself , l4_nchief , l4_thread_switch , l4_thread_schedule , l4_task_new
Ich