From 16775a55354508f1aa434c1d347e6921006b49a2 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 7 May 1999 16:36:29 +0000 Subject: Patch from Jiri Gaisler to allow stacksize of POSIX Init thread to be user configured. --- c/src/exec/posix/include/rtems/posix/config.h | 1 + c/src/exec/posix/src/pthread.c | 2 +- c/src/exec/sapi/include/confdefs.h | 10 ++++++++-- 3 files changed, 10 insertions(+), 3 deletions(-) (limited to 'c') diff --git a/c/src/exec/posix/include/rtems/posix/config.h b/c/src/exec/posix/include/rtems/posix/config.h index c64250579c..2edb8a1909 100644 --- a/c/src/exec/posix/include/rtems/posix/config.h +++ b/c/src/exec/posix/include/rtems/posix/config.h @@ -39,6 +39,7 @@ extern "C" { typedef struct { void *(*thread_entry)(void *); + int stack_size; } posix_initialization_threads_table; typedef struct { diff --git a/c/src/exec/posix/src/pthread.c b/c/src/exec/posix/src/pthread.c index f97b3a805d..1a238b006a 100644 --- a/c/src/exec/posix/src/pthread.c +++ b/c/src/exec/posix/src/pthread.c @@ -260,7 +260,7 @@ void _POSIX_Threads_Initialize_user_threads( void ) status = pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED ); assert( !status ); - status = pthread_attr_setstacksize( &attr, PTHREAD_MINIMUM_STACK_SIZE * 2 ); + status = pthread_attr_setstacksize( &attr, user_threads[ index ].stack_size); assert( !status ); status = pthread_create( diff --git a/c/src/exec/sapi/include/confdefs.h b/c/src/exec/sapi/include/confdefs.h index 0cec9c8f15..dac5482905 100644 --- a/c/src/exec/sapi/include/confdefs.h +++ b/c/src/exec/sapi/include/confdefs.h @@ -361,6 +361,10 @@ rtems_extensions_table Configuration_Initial_Extensions[] = { #define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS 0 #endif +#ifndef CONFIGURE_POSIX_INIT_TASK_STACK_SIZE +#define CONFIGURE_POSIX_INIT_TASK_STACK_SIZE (RTEMS_MINIMUM_STACK_SIZE * 2) +#endif + #ifdef CONFIGURE_POSIX_INIT_THREAD_TABLE #ifdef CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE @@ -378,7 +382,8 @@ rtems_extensions_table Configuration_Initial_Extensions[] = { #ifdef CONFIGURE_INIT posix_initialization_threads_table POSIX_Initialization_threads[] = { - { CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT } + { CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT, \ + CONFIGURE_POSIX_INIT_TASK_STACK_SIZE } }; #endif @@ -433,7 +438,8 @@ posix_initialization_threads_table POSIX_Initialization_threads[] = { CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES ) + \ CONFIGURE_MEMORY_FOR_POSIX_KEYS( CONFIGURE_MAXIMUM_POSIX_KEYS ) + \ CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS( \ - CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS ) \ + CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS ) + \ + (CONFIGURE_POSIX_INIT_TASK_STACK_SIZE) \ ) -- cgit v1.2.3