From 13bfe4204bba5f542f868528020a12496d524a3f Mon Sep 17 00:00:00 2001 From: dt Date: Mon, 12 Jul 1999 16:09:30 +0000 Subject: Use USRSTACK (defined in ) to get top of the initial stack. PTHREAD_STACK_TOP was wrong for all supported architectures. --- lib/libkse/thread/thr_init.c | 7 ++++--- lib/libkse/thread/thr_private.h | 15 ++------------- 2 files changed, 6 insertions(+), 16 deletions(-) (limited to 'lib/libkse/thread') diff --git a/lib/libkse/thread/thr_init.c b/lib/libkse/thread/thr_init.c index f5e2c45..90a91cc 100644 --- a/lib/libkse/thread/thr_init.c +++ b/lib/libkse/thread/thr_init.c @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: uthread_init.c,v 1.14 1999/07/06 00:25:38 jasone Exp $ + * $Id: uthread_init.c,v 1.15 1999/07/11 05:56:37 jasone Exp $ */ /* Allocate space for global thread variables here: */ @@ -45,7 +45,8 @@ #include #include #include -#include +#include +#include #include #ifdef _THREAD_SAFE #include @@ -184,7 +185,7 @@ _thread_init(void) SLIST_INIT(&_stackq); /* Create the red zone for the main stack. */ - if (mmap((void *) PTHREAD_STACK_TOP + if (mmap((void *) USRSTACK - PTHREAD_STACK_INITIAL, PTHREAD_STACK_GUARD, 0, MAP_ANON, -1, 0) == MAP_FAILED) { diff --git a/lib/libkse/thread/thr_private.h b/lib/libkse/thread/thr_private.h index c72adac3..d6a6eb1 100644 --- a/lib/libkse/thread/thr_private.h +++ b/lib/libkse/thread/thr_private.h @@ -31,7 +31,7 @@ * * Private thread definitions for the uthread kernel. * - * $Id: pthread_private.h,v 1.22 1999/07/06 00:25:35 jasone Exp $ + * $Id: pthread_private.h,v 1.23 1999/07/11 05:56:35 jasone Exp $ */ #ifndef _PTHREAD_PRIVATE_H @@ -344,17 +344,6 @@ struct pthread_attr { */ #define PTHREAD_STACK_INITIAL 0x100000 /* Address immediately beyond the beginning of the initial thread stack. */ -#if defined(__FreeBSD__) -# if defined(__i386__) -# define PTHREAD_STACK_TOP 0xbfbde000 -# elif defined(__alpha__) -# define PTHREAD_STACK_TOP 0x160022000 -# else -# error "Don't recognize this architecture!" -# endif -#else -# error "Don't recognize this operating system!" -#endif #define PTHREAD_DEFAULT_PRIORITY 64 #define PTHREAD_MAX_PRIORITY 126 #define PTHREAD_MIN_PRIORITY 0 @@ -903,7 +892,7 @@ SCLASS SLIST_HEAD(, stack) _stackq; SCLASS void * _next_stack #ifdef GLOBAL_PTHREAD_PRIVATE /* main stack top - main stack size - stack size - (red zone + main stack red zone) */ -= (void *) PTHREAD_STACK_TOP - PTHREAD_STACK_INITIAL - PTHREAD_STACK_DEFAULT - (2 * PTHREAD_STACK_GUARD) += (void *) USRSTACK - PTHREAD_STACK_INITIAL - PTHREAD_STACK_DEFAULT - (2 * PTHREAD_STACK_GUARD) #endif ; -- cgit v1.1