summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-09-28 11:12:38 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-11-09 15:47:11 +0100
commitecd513733ff83c3b4452d934666c0b1251db2096 (patch)
treefb0c97d82d3f76b6078007051640f03ad78617f9
parentbc97bd3b117df178eb205d30057025ee69764b54 (diff)
FIXME split getconfigmax.c
-rw-r--r--cpukit/sapi/src/getconfigmax.c14
-rw-r--r--cpukit/sapi/src/getconfigmax2.c64
-rw-r--r--spec/build/cpukit/librtemscpu.yml1
-rw-r--r--spec/build/cpukit/objextra.yml2
4 files changed, 66 insertions, 15 deletions
diff --git a/cpukit/sapi/src/getconfigmax.c b/cpukit/sapi/src/getconfigmax.c
index 8e3cce67f1..ba4db251f0 100644
--- a/cpukit/sapi/src/getconfigmax.c
+++ b/cpukit/sapi/src/getconfigmax.c
@@ -11,8 +11,6 @@
* rtems_configuration_get_maximum_message_queues(),
* rtems_configuration_get_maximum_partitions(),
* rtems_configuration_get_maximum_periods(),
- * rtems_configuration_get_maximum_ports(),
- * rtems_configuration_get_maximum_regions(),
* rtems_configuration_get_maximum_semaphores(),
* rtems_configuration_get_maximum_tasks(), and
* rtems_configuration_get_maximum_timers().
@@ -50,11 +48,9 @@
#include <rtems/config.h>
#include <rtems/extensionimpl.h>
#include <rtems/rtems/barrierimpl.h>
-#include <rtems/rtems/dpmemimpl.h>
#include <rtems/rtems/messageimpl.h>
#include <rtems/rtems/partimpl.h>
#include <rtems/rtems/ratemonimpl.h>
-#include <rtems/rtems/regionimpl.h>
#include <rtems/rtems/semimpl.h>
#include <rtems/rtems/tasksimpl.h>
#include <rtems/rtems/timerimpl.h>
@@ -94,16 +90,6 @@ uint32_t rtems_configuration_get_maximum_periods( void )
return get_config_max( &_Rate_monotonic_Information );
}
-uint32_t rtems_configuration_get_maximum_ports( void )
-{
- return get_config_max( &_Dual_ported_memory_Information );
-}
-
-uint32_t rtems_configuration_get_maximum_regions( void )
-{
- return get_config_max( &_Region_Information );
-}
-
uint32_t rtems_configuration_get_maximum_semaphores( void )
{
return get_config_max( &_Semaphore_Information );
diff --git a/cpukit/sapi/src/getconfigmax2.c b/cpukit/sapi/src/getconfigmax2.c
new file mode 100644
index 0000000000..24ce5af3ee
--- /dev/null
+++ b/cpukit/sapi/src/getconfigmax2.c
@@ -0,0 +1,64 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
+/**
+ * @file
+ *
+ * @ingroup RTEMSImplClassic
+ *
+ * @brief This source file contains the implementation of
+ * rtems_configuration_get_maximum_ports() and
+ * rtems_configuration_get_maximum_regions().
+ */
+
+/*
+ * Copyright (C) 2018 embedded brains GmbH
+ *
+ * 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/config.h>
+#include <rtems/extensionimpl.h>
+#include <rtems/rtems/dpmemimpl.h>
+#include <rtems/rtems/regionimpl.h>
+
+static uint32_t get_config_max( const Objects_Information *info )
+{
+ if ( _Objects_Is_auto_extend( info ) ) {
+ return info->objects_per_block | RTEMS_UNLIMITED_OBJECTS;
+ }
+
+ return _Objects_Get_maximum_index( info );
+}
+
+uint32_t rtems_configuration_get_maximum_ports( void )
+{
+ return get_config_max( &_Dual_ported_memory_Information );
+}
+
+uint32_t rtems_configuration_get_maximum_regions( void )
+{
+ return get_config_max( &_Region_Information );
+}
diff --git a/spec/build/cpukit/librtemscpu.yml b/spec/build/cpukit/librtemscpu.yml
index 04db64f9cb..a2c72137ae 100644
--- a/spec/build/cpukit/librtemscpu.yml
+++ b/spec/build/cpukit/librtemscpu.yml
@@ -370,6 +370,7 @@ source:
- cpukit/sapi/src/extensioncreate.c
- cpukit/sapi/src/extensiondelete.c
- cpukit/sapi/src/extensionident.c
+- cpukit/sapi/src/getconfigmax.c
- cpukit/score/src/allocatormutex.c
- cpukit/score/src/apimutexisowner.c
- cpukit/score/src/apimutexlock.c
diff --git a/spec/build/cpukit/objextra.yml b/spec/build/cpukit/objextra.yml
index 0fb23fbf7b..265bf9ee69 100644
--- a/spec/build/cpukit/objextra.yml
+++ b/spec/build/cpukit/objextra.yml
@@ -1018,7 +1018,7 @@ source:
- cpukit/sapi/src/exshutdown.c
- cpukit/sapi/src/fatal.c
- cpukit/sapi/src/fatalsrctext.c
-- cpukit/sapi/src/getconfigmax.c
+- cpukit/sapi/src/getconfigmax2.c
- cpukit/sapi/src/getcopyrightnotice.c
- cpukit/sapi/src/getversionstring.c
- cpukit/sapi/src/interrtext.c