posix signals support, 1st pass

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1623 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
lillo
2002-10-23 17:31:10 +00:00
parent 54d6a27c67
commit f510e6ce60
24 changed files with 789 additions and 196 deletions
+4
View File
@@ -18,6 +18,10 @@ void arch_thread_switch_kstack_and_call(struct thread *t, addr new_kstack, void
//struct thread *arch_thread_get_current_thread(void);
//void arch_thread_set_current_thread(struct thread *t);
void arch_setup_signal_frame(struct thread *t, struct sigaction *sa, int sig, int sig_mask);
int64 arch_restore_signal_frame(void);
void arch_check_syscall_restart(struct thread *t);
// for any inline overrides
#include <arch_thread.h>
@@ -95,6 +95,8 @@ struct iframe {
unsigned int edx;
unsigned int ecx;
unsigned int eax;
unsigned int orig_eax;
unsigned int orig_edx;
unsigned int vector;
unsigned int error_code;
unsigned int eip;
@@ -112,6 +114,10 @@ void i386_enter_uspace(addr entry, void *args, addr ustack_top);
void i386_set_kstack(addr kstack);
void i386_switch_stack_and_call(addr stack, void (*func)(void *), void *arg);
void i386_swap_pgdir(addr new_pgdir);
void i386_fsave(void *fpu_state);
void i386_fxsave(void *fpu_state);
void i386_frstor(void *fpu_state);
void i386_fxrstor(void *fpu_state);
void i386_fsave_swap(void *old_fpu_state, void *new_fpu_state);
void i386_fxsave_swap(void *old_fpu_state, void *new_fpu_state);
@@ -15,6 +15,9 @@ extern "C" {
void i386_push_iframe(struct thread *t, struct iframe *frame);
void i386_pop_iframe(struct thread *t);
void i386_return_from_signal();
void i386_end_return_from_signal();
static
inline struct thread *
@@ -18,6 +18,7 @@ struct arch_thread {
struct farcall interrupt_stack;
// used to track interrupts on this thread
struct iframe *current_iframe;
struct iframe *iframes[IFRAME_TRACE_DEPTH];
int iframe_ptr;