diff options
author | dt <dt@FreeBSD.org> | 1999-07-12 16:09:30 +0000 |
---|---|---|
committer | dt <dt@FreeBSD.org> | 1999-07-12 16:09:30 +0000 |
commit | 13bfe4204bba5f542f868528020a12496d524a3f (patch) | |
tree | d93eeac3e23275567707177f5b5188c36d7dcf50 /lib/libkse/thread | |
parent | cd75312f86da483a17d454b8ff3d2f46ee41f057 (diff) | |
download | FreeBSD-src-13bfe4204bba5f542f868528020a12496d524a3f.zip FreeBSD-src-13bfe4204bba5f542f868528020a12496d524a3f.tar.gz |
Use USRSTACK (defined in <machine/vmparam.h>) to get top of the initial stack.
PTHREAD_STACK_TOP was wrong for all supported architectures.
Diffstat (limited to 'lib/libkse/thread')
-rw-r--r-- | lib/libkse/thread/thr_init.c | 7 | ||||
-rw-r--r-- | lib/libkse/thread/thr_private.h | 15 |
2 files changed, 6 insertions, 16 deletions
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 <sys/sysctl.h> #include <sys/time.h> #include <sys/ttycom.h> -#include <sys/types.h> +#include <sys/param.h> +#include <sys/user.h> #include <sys/mman.h> #ifdef _THREAD_SAFE #include <machine/reg.h> @@ -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 ; |