summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-05-07 16:36:29 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-05-07 16:36:29 +0000
commit16775a55354508f1aa434c1d347e6921006b49a2 (patch)
tree8d3cb2dd543b83aa3080d6e941c0b6fd688f91cf /cpukit
parentAdded rules to handle alternate suffixes for C++ files. (diff)
downloadrtems-16775a55354508f1aa434c1d347e6921006b49a2.tar.bz2
Patch from Jiri Gaisler <jgais@ws.estec.esa.nl> to allow stacksize
of POSIX Init thread to be user configured.
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/posix/include/rtems/posix/config.h1
-rw-r--r--cpukit/posix/src/pthread.c2
-rw-r--r--cpukit/sapi/include/confdefs.h10
3 files changed, 10 insertions, 3 deletions
diff --git a/cpukit/posix/include/rtems/posix/config.h b/cpukit/posix/include/rtems/posix/config.h
index c64250579c..2edb8a1909 100644
--- a/cpukit/posix/include/rtems/posix/config.h
+++ b/cpukit/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/cpukit/posix/src/pthread.c b/cpukit/posix/src/pthread.c
index f97b3a805d..1a238b006a 100644
--- a/cpukit/posix/src/pthread.c
+++ b/cpukit/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/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h
index 0cec9c8f15..dac5482905 100644
--- a/cpukit/sapi/include/confdefs.h
+++ b/cpukit/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) \
)