summaryrefslogtreecommitdiffstats
path: root/cpukit/include
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-10-25 10:54:12 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-10-29 10:52:45 +0100
commit54f35888311f36baaefd90b1f31e4150e3db5465 (patch)
tree967692c3c0ae9e1570895b052a9f73441dc97256 /cpukit/include
parentposix: Hide POSIX_API_Control by default (diff)
downloadrtems-54f35888311f36baaefd90b1f31e4150e3db5465.tar.bz2
posix: Provide threads by default
Update #2514.
Diffstat (limited to 'cpukit/include')
-rw-r--r--cpukit/include/rtems/confdefs.h123
-rw-r--r--cpukit/include/rtems/monitor.h4
-rw-r--r--cpukit/include/rtems/posix/pthreadattrimpl.h2
-rw-r--r--cpukit/include/rtems/score/thread.h10
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 {