From a8673f45bf0f24d53dafaedc11f437806f0401cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 12 Oct 2004 03:57:31 +0000 Subject: [PATCH] Added prototypes for arch_{store|restore}_fork_frame(). Removed broken arch_thread::current_iframe field. Introduced new arch_fork_arg structure. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9295 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/kernel/arch/thread.h | 7 +++++-- headers/private/kernel/arch/x86/thread_struct.h | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/headers/private/kernel/arch/thread.h b/headers/private/kernel/arch/thread.h index ca7dc15a3a..7989323afc 100644 --- a/headers/private/kernel/arch/thread.h +++ b/headers/private/kernel/arch/thread.h @@ -1,6 +1,6 @@ /* -** Copyright 2002-2004, The OpenBeOS Team. All rights reserved. -** Distributed under the terms of the OpenBeOS License. +** Copyright 2002-2004, The Haiku Team. All rights reserved. +** Distributed under the terms of the Haiku License. ** ** Copyright 2001-2002, Travis Geiselbrecht. All rights reserved. ** Distributed under the terms of the NewOS License. @@ -35,6 +35,9 @@ status_t arch_setup_signal_frame(struct thread *t, struct sigaction *sa, int sig int64 arch_restore_signal_frame(void); void arch_check_syscall_restart(struct thread *t); +void arch_store_fork_frame(struct arch_fork_arg *arg); +void arch_restore_fork_frame(struct arch_fork_arg *arg); + // for any inline overrides #include diff --git a/headers/private/kernel/arch/x86/thread_struct.h b/headers/private/kernel/arch/x86/thread_struct.h index 93973c8518..cfe1809167 100755 --- a/headers/private/kernel/arch/x86/thread_struct.h +++ b/headers/private/kernel/arch/x86/thread_struct.h @@ -1,13 +1,20 @@ /* +** Copyright 2002-2004, The Haiku Team. All rights reserved. +** Distributed under the terms of the Haiku License. +** ** Copyright 2001-2002, Travis Geiselbrecht. All rights reserved. ** Distributed under the terms of the NewOS License. */ #ifndef _KERNEL_ARCH_x86_THREAD_STRUCT_H #define _KERNEL_ARCH_x86_THREAD_STRUCT_H + +#include + + struct farcall { - unsigned int *esp; - unsigned int *ss; + uint32 *esp; + uint32 *ss; }; #define IFRAME_TRACE_DEPTH 4 @@ -18,7 +25,6 @@ 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; @@ -30,4 +36,8 @@ struct arch_team { // nothing here }; +struct arch_fork_arg { + struct iframe iframe; +}; + #endif /* _KERNEL_ARCH_x86_THREAD_STRUCT_H */