diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-10-25 10:54:12 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-10-29 10:52:45 +0100 |
commit | 54f35888311f36baaefd90b1f31e4150e3db5465 (patch) | |
tree | 967692c3c0ae9e1570895b052a9f73441dc97256 /cpukit/include | |
parent | posix: Hide POSIX_API_Control by default (diff) | |
download | rtems-54f35888311f36baaefd90b1f31e4150e3db5465.tar.bz2 |
posix: Provide threads by default
Update #2514.
Diffstat (limited to 'cpukit/include')
-rw-r--r-- | cpukit/include/rtems/confdefs.h | 123 | ||||
-rw-r--r-- | cpukit/include/rtems/monitor.h | 4 | ||||
-rw-r--r-- | cpukit/include/rtems/posix/pthreadattrimpl.h | 2 | ||||
-rw-r--r-- | cpukit/include/rtems/score/thread.h | 10 |
4 files changed, 59 insertions, 80 deletions
diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h index c2c6fe6507..64577b92d7 100644 --- a/cpukit/include/rtems/confdefs.h +++ b/cpukit/include/rtems/confdefs.h @@ -34,6 +34,7 @@ #include <rtems/score/wkspace.h> #include <rtems/posix/key.h> #include <rtems/posix/mqueue.h> +#include <rtems/posix/pthread.h> #include <rtems/posix/semaphore.h> #include <rtems/posix/shm.h> @@ -1950,12 +1951,12 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #define CONFIGURE_MAXIMUM_POSIX_SHMS \ rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE) #endif + #if !defined(CONFIGURE_MAXIMUM_POSIX_THREADS) + #define CONFIGURE_MAXIMUM_POSIX_THREADS \ + rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE) + #endif #ifdef RTEMS_POSIX_API - #if !defined(CONFIGURE_MAXIMUM_POSIX_THREADS) - #define CONFIGURE_MAXIMUM_POSIX_THREADS \ - rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE) - #endif #if !defined(CONFIGURE_MAXIMUM_POSIX_TIMERS) #define CONFIGURE_MAXIMUM_POSIX_TIMERS \ rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE) @@ -2300,6 +2301,14 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; _Configure_Max_Objects(_key_value_pairs) \ * sizeof(POSIX_Keys_Key_value_pair))) +/** + * This configuration parameter specifies the maximum number of + * POSIX API threads. + */ +#ifndef CONFIGURE_MAXIMUM_POSIX_THREADS + #define CONFIGURE_MAXIMUM_POSIX_THREADS 0 +#endif + /* * Account for the object control structures plus the name * of the object to be duplicated. @@ -2363,20 +2372,11 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #include <sys/types.h> #include <signal.h> #include <rtems/posix/psignal.h> - #include <rtems/posix/pthread.h> #include <rtems/posix/threadsup.h> #include <rtems/posix/timer.h> /** * This configuration parameter specifies the maximum number of - * POSIX API threads. - */ - #ifndef CONFIGURE_MAXIMUM_POSIX_THREADS - #define CONFIGURE_MAXIMUM_POSIX_THREADS 0 - #endif - - /** - * This configuration parameter specifies the maximum number of * POSIX API timers. */ #ifndef CONFIGURE_MAXIMUM_POSIX_TIMERS @@ -2405,42 +2405,36 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #define _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS(_queued_signals) \ _Configure_From_workspace( \ (_queued_signals) * (sizeof(POSIX_signals_Siginfo_node)) ) +#endif /* RTEMS_POSIX_API */ - #ifdef CONFIGURE_POSIX_INIT_THREAD_TABLE - #ifndef CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE - #ifndef CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT - #define CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT POSIX_Init - #endif +#ifdef CONFIGURE_POSIX_INIT_THREAD_TABLE + #ifndef CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE + #ifndef CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT + #define CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT POSIX_Init + #endif - #ifndef CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE - #define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \ - CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE - #endif + #ifndef CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE + #define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \ + CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE + #endif - #ifdef CONFIGURE_INIT - posix_initialization_threads_table POSIX_Initialization_threads[] = { - { CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT, - CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE } - }; - #endif + #ifdef CONFIGURE_INIT + posix_initialization_threads_table POSIX_Initialization_threads[] = { + { CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT, + CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE } + }; + #endif - #define CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME \ - POSIX_Initialization_threads + #define CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME \ + POSIX_Initialization_threads - #define CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE \ - RTEMS_ARRAY_SIZE(CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME) - #endif /* !CONFIGURE_POSIX_HAS_OWN_INIT_TASK_TABLE */ - #else /* !CONFIGURE_POSIX_INIT_THREAD_TABLE */ - #define CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME NULL - #define CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE 0 - #endif /* CONFIGURE_POSIX_INIT_THREAD_TABLE */ -#else - /** - * This configuration parameter specifies the maximum number of - * POSIX API threads. - */ - #define CONFIGURE_MAXIMUM_POSIX_THREADS 0 -#endif /* RTEMS_POSIX_API */ + #define CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE \ + RTEMS_ARRAY_SIZE(CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME) + #endif /* !CONFIGURE_POSIX_HAS_OWN_INIT_TASK_TABLE */ +#else /* !CONFIGURE_POSIX_INIT_THREAD_TABLE */ + #define CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME NULL + #define CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE 0 +#endif /* CONFIGURE_POSIX_INIT_THREAD_TABLE */ /** * This configuration parameter specifies the stack size of the @@ -2736,8 +2730,7 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; * This accounts for any extra memory required by the POSIX API * Initialization Thread. */ -#if defined(RTEMS_POSIX_API) && \ - (CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE > \ +#if (CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE > \ CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE) #define _CONFIGURE_INITIALIZATION_THREADS_STACKS_POSIX_PART \ (CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE - \ @@ -2999,13 +2992,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; const uint32_t _Configuration_POSIX_Maximum_timers = CONFIGURE_MAXIMUM_POSIX_TIMERS; #endif - - posix_initialization_threads_table * const - _Configuration_POSIX_Initialization_threads = - CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME; - - const size_t _Configuration_POSIX_Initialization_thread_count = - CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE; #endif const size_t _Configuration_POSIX_Minimum_stack_size = @@ -3098,16 +3084,21 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; * If the user has configured a set of POSIX Initialization Threads, * then we need to install the code that runs that loop. */ -#ifdef RTEMS_POSIX_API - #ifdef CONFIGURE_INIT - #if defined(CONFIGURE_POSIX_INIT_THREAD_TABLE) || \ - defined(CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE) - RTEMS_SYSINIT_ITEM( - _POSIX_Threads_Initialize_user_threads_body, - RTEMS_SYSINIT_POSIX_USER_THREADS, - RTEMS_SYSINIT_ORDER_MIDDLE - ); - #endif +#ifdef CONFIGURE_INIT + #if defined(CONFIGURE_POSIX_INIT_THREAD_TABLE) || \ + defined(CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE) + posix_initialization_threads_table * const + _Configuration_POSIX_Initialization_threads = + CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME; + + const size_t _Configuration_POSIX_Initialization_thread_count = + CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE; + + RTEMS_SYSINIT_ITEM( + _POSIX_Threads_Initialize_user_threads_body, + RTEMS_SYSINIT_POSIX_USER_THREADS, + RTEMS_SYSINIT_ORDER_MIDDLE + ); #endif #endif @@ -3323,10 +3314,8 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; * CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS are not in this list. */ #if !defined(RTEMS_POSIX_API) - #if ((CONFIGURE_MAXIMUM_POSIX_THREADS != 0) || \ - (CONFIGURE_MAXIMUM_POSIX_TIMERS != 0) || \ - (CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS != 0) || \ - defined(CONFIGURE_POSIX_INIT_THREAD_TABLE)) + #if ((CONFIGURE_MAXIMUM_POSIX_TIMERS != 0) || \ + (CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS != 0)) #error "CONFIGURATION ERROR: POSIX API support not configured!!" #endif #endif diff --git a/cpukit/include/rtems/monitor.h b/cpukit/include/rtems/monitor.h index 6ecd903c63..d973687396 100644 --- a/cpukit/include/rtems/monitor.h +++ b/cpukit/include/rtems/monitor.h @@ -43,9 +43,7 @@ typedef enum { RTEMS_MONITOR_OBJECT_INIT_TASK, RTEMS_MONITOR_OBJECT_MPCI, RTEMS_MONITOR_OBJECT_SYMBOL, - #if defined(RTEMS_POSIX_API) - RTEMS_MONITOR_OBJECT_PTHREAD, - #endif + RTEMS_MONITOR_OBJECT_PTHREAD } rtems_monitor_object_type_t; /* diff --git a/cpukit/include/rtems/posix/pthreadattrimpl.h b/cpukit/include/rtems/posix/pthreadattrimpl.h index cd4b3528a2..b5e02ec1c7 100644 --- a/cpukit/include/rtems/posix/pthreadattrimpl.h +++ b/cpukit/include/rtems/posix/pthreadattrimpl.h @@ -25,9 +25,7 @@ #include <rtems/score/basedefs.h> #include <rtems/score/assert.h> #include <rtems/posix/priorityimpl.h> -#if defined(RTEMS_POSIX_API) #include <rtems/posix/threadsup.h> -#endif #ifdef __cplusplus extern "C" { diff --git a/cpukit/include/rtems/score/thread.h b/cpukit/include/rtems/score/thread.h index 1e97083dd7..c665fccb69 100644 --- a/cpukit/include/rtems/score/thread.h +++ b/cpukit/include/rtems/score/thread.h @@ -69,9 +69,7 @@ extern "C" { */ /**@{*/ -#if defined(RTEMS_POSIX_API) - #define RTEMS_SCORE_THREAD_ENABLE_EXHAUST_TIMESLICE -#endif +#define RTEMS_SCORE_THREAD_ENABLE_EXHAUST_TIMESLICE /* * With the addition of the Constant Block Scheduler (CBS), @@ -79,9 +77,7 @@ extern "C" { */ #define RTEMS_SCORE_THREAD_ENABLE_SCHEDULER_CALLOUT -#if defined(RTEMS_POSIX_API) - #define RTEMS_SCORE_THREAD_ENABLE_USER_PROVIDED_STACK_VIA_API -#endif +#define RTEMS_SCORE_THREAD_ENABLE_USER_PROVIDED_STACK_VIA_API #if defined(RTEMS_DEBUG) #define RTEMS_SCORE_THREAD_ENABLE_RESOURCE_COUNT @@ -703,7 +699,6 @@ typedef struct { */ uint32_t pending_life_change_requests; -#if defined(RTEMS_POSIX_API) /** * @brief The thread exit value. * @@ -713,7 +708,6 @@ typedef struct { * - NULL. */ void *exit_value; -#endif } Thread_Life_control; typedef struct { |