[PATCH] rtems: rtems_scheduler_get_processor_maximum()
Sebastian Huber
sebastian.huber at embedded-brains.de
Tue Mar 3 13:05:55 UTC 2020
In uniprocessor configurations, use compile-time constants for
rtems_scheduler_get_processor_maximum() and
rtems_scheduler_get_processor(). This helps compilers and static
analyzers to deduce that some loops bodies are only executed once and
some conditional statements have a fixed outcome.
In SMP configurations, directly provide the internal implementation for
performance reasons.
---
cpukit/Makefile.am | 2 --
cpukit/include/rtems/rtems/tasks.h | 5 +++--
cpukit/rtems/src/getcurrentprocessor.c | 25 -------------------------
cpukit/rtems/src/getprocessorcount.c | 25 -------------------------
4 files changed, 3 insertions(+), 54 deletions(-)
delete mode 100644 cpukit/rtems/src/getcurrentprocessor.c
delete mode 100644 cpukit/rtems/src/getprocessorcount.c
diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am
index 298580e20d..783a9bbf42 100644
--- a/cpukit/Makefile.am
+++ b/cpukit/Makefile.am
@@ -700,8 +700,6 @@ librtemscpu_a_SOURCES += rtems/src/eventseize.c
librtemscpu_a_SOURCES += rtems/src/eventsend.c
librtemscpu_a_SOURCES += rtems/src/eventsurrender.c
librtemscpu_a_SOURCES += rtems/src/getapiconfig.c
-librtemscpu_a_SOURCES += rtems/src/getcurrentprocessor.c
-librtemscpu_a_SOURCES += rtems/src/getprocessorcount.c
librtemscpu_a_SOURCES += rtems/src/intrbody.c
librtemscpu_a_SOURCES += rtems/src/intrcatch.c
librtemscpu_a_SOURCES += rtems/src/modes.c
diff --git a/cpukit/include/rtems/rtems/tasks.h b/cpukit/include/rtems/rtems/tasks.h
index 3519bbf795..a4af236b6b 100644
--- a/cpukit/include/rtems/rtems/tasks.h
+++ b/cpukit/include/rtems/rtems/tasks.h
@@ -21,6 +21,7 @@
#include <rtems/rtems/attr.h>
#include <rtems/rtems/status.h>
#include <rtems/rtems/types.h>
+#include <rtems/score/smp.h>
#ifdef __cplusplus
extern "C" {
@@ -600,7 +601,7 @@ rtems_status_code rtems_scheduler_ident_by_processor_set(
*
* @return The index of the current processor.
*/
-uint32_t rtems_scheduler_get_processor( void );
+#define rtems_scheduler_get_processor() _SMP_Get_current_processor()
/**
* @brief Returns the index of the current processor.
@@ -633,7 +634,7 @@ rtems_get_current_processor( void )
*
* @see rtems_scheduler_add_processor() and rtems_scheduler_remove_processor().
*/
-RTEMS_CONST uint32_t rtems_scheduler_get_processor_maximum( void );
+#define rtems_scheduler_get_processor_maximum() _SMP_Get_processor_maximum()
/**
* @brief Returns the processor maximum supported by the system.
diff --git a/cpukit/rtems/src/getcurrentprocessor.c b/cpukit/rtems/src/getcurrentprocessor.c
deleted file mode 100644
index 10811ade66..0000000000
--- a/cpukit/rtems/src/getcurrentprocessor.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2014 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems at embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#if HAVE_CONFIG_H
- #include "config.h"
-#endif
-
-#include <rtems/rtems/tasks.h>
-#include <rtems/score/smp.h>
-
-uint32_t rtems_scheduler_get_processor(void)
-{
- return _SMP_Get_current_processor();
-}
diff --git a/cpukit/rtems/src/getprocessorcount.c b/cpukit/rtems/src/getprocessorcount.c
deleted file mode 100644
index 68de749225..0000000000
--- a/cpukit/rtems/src/getprocessorcount.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2014 embedded brains GmbH. All rights reserved.
- *
- * embedded brains GmbH
- * Dornierstr. 4
- * 82178 Puchheim
- * Germany
- * <rtems at embedded-brains.de>
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#if HAVE_CONFIG_H
- #include "config.h"
-#endif
-
-#include <rtems/rtems/tasks.h>
-#include <rtems/score/smp.h>
-
-uint32_t rtems_scheduler_get_processor_maximum(void)
-{
- return _SMP_Get_processor_maximum();
-}
--
2.16.4
More information about the devel
mailing list