diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2023-07-25 13:34:52 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2023-07-28 11:58:32 +0200 |
commit | 527af2b7f2b27c19e27a8c2a47bbe5786fc66f47 (patch) | |
tree | 9a63abc5435a570473b6bc71c3a99565c38aebef /cpukit/include | |
parent | build: Export BSP base and family via pkg-config (diff) | |
download | rtems-527af2b7f2b27c19e27a8c2a47bbe5786fc66f47.tar.bz2 |
score: Move formatted I/O functions
These functions do not belong to an super core service.
Diffstat (limited to 'cpukit/include')
-rw-r--r-- | cpukit/include/rtems/dev/io.h | 119 | ||||
-rw-r--r-- | cpukit/include/rtems/score/gcov.h | 2 | ||||
-rw-r--r-- | cpukit/include/rtems/score/io.h | 142 |
3 files changed, 119 insertions, 144 deletions
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 */ @@ -52,6 +56,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. * * This function may be used to burn a couple of processor cycles with minimum 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 */ |