These functions do not belong to an super core service. --- cpukit/{score/src => dev}/iobase64.c | 4 +- cpukit/{score/src => dev}/ioprintf.c | 4 +- cpukit/{score/src => dev}/iovprintf.c | 4 +- cpukit/include/rtems/dev/io.h | 119 ++++++++++++++- cpukit/include/rtems/score/gcov.h | 2 +- cpukit/include/rtems/score/io.h | 142 ------------------ cpukit/libcsupport/src/vprintk.c | 2 +- cpukit/libtest/t-test-hash-sha256.c | 2 +- cpukit/libtest/t-test.c | 2 +- cpukit/libtrace/record/record-dump-base64.c | 2 +- cpukit/libtrace/record/record-dump-zbase64.c | 2 +- .../aarch64/aarch64-exception-frame-print.c | 2 +- cpukit/score/src/hash.c | 2 +- spec/build/cpukit/librtemscpu.yml | 7 +- testsuites/sptests/spprintk/init.c | 2 +- testsuites/validation/tc-task-delete.c | 2 +- testsuites/validation/tc-terminate.c | 2 +- 17 files changed, 138 insertions(+), 164 deletions(-) rename cpukit/{score/src => dev}/iobase64.c (98%) rename cpukit/{score/src => dev}/ioprintf.c (97%) rename cpukit/{score/src => dev}/iovprintf.c (99%) delete mode 100644 cpukit/include/rtems/score/io.h
diff --git a/cpukit/score/src/iobase64.c b/cpukit/dev/iobase64.c similarity index 98% rename from cpukit/score/src/iobase64.c rename to cpukit/dev/iobase64.c index 27b977c8a0..0ac70d3ddb 100644 --- a/cpukit/score/src/iobase64.c +++ b/cpukit/dev/iobase64.c @@ -3,7 +3,7 @@ /** * @file * - * @ingroup RTEMSScoreIO + * @ingroup RTEMSDeviceIO * * @brief This source file contains the implementation of * _IO_Base64() and _IO_Base64url(). @@ -27,7 +27,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -#include <rtems/score/io.h> +#include <rtems/dev/io.h> static void _IO_Put(int c, void *arg, IO_Put_char put_char) diff --git a/cpukit/score/src/ioprintf.c b/cpukit/dev/ioprintf.c similarity index 97% rename from cpukit/score/src/ioprintf.c rename to cpukit/dev/ioprintf.c index 8ae4213ab1..1f16389b47 100644 --- a/cpukit/score/src/ioprintf.c +++ b/cpukit/dev/ioprintf.c @@ -3,7 +3,7 @@ /** * @file * - * @ingroup RTEMSScoreIO + * @ingroup RTEMSDeviceIO * * @brief This source file contains the implementation of * _IO_Printf(). @@ -38,7 +38,7 @@ #include "config.h" #endif -#include <rtems/score/io.h> +#include <rtems/dev/io.h> int _IO_Printf( IO_Put_char put_char, void *arg, char const *fmt, ... ) { diff --git a/cpukit/score/src/iovprintf.c b/cpukit/dev/iovprintf.c similarity index 99% rename from cpukit/score/src/iovprintf.c rename to cpukit/dev/iovprintf.c index 0e8eb0b47b..99b11b691d 100644 --- a/cpukit/score/src/iovprintf.c +++ b/cpukit/dev/iovprintf.c @@ -1,7 +1,7 @@ /** * @file * - * @ingroup RTEMSScoreIO + * @ingroup RTEMSDeviceIO * * @brief This source file contains the implementation of * _IO_Vprintf(). @@ -45,7 +45,7 @@ * @(#)subr_prf.c 8.3 (Berkeley) 1/21/94 */ -#include <rtems/score/io.h> +#include <rtems/dev/io.h> #include <sys/cdefs.h> __FBSDID("$FreeBSD: head/sys/kern/subr_prf.c 336417 2018-07-17 14:56:54Z markj $"); diff --git a/cpukit/include/rtems/dev/io.h b/cpukit/include/rtems/dev/io.h index 4d041bcafc..93f384a551 100644 --- a/cpukit/include/rtems/dev/io.h +++ b/cpukit/include/rtems/dev/io.h @@ -10,7 +10,7 @@ */ /* - * Copyright (C) 2021 embedded brains GmbH & Co. KG + * Copyright (C) 2017, 2023 embedded brains GmbH & Co. KG * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -37,6 +37,10 @@ #ifndef _RTEMS_DEV_IO_H #define _RTEMS_DEV_IO_H +#include <rtems/score/basedefs.h> + +#include <stdarg.h> + #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ @@ -51,6 +55,119 @@ extern "C" { * @{ */ +/** + * @brief This type defines the put character handler. + * + * @param c is the character to put. + * + * @param arg is the user-provided argument. + */ +typedef void ( *IO_Put_char )( int c, void *arg ); + +/** + * @brief Prints characters using the put character handler according to the + * format string. + * + * @param put_char is the put character handler. + * + * @param arg is the user-provided argument for the put character handler. + * + * @param fmt is the printf()-style format string. + * + * @param ... is the list of parameters required by the format string. + * + * @return Returns the count of put characters. + */ +int _IO_Printf( + IO_Put_char put_char, + void *arg, + char const *fmt, + ... +) RTEMS_PRINTFLIKE( 3, 4 ); + +/** + * @brief Prints characters using the put character handler according to the + * format string. + * + * @param put_char is the put character handler. + * + * @param arg is the user-provided argument for the put character handler. + * + * @param fmt is the printf()-style format string. + * + * @param ap is the argument list required by the format string. + * + * @return Returns the count of put characters. + */ +int _IO_Vprintf( + IO_Put_char put_char, + void *arg, + char const *fmt, + va_list ap +); + +/** + * @brief Outputs the source buffer in base64 encoding. + * + * After word length of output characters produced by the encoding a word break + * is produced. + * + * @param put_char is the put character function used to output the encoded + * source buffer. + * + * @param arg is the argument passed to the put character function. + * + * @param src is the pointer to the source buffer begin. + * + * @param srclen is the length of the source buffer in bytes. + * + * @param wordbreak is the word break string. + * + * @param wordlen is the word length in bytes. If the word length is less than + * four, then a word length of four will be used. + * + * @return Returns the count of output characters. + */ +int _IO_Base64( + IO_Put_char put_char, + void *arg, + const void *src, + size_t len, + const char *wordbreak, + int wordlen +); + +/** + * @brief Outputs the source buffer in base64url encoding. + * + * After word length of output characters produced by the encoding a word break + * is produced. + * + * @param put_char is the put character function used to output the encoded + * source buffer. + * + * @param arg is the argument passed to the put character function. + * + * @param src is the pointer to the source buffer begin. + * + * @param srclen is the length of the source buffer in bytes. + * + * @param wordbreak is the word break string. + * + * @param wordlen is the word length in bytes. If the word length is less than + * four, then a word length of four will be used. + * + * @return Returns the count of output characters. + */ +int _IO_Base64url( + IO_Put_char put_char, + void *arg, + const void *src, + size_t len, + const char *wordbreak, + int wordlen +); + /** * @brief Issues a couple of no-operation instructions. * diff --git a/cpukit/include/rtems/score/gcov.h b/cpukit/include/rtems/score/gcov.h index 35e0480f6b..ff8ad62a15 100644 --- a/cpukit/include/rtems/score/gcov.h +++ b/cpukit/include/rtems/score/gcov.h @@ -40,7 +40,7 @@ #include <gcov.h> #include <rtems/linkersets.h> -#include <rtems/score/io.h> +#include <rtems/dev/io.h> #ifdef __cplusplus extern "C" { diff --git a/cpukit/include/rtems/score/io.h b/cpukit/include/rtems/score/io.h deleted file mode 100644 index 7fe69841e8..0000000000 --- a/cpukit/include/rtems/score/io.h +++ /dev/null @@ -1,142 +0,0 @@ -/* SPDX-License-Identifier: BSD-2-Clause */ - -/** - * @file - * - * @ingroup RTEMSScoreIO - * - * @brief This header file provides the interfaces of the - * @ref RTEMSScoreIO. - */ - -/* - * Copyright (c) 2017 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_SCORE_IO_H -#define _RTEMS_SCORE_IO_H - -#include <rtems/score/basedefs.h> - -#include <stdarg.h> - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * @defgroup RTEMSScoreIO IO Handler - * - * @ingroup RTEMSScore - * - * @brief This group contains the IO Handler implementation. - * - * @{ - */ - -typedef void ( *IO_Put_char )( int c, void *arg ); - -int _IO_Printf( - IO_Put_char put_char, - void *arg, - char const *fmt, - ... -) RTEMS_PRINTFLIKE( 3, 4 ); - -int _IO_Vprintf( - IO_Put_char put_char, - void *arg, - char const *fmt, - va_list ap -); - -/** - * @brief Outputs the source buffer in base64 encoding. - * - * After word length of output characters produced by the encoding a word break - * is produced. - * - * @param put_char is the put character function used to output the encoded - * source buffer. - * - * @param arg is the argument passed to the put character function. - * - * @param src is the pointer to the source buffer begin. - * - * @param srclen is the length of the source buffer in bytes. - * - * @param wordbreak is the word break string. - * - * @param wordlen is the word length in bytes. If the word length is less than - * four, then a word length of four will be used. - * - * @return Returns the count of output characters. - */ -int _IO_Base64( - IO_Put_char put_char, - void *arg, - const void *src, - size_t len, - const char *wordbreak, - int wordlen -); - -/** - * @brief Outputs the source buffer in base64url encoding. - * - * After word length of output characters produced by the encoding a word break - * is produced. - * - * @param put_char is the put character function used to output the encoded - * source buffer. - * - * @param arg is the argument passed to the put character function. - * - * @param src is the pointer to the source buffer begin. - * - * @param srclen is the length of the source buffer in bytes. - * - * @param wordbreak is the word break string. - * - * @param wordlen is the word length in bytes. If the word length is less than - * four, then a word length of four will be used. - * - * @return Returns the count of output characters. - */ -int _IO_Base64url( - IO_Put_char put_char, - void *arg, - const void *src, - size_t len, - const char *wordbreak, - int wordlen -); - -/** @} */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _RTEMS_SCORE_IO_H */ diff --git a/cpukit/libcsupport/src/vprintk.c b/cpukit/libcsupport/src/vprintk.c index e46cdad60f..f4ac81c5fc 100644 --- a/cpukit/libcsupport/src/vprintk.c +++ b/cpukit/libcsupport/src/vprintk.c @@ -38,7 +38,7 @@ #endif #include <rtems/bspIo.h> -#include <rtems/score/io.h> +#include <rtems/dev/io.h> int vprintk( const char *fmt, va_list ap ) { diff --git a/cpukit/libtest/t-test-hash-sha256.c b/cpukit/libtest/t-test-hash-sha256.c index a9aa4df023..caefb0210e 100644 --- a/cpukit/libtest/t-test-hash-sha256.c +++ b/cpukit/libtest/t-test-hash-sha256.c @@ -26,7 +26,7 @@ */ #include <rtems/test.h> -#include <rtems/score/io.h> +#include <rtems/dev/io.h> #include <limits.h> diff --git a/cpukit/libtest/t-test.c b/cpukit/libtest/t-test.c index 4f3bf56142..a8527fafe8 100644 --- a/cpukit/libtest/t-test.c +++ b/cpukit/libtest/t-test.c @@ -37,7 +37,7 @@ #include <stdatomic.h> #ifdef __rtems__ -#include <rtems/score/io.h> +#include <rtems/dev/io.h> #include <rtems/score/percpu.h> #include <rtems/score/smp.h> #include <rtems/score/threadimpl.h> diff --git a/cpukit/libtrace/record/record-dump-base64.c b/cpukit/libtrace/record/record-dump-base64.c index a021c7016c..8d403e9c27 100644 --- a/cpukit/libtrace/record/record-dump-base64.c +++ b/cpukit/libtrace/record/record-dump-base64.c @@ -30,7 +30,7 @@ #endif #include <rtems/recorddump.h> -#include <rtems/score/io.h> +#include <rtems/dev/io.h> #include <limits.h> #include <string.h> diff --git a/cpukit/libtrace/record/record-dump-zbase64.c b/cpukit/libtrace/record/record-dump-zbase64.c index 9359429d0b..0979e36a47 100644 --- a/cpukit/libtrace/record/record-dump-zbase64.c +++ b/cpukit/libtrace/record/record-dump-zbase64.c @@ -30,7 +30,7 @@ #endif #include <rtems/recorddump.h> -#include <rtems/score/io.h> +#include <rtems/dev/io.h> #include <limits.h> #include <string.h> diff --git a/cpukit/score/cpu/aarch64/aarch64-exception-frame-print.c b/cpukit/score/cpu/aarch64/aarch64-exception-frame-print.c index c5b477c72f..04a3dfdc0d 100644 --- a/cpukit/score/cpu/aarch64/aarch64-exception-frame-print.c +++ b/cpukit/score/cpu/aarch64/aarch64-exception-frame-print.c @@ -45,7 +45,7 @@ #include <inttypes.h> #include <rtems/score/cpu.h> -#include <rtems/score/io.h> +#include <rtems/dev/io.h> #include <rtems/bspIo.h> typedef struct { diff --git a/cpukit/score/src/hash.c b/cpukit/score/src/hash.c index dc9143f4c0..888a618751 100644 --- a/cpukit/score/src/hash.c +++ b/cpukit/score/src/hash.c @@ -39,7 +39,7 @@ #include <rtems/score/hash.h> #include <rtems/score/assert.h> -#include <rtems/score/io.h> +#include <rtems/dev/io.h> #include <limits.h> diff --git a/spec/build/cpukit/librtemscpu.yml b/spec/build/cpukit/librtemscpu.yml index d556c95bc8..6bc700e2cd 100644 --- a/spec/build/cpukit/librtemscpu.yml +++ b/spec/build/cpukit/librtemscpu.yml @@ -356,7 +356,6 @@ install: - cpukit/include/rtems/score/heapimpl.h - cpukit/include/rtems/score/heapinfo.h - cpukit/include/rtems/score/interr.h - - cpukit/include/rtems/score/io.h - cpukit/include/rtems/score/isr.h - cpukit/include/rtems/score/isrlevel.h - cpukit/include/rtems/score/isrlock.h @@ -541,7 +540,10 @@ source: - cpukit/dev/i2c/ti-lm25066a.c - cpukit/dev/i2c/ti-tmp112.c - cpukit/dev/i2c/xilinx-axi-i2c.c +- cpukit/dev/iobase64.c +- cpukit/dev/ioprintf.c - cpukit/dev/iorelax.c +- cpukit/dev/iovprintf.c - cpukit/dev/serial/sc16is752-spi.c - cpukit/dev/serial/sc16is752.c - cpukit/dev/spi/spi-bus.c @@ -1433,9 +1435,6 @@ source: - cpukit/score/src/heapsizeofuserarea.c - cpukit/score/src/heapwalk.c - cpukit/score/src/interr.c -- cpukit/score/src/iobase64.c -- cpukit/score/src/ioprintf.c -- cpukit/score/src/iovprintf.c - cpukit/score/src/isr.c - cpukit/score/src/isrisinprogress.c - cpukit/score/src/isrvectortable.c diff --git a/testsuites/sptests/spprintk/init.c b/testsuites/sptests/spprintk/init.c index f8fe224086..b69edc095e 100644 --- a/testsuites/sptests/spprintk/init.c +++ b/testsuites/sptests/spprintk/init.c @@ -32,7 +32,7 @@ #include "config.h" #endif -#include <rtems/score/io.h> +#include <rtems/dev/io.h> /* * Undefined the RTEMS_PRINTFLIKE and make it nothing. The test code diff --git a/testsuites/validation/tc-task-delete.c b/testsuites/validation/tc-task-delete.c index 3172604eff..0e7d3b312a 100644 --- a/testsuites/validation/tc-task-delete.c +++ b/testsuites/validation/tc-task-delete.c @@ -57,7 +57,7 @@ #include <setjmp.h> #include <rtems/bspIo.h> #include <rtems/test-scheduler.h> -#include <rtems/score/io.h> +#include <rtems/dev/io.h> #include <rtems/score/statesimpl.h> #include <rtems/score/threaddispatch.h> #include <rtems/score/threadimpl.h> diff --git a/testsuites/validation/tc-terminate.c b/testsuites/validation/tc-terminate.c index 3ea314efc3..f8f6f1d1ce 100644 --- a/testsuites/validation/tc-terminate.c +++ b/testsuites/validation/tc-terminate.c @@ -58,7 +58,7 @@ #include <rtems/bspIo.h> #include <rtems/test-info.h> #include <rtems/score/atomic.h> -#include <rtems/score/io.h> +#include <rtems/dev/io.h> #include <rtems/score/percpu.h> #include <rtems/score/sysstate.h> -- 2.35.3 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel