summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/confdefs.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-10-14 12:43:13 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-10-29 10:33:37 +0100
commit9318cfb050c0cd15f0bf5b600177b0682583cf18 (patch)
tree065daaebe2472e87191c881f8140e852b6cce4f0 /cpukit/include/rtems/confdefs.h
parentposix: Split posix_api_configuration_table (diff)
downloadrtems-9318cfb050c0cd15f0bf5b600177b0682583cf18.tar.bz2
posix: Provide named semaphores by default
Update #2514.
Diffstat (limited to 'cpukit/include/rtems/confdefs.h')
-rw-r--r--cpukit/include/rtems/confdefs.h77
1 files changed, 40 insertions, 37 deletions
diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index aa3d23e80c..a38cdec8c0 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -32,6 +32,10 @@
#include <rtems/score/percpu.h>
#include <rtems/score/userextimpl.h>
#include <rtems/score/wkspace.h>
+#include <rtems/posix/key.h>
+#include <rtems/posix/semaphore.h>
+
+#include <limits.h>
#ifdef CONFIGURE_DISABLE_BSP_SETTINGS
#undef BSP_DEFAULT_UNIFIED_WORK_AREAS
@@ -1932,6 +1936,10 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
#define CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS \
rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE)
#endif
+ #if !defined(CONFIGURE_MAXIMUM_POSIX_SEMAPHORES)
+ #define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES \
+ rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE)
+ #endif
#ifdef RTEMS_POSIX_API
#if !defined(CONFIGURE_MAXIMUM_POSIX_THREADS)
@@ -1952,10 +1960,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
#define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES \
rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE)
#endif
- #if !defined(CONFIGURE_MAXIMUM_POSIX_SEMAPHORES)
- #define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES \
- rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE)
- #endif
#if !defined(CONFIGURE_MAXIMUM_POSIX_SHMS)
#define CONFIGURE_MAXIMUM_POSIX_SHMS \
rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE)
@@ -2256,8 +2260,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
*/
/**@{*/
-#include <rtems/posix/key.h>
-
/**
* This configuration parameter specifies the maximum number of
* POSIX API keys.
@@ -2297,31 +2299,45 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
* sizeof(POSIX_Keys_Key_value_pair)))
/*
+ * Account for the object control structures plus the name
+ * of the object to be duplicated.
+ */
+#define _Configure_POSIX_Named_Object_RAM(_number, _size) \
+ (_Configure_Object_RAM(_number, _size) \
+ + _Configure_Max_Objects(_number) \
+ * _Configure_From_workspace(_POSIX_PATH_MAX + 1))
+
+/**
+ * This configuration parameter specifies the maximum number of
+ * POSIX API semaphores.
+ */
+#ifndef CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
+ #define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES 0
+#endif
+
+/*
+ * This macro is calculated to specify the memory required for
+ * POSIX API semaphores.
+ */
+#define _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES(_semaphores) \
+ _Configure_POSIX_Named_Object_RAM( \
+ _semaphores, sizeof(POSIX_Semaphore_Control) )
+
+/*
* The rest of the POSIX threads API features are only available when
* POSIX is enabled.
*/
#ifdef RTEMS_POSIX_API
#include <sys/types.h>
#include <signal.h>
- #include <limits.h>
#include <mqueue.h>
#include <rtems/posix/mqueue.h>
#include <rtems/posix/psignal.h>
#include <rtems/posix/pthread.h>
- #include <rtems/posix/semaphore.h>
#include <rtems/posix/shm.h>
#include <rtems/posix/threadsup.h>
#include <rtems/posix/timer.h>
- /*
- * Account for the object control structures plus the name
- * of the object to be duplicated.
- */
- #define _Configure_POSIX_Named_Object_RAM(_number, _size) \
- (_Configure_Object_RAM(_number, _size) \
- + _Configure_Max_Objects(_number) \
- * _Configure_From_workspace(_POSIX_PATH_MAX + 1))
-
/**
* This configuration parameter specifies the maximum number of
* POSIX API threads.
@@ -2378,22 +2394,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
_message_queues, sizeof(POSIX_Message_queue_Control) )
/**
- * This configuration parameter specifies the maximum number of
- * POSIX API semaphores.
- */
- #ifndef CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
- #define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES 0
- #endif
-
- /*
- * This macro is calculated to specify the memory required for
- * POSIX API semaphores.
- */
- #define _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES(_semaphores) \
- _Configure_POSIX_Named_Object_RAM( \
- _semaphores, sizeof(POSIX_Semaphore_Control) )
-
- /**
* Configure the maximum number of POSIX shared memory objects.
*/
#if !defined(CONFIGURE_MAXIMUM_POSIX_SHMS)
@@ -2559,8 +2559,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS) + \
_CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES( \
CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES) + \
- _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES( \
- CONFIGURE_MAXIMUM_POSIX_SEMAPHORES) + \
_CONFIGURE_MEMORY_FOR_POSIX_SHMS( \
CONFIGURE_MAXIMUM_POSIX_SHMS) + \
_CONFIGURE_MEMORY_FOR_POSIX_TIMERS(CONFIGURE_MAXIMUM_POSIX_TIMERS))
@@ -2721,6 +2719,8 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
_CONFIGURE_MEMORY_FOR_POSIX_KEYS( \
_CONFIGURE_POSIX_KEYS, \
CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS ) + \
+ _CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES( \
+ CONFIGURE_MAXIMUM_POSIX_SEMAPHORES) + \
_CONFIGURE_MEMORY_FOR_POSIX + \
_CONFIGURE_MEMORY_FOR_STATIC_EXTENSIONS + \
_CONFIGURE_MEMORY_FOR_MP + \
@@ -3219,12 +3219,14 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
/* POSIX API managers that are always enabled */
uint32_t POSIX_KEYS;
-#ifdef RTEMS_POSIX_API
/* POSIX API Pieces */
+#ifdef RTEMS_POSIX_API
uint32_t POSIX_TIMERS;
uint32_t POSIX_QUEUED_SIGNALS;
uint32_t POSIX_MESSAGE_QUEUES;
+#endif
uint32_t POSIX_SEMAPHORES;
+#ifdef RTEMS_POSIX_API
uint32_t POSIX_SHMS;
#endif
@@ -3272,7 +3274,9 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS ),
_CONFIGURE_MEMORY_FOR_POSIX_MESSAGE_QUEUES(
CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES ),
+#endif
_CONFIGURE_MEMORY_FOR_POSIX_SEMAPHORES( CONFIGURE_MAXIMUM_POSIX_SEMAPHORES ),
+#ifdef RTEMS_POSIX_API
_CONFIGURE_MEMORY_FOR_POSIX_SHMS( CONFIGURE_MAXIMUM_POSIX_SHMS ),
_CONFIGURE_MEMORY_FOR_POSIX_TIMERS( CONFIGURE_MAXIMUM_POSIX_TIMERS ),
#endif
@@ -3340,7 +3344,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
(CONFIGURE_MAXIMUM_POSIX_TIMERS != 0) || \
(CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS != 0) || \
(CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES != 0) || \
- (CONFIGURE_MAXIMUM_POSIX_SEMAPHORES != 0) || \
(CONFIGURE_MAXIMUM_POSIX_SHMS != 0) || \
defined(CONFIGURE_POSIX_INIT_THREAD_TABLE))
#error "CONFIGURATION ERROR: POSIX API support not configured!!"