[PATCH] score: Move _IO_Relax() to new <rtems/dev/io.h>

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Jul 18 07:59:01 UTC 2023


This function is not a super core service.
---
 bsps/shared/grlib/uart/apbuart_polled.c |  2 +-
 cpukit/{score/src => dev}/iorelax.c     |  4 +-
 cpukit/include/rtems/dev/io.h           | 68 +++++++++++++++++++++++++
 cpukit/include/rtems/score/io.h         |  8 ---
 spec/build/cpukit/librtemscpu.yml       |  4 +-
 5 files changed, 73 insertions(+), 13 deletions(-)
 rename cpukit/{score/src => dev}/iorelax.c (97%)
 create mode 100644 cpukit/include/rtems/dev/io.h

diff --git a/bsps/shared/grlib/uart/apbuart_polled.c b/bsps/shared/grlib/uart/apbuart_polled.c
index f3e4997a12..84c31795df 100644
--- a/bsps/shared/grlib/uart/apbuart_polled.c
+++ b/bsps/shared/grlib/uart/apbuart_polled.c
@@ -38,7 +38,7 @@
 #include <grlib/apbuart.h>
 #include <grlib/io.h>
 
-#include <rtems/score/io.h>
+#include <rtems/dev/io.h>
 
 void apbuart_outbyte_wait( const apbuart *regs )
 {
diff --git a/cpukit/score/src/iorelax.c b/cpukit/dev/iorelax.c
similarity index 97%
rename from cpukit/score/src/iorelax.c
rename to cpukit/dev/iorelax.c
index 1b155377a9..5fdefac151 100644
--- a/cpukit/score/src/iorelax.c
+++ b/cpukit/dev/iorelax.c
@@ -3,7 +3,7 @@
 /**
  * @file
  *
- * @ingroup RTEMSScoreIO
+ * @ingroup RTEMSDeviceIO
  *
  * @brief This source file contains the implementation of _IO_Relax().
  */
@@ -37,7 +37,7 @@
 #include "config.h"
 #endif
 
-#include <rtems/score/io.h>
+#include <rtems/dev/io.h>
 #include <rtems/score/cpuimpl.h>
 
 void _IO_Relax( void )
diff --git a/cpukit/include/rtems/dev/io.h b/cpukit/include/rtems/dev/io.h
new file mode 100644
index 0000000000..b3f59eae30
--- /dev/null
+++ b/cpukit/include/rtems/dev/io.h
@@ -0,0 +1,68 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
+/**
+ * @file
+ *
+ * @ingroup RTEMSDeviceIO
+ *
+ * @brief This header file provides the interfaces of the
+ *   @ref RTEMSDeviceIO.
+ */
+
+/*
+ * Copyright (C) 2021 embedded brains GmbH & Co. KG
+ *
+ * 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.
+ */
+
+#ifndef _RTEMS_DEV_IO_H
+#define _RTEMS_DEV_IO_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * @defgroup RTEMSDeviceIO Device I/O Support
+ *
+ * @ingroup RTEMSDeviceDrivers
+ *
+ * @brief This group contains the Device I/O Support API and implementation.
+ *
+ * @{
+ */
+
+/**
+ * @brief Issues a couple of no-operation instructions.
+ *
+ * This function may be used to burn a couple of processor cycles with minimum
+ * impact on the system bus.  It may be used in busy wait loops.
+ */
+void _IO_Relax( void );
+
+/** @} */ 
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* _RTEMS_DEV_IO_H */
diff --git a/cpukit/include/rtems/score/io.h b/cpukit/include/rtems/score/io.h
index 9cd401eb1d..7fe69841e8 100644
--- a/cpukit/include/rtems/score/io.h
+++ b/cpukit/include/rtems/score/io.h
@@ -133,14 +133,6 @@ int _IO_Base64url(
   int          wordlen
 );
 
-/**
- * @brief Issues a couple of no-operation instructions.
- *
- * This function may be used to burn a couple of processor cycles with minimum
- * impact on the system bus.  It may be used in busy wait loops.
- */
-void _IO_Relax( void );
-
 /** @} */ 
 
 #ifdef __cplusplus
diff --git a/spec/build/cpukit/librtemscpu.yml b/spec/build/cpukit/librtemscpu.yml
index 3654e7f94a..d556c95bc8 100644
--- a/spec/build/cpukit/librtemscpu.yml
+++ b/spec/build/cpukit/librtemscpu.yml
@@ -528,6 +528,7 @@ source:
 - cpukit/compression/xz/xz_crc32.c
 - cpukit/compression/xz/xz_dec_lzma2.c
 - cpukit/compression/xz/xz_dec_stream.c
+- cpukit/dev/can/can.c
 - cpukit/dev/flash/flashdev.c
 - cpukit/dev/i2c/eeprom.c
 - cpukit/dev/i2c/fpga-i2c-slave.c
@@ -540,10 +541,10 @@ source:
 - cpukit/dev/i2c/ti-lm25066a.c
 - cpukit/dev/i2c/ti-tmp112.c
 - cpukit/dev/i2c/xilinx-axi-i2c.c
+- cpukit/dev/iorelax.c
 - cpukit/dev/serial/sc16is752-spi.c
 - cpukit/dev/serial/sc16is752.c
 - cpukit/dev/spi/spi-bus.c
-- cpukit/dev/can/can.c
 - cpukit/dtc/libfdt/fdt.c
 - cpukit/dtc/libfdt/fdt_addresses.c
 - cpukit/dtc/libfdt/fdt_empty_tree.c
@@ -1434,7 +1435,6 @@ source:
 - cpukit/score/src/interr.c
 - cpukit/score/src/iobase64.c
 - cpukit/score/src/ioprintf.c
-- cpukit/score/src/iorelax.c
 - cpukit/score/src/iovprintf.c
 - cpukit/score/src/isr.c
 - cpukit/score/src/isrisinprogress.c
-- 
2.35.3



More information about the devel mailing list