[PATCH 05/14] posix: Split posix_api_configuration_table
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Oct 29 09:03:14 UTC 2018
Use separate configuration variables to avoid false dependencies.
Update #2514.
---
cpukit/Makefile.am | 6 +++
cpukit/include/rtems/confdefs.h | 95 +++++++++++++++++-----------------
cpukit/include/rtems/posix/config.h | 66 ++---------------------
cpukit/include/rtems/posix/mqueue.h | 2 +
cpukit/include/rtems/posix/psignal.h | 2 +
cpukit/include/rtems/posix/pthread.h | 3 +-
cpukit/include/rtems/posix/semaphore.h | 2 +
cpukit/include/rtems/posix/shm.h | 4 ++
cpukit/include/rtems/posix/timer.h | 2 +
cpukit/posix/src/mqueue.c | 3 +-
cpukit/posix/src/mqueueconfig.c | 34 ++++++++++++
cpukit/posix/src/psignal.c | 2 +-
cpukit/posix/src/psignalconfig.c | 34 ++++++++++++
cpukit/posix/src/psxsemaphore.c | 3 +-
cpukit/posix/src/psxsemaphoreconfig.c | 34 ++++++++++++
cpukit/posix/src/psxtimerconfig.c | 34 ++++++++++++
cpukit/posix/src/pthread.c | 3 +-
cpukit/posix/src/pthreadconfig.c | 34 ++++++++++++
cpukit/posix/src/pthreadinitthreads.c | 4 +-
cpukit/posix/src/ptimer.c | 3 +-
cpukit/posix/src/shm.c | 3 +-
cpukit/posix/src/shmconfig.c | 34 ++++++++++++
cpukit/score/src/wkspace.c | 3 +-
23 files changed, 284 insertions(+), 126 deletions(-)
create mode 100644 cpukit/posix/src/mqueueconfig.c
create mode 100644 cpukit/posix/src/psignalconfig.c
create mode 100644 cpukit/posix/src/psxsemaphoreconfig.c
create mode 100644 cpukit/posix/src/psxtimerconfig.c
create mode 100644 cpukit/posix/src/pthreadconfig.c
create mode 100644 cpukit/posix/src/shmconfig.c
diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am
index 5e1fdbd240..71afecfdc2 100644
--- a/cpukit/Makefile.am
+++ b/cpukit/Makefile.am
@@ -509,6 +509,7 @@ librtemscpu_a_SOURCES += posix/src/lio_listio.c
librtemscpu_a_SOURCES += posix/src/mlockall.c
librtemscpu_a_SOURCES += posix/src/mlock.c
librtemscpu_a_SOURCES += posix/src/mprotect.c
+librtemscpu_a_SOURCES += posix/src/mqueueconfig.c
librtemscpu_a_SOURCES += posix/src/msync.c
librtemscpu_a_SOURCES += posix/src/munlockall.c
librtemscpu_a_SOURCES += posix/src/munlock.c
@@ -545,11 +546,14 @@ librtemscpu_a_SOURCES += posix/src/prwlocktryrdlock.c
librtemscpu_a_SOURCES += posix/src/prwlocktrywrlock.c
librtemscpu_a_SOURCES += posix/src/prwlockunlock.c
librtemscpu_a_SOURCES += posix/src/prwlockwrlock.c
+librtemscpu_a_SOURCES += posix/src/psignalconfig.c
librtemscpu_a_SOURCES += posix/src/pspindestroy.c
librtemscpu_a_SOURCES += posix/src/pspininit.c
librtemscpu_a_SOURCES += posix/src/pspinlock.c
librtemscpu_a_SOURCES += posix/src/pspinunlock.c
librtemscpu_a_SOURCES += posix/src/psxpriorityisvalid.c
+librtemscpu_a_SOURCES += posix/src/psxsemaphoreconfig.c
+librtemscpu_a_SOURCES += posix/src/psxtimerconfig.c
librtemscpu_a_SOURCES += posix/src/psxtransschedparam.c
librtemscpu_a_SOURCES += posix/src/pthreadatfork.c
librtemscpu_a_SOURCES += posix/src/pthreadattrdefault.c
@@ -576,6 +580,7 @@ librtemscpu_a_SOURCES += posix/src/pthreadattrsetstackaddr.c
librtemscpu_a_SOURCES += posix/src/pthreadattrsetstack.c
librtemscpu_a_SOURCES += posix/src/pthreadattrsetstacksize.c
librtemscpu_a_SOURCES += posix/src/pthreadconcurrency.c
+librtemscpu_a_SOURCES += posix/src/pthreadconfig.c
librtemscpu_a_SOURCES += posix/src/pthreaddetach.c
librtemscpu_a_SOURCES += posix/src/pthreadequal.c
librtemscpu_a_SOURCES += posix/src/pthreadexit.c
@@ -609,6 +614,7 @@ librtemscpu_a_SOURCES += posix/src/semtrywait.c
librtemscpu_a_SOURCES += posix/src/semwait.c
librtemscpu_a_SOURCES += posix/src/setcancelstate.c
librtemscpu_a_SOURCES += posix/src/setcanceltype.c
+librtemscpu_a_SOURCES += posix/src/shmconfig.c
librtemscpu_a_SOURCES += posix/src/sigaddset.c
librtemscpu_a_SOURCES += posix/src/sigdelset.c
librtemscpu_a_SOURCES += posix/src/sigemptyset.c
diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index 8323674f12..aa3d23e80c 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -96,13 +96,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
extern rtems_multiprocessing_table Multiprocessing_configuration;
#endif
-#ifdef RTEMS_POSIX_API
- /**
- * This it the POSIX API configuration table.
- */
- extern posix_api_configuration_table Configuration_POSIX_API;
-#endif
-
/**
* This macro determines whether the RTEMS reentrancy support for
* the Newlib C Library is enabled.
@@ -2426,18 +2419,8 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
#define _CONFIGURE_MEMORY_FOR_POSIX_SHMS(_shms) \
_Configure_POSIX_Named_Object_RAM(_shms, sizeof(POSIX_Shm_Control) )
-
#ifdef CONFIGURE_POSIX_INIT_THREAD_TABLE
-
- #ifdef CONFIGURE_POSIX_HAS_OWN_INIT_THREAD_TABLE
-
- /*
- * The user is defining their own table information and setting the
- * appropriate variables for the POSIX Initialization Thread Table.
- */
-
- #else
-
+ #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
@@ -2449,35 +2432,28 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
#ifdef CONFIGURE_INIT
posix_initialization_threads_table POSIX_Initialization_threads[] = {
- { CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT, \
- CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE }
+ { CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT,
+ CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE }
};
#endif
#define CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME \
- POSIX_Initialization_threads
+ 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 */
-
+ 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
-
+ #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 */
+#endif /* RTEMS_POSIX_API */
/**
* This configuration parameter specifies the stack size of the
@@ -3006,25 +2982,48 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
CONFIGURE_INIT_TASK_TABLE
};
+ #if CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES > 0
+ const uint32_t _Configuration_POSIX_Maximum_message_queues =
+ CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES;
+ #endif
+
+ #if CONFIGURE_MAXIMUM_POSIX_SEMAPHORES > 0
+ const uint32_t _Configuration_POSIX_Maximum_named_semaphores =
+ CONFIGURE_MAXIMUM_POSIX_SEMAPHORES;
+ #endif
+
+ #if CONFIGURE_MAXIMUM_POSIX_SHMS > 0
+ const uint32_t _Configuration_POSIX_Maximum_shms =
+ CONFIGURE_MAXIMUM_POSIX_SHMS;
+ #endif
+
+ #if _CONFIGURE_POSIX_THREADS > 0
+ const uint32_t _Configuration_POSIX_Maximum_threads =
+ _CONFIGURE_POSIX_THREADS;
+ #endif
+
#ifdef RTEMS_POSIX_API
- /**
- * This is the POSIX API Configuration Table.
- */
- posix_api_configuration_table Configuration_POSIX_API = {
- _CONFIGURE_POSIX_THREADS,
- CONFIGURE_MAXIMUM_POSIX_TIMERS,
- CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS,
- CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES,
- CONFIGURE_MAXIMUM_POSIX_SEMAPHORES,
- CONFIGURE_MAXIMUM_POSIX_SHMS,
- CONFIGURE_POSIX_INIT_THREAD_TABLE_SIZE,
- CONFIGURE_POSIX_INIT_THREAD_TABLE_NAME
- };
+ #if CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS > 0
+ const uint32_t _Configuration_POSIX_Maximum_queued_signals =
+ CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS;
+ #endif
- const size_t _Configuration_POSIX_Minimum_stack_size =
- CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE;
+ #if CONFIGURE_MAXIMUM_POSIX_TIMERS > 0
+ 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 =
+ CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE;
+
/**
* This variable specifies the minimum stack size for tasks in an RTEMS
* application.
diff --git a/cpukit/include/rtems/posix/config.h b/cpukit/include/rtems/posix/config.h
index e90dc27011..e6b5870ac7 100644
--- a/cpukit/include/rtems/posix/config.h
+++ b/cpukit/include/rtems/posix/config.h
@@ -46,70 +46,10 @@ typedef struct {
int stack_size;
} posix_initialization_threads_table;
-/**
- * The following records define the POSIX Configuration Table.
- * The information contained in this table is required in all
- * RTEMS systems which include POSIX threads support, whether
- * single or multiprocessor. This table primarily defines the
- * following:
- *
- * + required number of each object type
- */
-typedef struct {
- /**
- * This field contains the maximum number of POSIX API
- * threads which are configured for this application.
- */
- uint32_t maximum_threads;
-
- /**
- * This field contains the maximum number of POSIX API
- * timers which are configured for this application.
- */
- uint32_t maximum_timers;
-
- /**
- * This field contains the maximum number of POSIX API
- * queued signals which are configured for this application.
- */
- uint32_t maximum_queued_signals;
-
- /**
- * This field contains the maximum number of POSIX API
- * message queues which are configured for this application.
- */
- uint32_t maximum_message_queues;
+extern posix_initialization_threads_table * const
+ _Configuration_POSIX_Initialization_threads;
- /**
- * This field contains the maximum number of POSIX API
- * semaphores which are configured for this application.
- */
- uint32_t maximum_semaphores;
-
- /**
- * Maximum configured number of POSIX Shared memory objects.
- */
- uint32_t maximum_shms;
-
- /**
- * This field contains the number of POSIX API Initialization
- * threads listed in @a User_initialization_thread_table.
- */
- uint32_t number_of_initialization_threads;
-
- /**
- * This field contains the list of POSIX API Initialization threads.
- */
- posix_initialization_threads_table *User_initialization_threads_table;
-} posix_api_configuration_table;
-
-/**
- * @brief POSIX API configuration table.
- *
- * This is the POSIX API Configuration Table expected to be generated
- * by confdefs.h.
- */
-extern posix_api_configuration_table Configuration_POSIX_API;
+extern const size_t _Configuration_POSIX_Initialization_thread_count;
/**@}*/
#ifdef __cplusplus
diff --git a/cpukit/include/rtems/posix/mqueue.h b/cpukit/include/rtems/posix/mqueue.h
index cdf94514af..6211c68783 100644
--- a/cpukit/include/rtems/posix/mqueue.h
+++ b/cpukit/include/rtems/posix/mqueue.h
@@ -61,6 +61,8 @@ typedef struct {
int oflag;
} POSIX_Message_queue_Control;
+extern const uint32_t _Configuration_POSIX_Maximum_message_queues;
+
/** @} */
#ifdef __cplusplus
diff --git a/cpukit/include/rtems/posix/psignal.h b/cpukit/include/rtems/posix/psignal.h
index ed98442e32..52a9ec6caf 100644
--- a/cpukit/include/rtems/posix/psignal.h
+++ b/cpukit/include/rtems/posix/psignal.h
@@ -31,5 +31,7 @@ typedef struct {
siginfo_t Info;
} POSIX_signals_Siginfo_node;
+extern const uint32_t _Configuration_POSIX_Maximum_queued_signals;
+
#endif
/* end of file */
diff --git a/cpukit/include/rtems/posix/pthread.h b/cpukit/include/rtems/posix/pthread.h
index bf46253776..25bf40ef27 100644
--- a/cpukit/include/rtems/posix/pthread.h
+++ b/cpukit/include/rtems/posix/pthread.h
@@ -19,7 +19,6 @@
#ifndef _RTEMS_POSIX_PTHREAD_H
#define _RTEMS_POSIX_PTHREAD_H
-#include <rtems/posix/config.h>
#include <rtems/posix/threadsup.h>
#include <rtems/score/thread.h>
@@ -39,6 +38,8 @@ extern "C" {
extern const size_t _Configuration_POSIX_Minimum_stack_size;
+extern const uint32_t _Configuration_POSIX_Maximum_threads;
+
/**
* @brief POSIX threads initialize user threads body.
*
diff --git a/cpukit/include/rtems/posix/semaphore.h b/cpukit/include/rtems/posix/semaphore.h
index 9133db22be..734d8bb84b 100644
--- a/cpukit/include/rtems/posix/semaphore.h
+++ b/cpukit/include/rtems/posix/semaphore.h
@@ -46,6 +46,8 @@ typedef struct {
uint32_t open_count;
} POSIX_Semaphore_Control;
+extern const uint32_t _Configuration_POSIX_Maximum_named_semaphores;
+
/** @} */
#ifdef __cplusplus
diff --git a/cpukit/include/rtems/posix/shm.h b/cpukit/include/rtems/posix/shm.h
index d2b6036493..310af6692b 100644
--- a/cpukit/include/rtems/posix/shm.h
+++ b/cpukit/include/rtems/posix/shm.h
@@ -18,6 +18,8 @@
#include <rtems/score/object.h>
#include <rtems/score/threadq.h>
+#include <sys/types.h>
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -124,6 +126,8 @@ typedef struct {
time_t ctime;
} POSIX_Shm_Control;
+extern const uint32_t _Configuration_POSIX_Maximum_shms;
+
/**
* @brief object_create operation for shm objects stored in RTEMS Workspace.
*/
diff --git a/cpukit/include/rtems/posix/timer.h b/cpukit/include/rtems/posix/timer.h
index 79fe093219..52732af991 100644
--- a/cpukit/include/rtems/posix/timer.h
+++ b/cpukit/include/rtems/posix/timer.h
@@ -50,6 +50,8 @@ typedef struct {
struct timespec time; /* Time at which the timer was started */
} POSIX_Timer_Control;
+extern const uint32_t _Configuration_POSIX_Maximum_timers;
+
/** @} */
#ifdef __cplusplus
diff --git a/cpukit/posix/src/mqueue.c b/cpukit/posix/src/mqueue.c
index 2ad90c1e79..e2c9b5f2b2 100644
--- a/cpukit/posix/src/mqueue.c
+++ b/cpukit/posix/src/mqueue.c
@@ -51,8 +51,7 @@ static void _POSIX_Message_queue_Manager_initialization(void)
&_POSIX_Message_queue_Information, /* object information table */
OBJECTS_POSIX_API, /* object API */
OBJECTS_POSIX_MESSAGE_QUEUES, /* object class */
- Configuration_POSIX_API.maximum_message_queues,
- /* maximum objects of this class */
+ _Configuration_POSIX_Maximum_message_queues,
sizeof( POSIX_Message_queue_Control ),
/* size of this object's control block */
true, /* true if names for this object are strings */
diff --git a/cpukit/posix/src/mqueueconfig.c b/cpukit/posix/src/mqueueconfig.c
new file mode 100644
index 0000000000..921fb73772
--- /dev/null
+++ b/cpukit/posix/src/mqueueconfig.c
@@ -0,0 +1,34 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright 2018, embedded brains GmbH <rtems at embedded-brains.de>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/posix/mqueue.h>
+
+const uint32_t _Configuration_POSIX_Maximum_message_queues;
diff --git a/cpukit/posix/src/psignal.c b/cpukit/posix/src/psignal.c
index 3e887a8ed0..0d61a1d737 100644
--- a/cpukit/posix/src/psignal.c
+++ b/cpukit/posix/src/psignal.c
@@ -103,7 +103,7 @@ static void _POSIX_signals_Manager_Initialization(void)
uint32_t signo;
uint32_t maximum_queued_signals;
- maximum_queued_signals = Configuration_POSIX_API.maximum_queued_signals;
+ maximum_queued_signals = _Configuration_POSIX_Maximum_queued_signals;
memcpy(
_POSIX_signals_Vectors,
diff --git a/cpukit/posix/src/psignalconfig.c b/cpukit/posix/src/psignalconfig.c
new file mode 100644
index 0000000000..0840d94b16
--- /dev/null
+++ b/cpukit/posix/src/psignalconfig.c
@@ -0,0 +1,34 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright 2018, embedded brains GmbH <rtems at embedded-brains.de>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/posix/psignal.h>
+
+const uint32_t _Configuration_POSIX_Maximum_queued_signals;
diff --git a/cpukit/posix/src/psxsemaphore.c b/cpukit/posix/src/psxsemaphore.c
index a82ad17966..9e259b8ea3 100644
--- a/cpukit/posix/src/psxsemaphore.c
+++ b/cpukit/posix/src/psxsemaphore.c
@@ -42,8 +42,7 @@ static void _POSIX_Semaphore_Manager_initialization(void)
&_POSIX_Semaphore_Information, /* object information table */
OBJECTS_POSIX_API, /* object API */
OBJECTS_POSIX_SEMAPHORES, /* object class */
- Configuration_POSIX_API.maximum_semaphores,
- /* maximum objects of this class */
+ _Configuration_POSIX_Maximum_named_semaphores,
sizeof( POSIX_Semaphore_Control ),
/* size of this object's control block */
true, /* true if names for this object are strings */
diff --git a/cpukit/posix/src/psxsemaphoreconfig.c b/cpukit/posix/src/psxsemaphoreconfig.c
new file mode 100644
index 0000000000..7e29742537
--- /dev/null
+++ b/cpukit/posix/src/psxsemaphoreconfig.c
@@ -0,0 +1,34 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright 2018, embedded brains GmbH <rtems at embedded-brains.de>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/posix/semaphore.h>
+
+const uint32_t _Configuration_POSIX_Maximum_named_semaphores;
diff --git a/cpukit/posix/src/psxtimerconfig.c b/cpukit/posix/src/psxtimerconfig.c
new file mode 100644
index 0000000000..2781a8cec5
--- /dev/null
+++ b/cpukit/posix/src/psxtimerconfig.c
@@ -0,0 +1,34 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright 2018, embedded brains GmbH <rtems at embedded-brains.de>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/posix/timer.h>
+
+const uint32_t _Configuration_POSIX_Maximum_timers;
diff --git a/cpukit/posix/src/pthread.c b/cpukit/posix/src/pthread.c
index 7d1674694f..da31252063 100644
--- a/cpukit/posix/src/pthread.c
+++ b/cpukit/posix/src/pthread.c
@@ -181,8 +181,7 @@ static void _POSIX_Threads_Manager_initialization(void)
&_POSIX_Threads_Information, /* object information table */
OBJECTS_POSIX_API, /* object API */
OBJECTS_POSIX_THREADS, /* object class */
- Configuration_POSIX_API.maximum_threads
- /* maximum objects of this class */
+ _Configuration_POSIX_Maximum_threads
);
/*
diff --git a/cpukit/posix/src/pthreadconfig.c b/cpukit/posix/src/pthreadconfig.c
new file mode 100644
index 0000000000..75683c3c6e
--- /dev/null
+++ b/cpukit/posix/src/pthreadconfig.c
@@ -0,0 +1,34 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright 2018, embedded brains GmbH <rtems at embedded-brains.de>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/posix/pthread.h>
+
+const uint32_t _Configuration_POSIX_Maximum_threads;
diff --git a/cpukit/posix/src/pthreadinitthreads.c b/cpukit/posix/src/pthreadinitthreads.c
index 15c6b9fbf9..97ae5df70a 100644
--- a/cpukit/posix/src/pthreadinitthreads.c
+++ b/cpukit/posix/src/pthreadinitthreads.c
@@ -41,8 +41,8 @@ void _POSIX_Threads_Initialize_user_threads_body(void)
pthread_t thread_id;
pthread_attr_t attr;
- user_threads = Configuration_POSIX_API.User_initialization_threads_table;
- maximum = Configuration_POSIX_API.number_of_initialization_threads;
+ user_threads = _Configuration_POSIX_Initialization_threads;
+ maximum = _Configuration_POSIX_Initialization_thread_count;
if ( !user_threads )
return;
diff --git a/cpukit/posix/src/ptimer.c b/cpukit/posix/src/ptimer.c
index e938d50058..9472cd49e5 100644
--- a/cpukit/posix/src/ptimer.c
+++ b/cpukit/posix/src/ptimer.c
@@ -62,8 +62,7 @@ static void _POSIX_Timer_Manager_initialization(void)
&_POSIX_Timer_Information, /* object information table */
OBJECTS_POSIX_API, /* object API */
OBJECTS_POSIX_TIMERS, /* object class */
- Configuration_POSIX_API.maximum_timers,
- /* maximum objects of this class */
+ _Configuration_POSIX_Maximum_timers,
sizeof( POSIX_Timer_Control ),
/* size of this object's control block */
false, /* true if names for this object are strings */
diff --git a/cpukit/posix/src/shm.c b/cpukit/posix/src/shm.c
index d76b5b8569..131aa1384b 100644
--- a/cpukit/posix/src/shm.c
+++ b/cpukit/posix/src/shm.c
@@ -32,8 +32,7 @@ static void _POSIX_Shm_Manager_initialization( void )
&_POSIX_Shm_Information, /* object information table */
OBJECTS_POSIX_API, /* object API */
OBJECTS_POSIX_SHMS, /* object class */
- Configuration_POSIX_API.maximum_shms,
- /* maximum objects of this class */
+ _Configuration_POSIX_Maximum_shms,
sizeof( POSIX_Shm_Control ),
/* size of this object's control block */
true, /* true if names for this object are strings */
diff --git a/cpukit/posix/src/shmconfig.c b/cpukit/posix/src/shmconfig.c
new file mode 100644
index 0000000000..e03f4e8be5
--- /dev/null
+++ b/cpukit/posix/src/shmconfig.c
@@ -0,0 +1,34 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright 2018, embedded brains GmbH <rtems at embedded-brains.de>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/posix/shm.h>
+
+const uint32_t _Configuration_POSIX_Maximum_shms;
diff --git a/cpukit/score/src/wkspace.c b/cpukit/score/src/wkspace.c
index ea2ab84849..2657ba0dda 100644
--- a/cpukit/score/src/wkspace.c
+++ b/cpukit/score/src/wkspace.c
@@ -25,6 +25,7 @@
#include <rtems/score/percpudata.h>
#include <rtems/score/threadimpl.h>
#include <rtems/score/tls.h>
+#include <rtems/posix/pthread.h>
#include <rtems/config.h>
#include <string.h>
@@ -54,7 +55,7 @@ static uint32_t _Workspace_Get_maximum_thread_count( void )
#if defined(RTEMS_POSIX_API)
thread_count += rtems_resource_maximum_per_allocation(
- Configuration_POSIX_API.maximum_threads
+ _Configuration_POSIX_Maximum_threads
);
#endif
--
2.16.4
More information about the devel
mailing list