diff options
Diffstat (limited to 'cpukit/doxygen')
-rw-r--r-- | cpukit/doxygen/appl-config.h | 52 | ||||
-rw-r--r-- | cpukit/doxygen/build.h | 82 | ||||
-rw-r--r-- | cpukit/doxygen/mainpage.h | 206 | ||||
-rw-r--r-- | cpukit/doxygen/top-level-groups.h | 8 |
4 files changed, 343 insertions, 5 deletions
diff --git a/cpukit/doxygen/appl-config.h b/cpukit/doxygen/appl-config.h index 558a40cb0b..de93acbaa7 100644 --- a/cpukit/doxygen/appl-config.h +++ b/cpukit/doxygen/appl-config.h @@ -11,7 +11,7 @@ /* * Copyright (C) 2019, 2023 embedded brains GmbH & Co. KG * Copyright (C) 2010 Gedare Bloom - * Copyright (C) 1988, 2022 On-Line Applications Research Corporation (OAR) + * Copyright (C) 1988, 2023 On-Line Applications Research Corporation (OAR) * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -1116,7 +1116,7 @@ * * @par Notes * @parblock - * The application shall define exactly one of the following configuration + * The application shall define at least one of the following configuration * options * * * ``CONFIGURE_RTEMS_INIT_TASKS_TABLE``, @@ -1126,6 +1126,10 @@ * * @ref CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION * * otherwise a compile time error in the configuration file will occur. + * + * The Classic API initialization task performs the <a + * href="https://docs.rtems.org/branches/master/c-user/initialization/operations.html">Global + * Construction</a>. * @endparblock */ #define CONFIGURE_RTEMS_INIT_TASKS_TABLE @@ -2471,6 +2475,34 @@ */ #define CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK +/* Generated from spec:/acfg/if/jffs2-delayed-write-task-priority */ + +/** + * @brief This configuration option is an integer define. + * + * @anchor CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY + * + * The value of this configuration option defines the JFFS2 delayed write task + * priority. + * + * @par Default Value + * The default value is 15. + * + * @par Constraints + * @parblock + * The following constraints apply to this configuration option: + * + * * The configuration option is not included in the pre-qualified feature set + * of RTEMS. Applications which are restricted to only use interfaces of the + * pre-qualified feature set of RTEMS shall not use the configuration option. + * + * * The value of the configuration option shall be a valid Classic API task + * priority. The set of valid task priorities depends on the scheduler + * configuration. + * @endparblock + */ +#define CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY + /* Generated from spec:/acfg/if/use-devfs-as-base-filesystem */ /** @@ -3281,7 +3313,7 @@ * The following constraints apply to this configuration option: * * * The value of the configuration option shall be greater than or equal to - * zero. + * one. * * * The value of the configuration option shall be less than or equal to <a * href="https://en.cppreference.com/w/c/types/integer">UINT32_MAX</a>. @@ -3504,7 +3536,7 @@ * user IDLE task with the @ref CONFIGURE_IDLE_TASK_BODY configuration option, * otherwise a compile time error in the configuration file will occur. * - * The application shall define exactly one of the following configuration + * The application shall define at least one of the following configuration * options * * * @ref CONFIGURE_RTEMS_INIT_TASKS_TABLE, @@ -3514,6 +3546,11 @@ * * ``CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`` * * otherwise a compile time error in the configuration file will occur. + * + * If no Classic API initialization task and no POSIX API initialization thread + * is configured, then no <a + * href="https://docs.rtems.org/branches/master/c-user/initialization/operations.html">Global + * Construction</a> is performed. * @endparblock */ #define CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION @@ -4364,7 +4401,7 @@ * * @par Notes * @parblock - * The application shall define exactly one of the following configuration + * The application shall define at least one of the following configuration * options * * * @ref CONFIGURE_RTEMS_INIT_TASKS_TABLE, @@ -4374,6 +4411,11 @@ * * @ref CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION * * otherwise a compile time error in the configuration file will occur. + * + * If no Classic API initialization task is configured, then the POSIX API + * initialization thread performs the <a + * href="https://docs.rtems.org/branches/master/c-user/initialization/operations.html">Global + * Construction</a>. * @endparblock */ #define CONFIGURE_POSIX_INIT_THREAD_TABLE diff --git a/cpukit/doxygen/build.h b/cpukit/doxygen/build.h new file mode 100644 index 0000000000..696a6e1723 --- /dev/null +++ b/cpukit/doxygen/build.h @@ -0,0 +1,82 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ + +/** + * @file + * + * @ingroup RTEMSImplDoxygen + * + * @brief This header file defines build system related Doxygen items. + */ + +/* + * Copyright (C) 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 + * 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. + */ + +/** + * @defgroup RTEMSImplBuild Build Options + * + * @ingroup RTEMSImpl + * + * @brief This group contains files generated by the build system. + */ + +/** + * @ingroup RTEMSImplBuild + * + * @file bsps/include/bspopts.h + * + * @brief This header file provides the BSP options definitions. + */ + +/** + * @ingroup RTEMSImplBuild + * + * @file cpukit/include/version-vc-key.h + * + * @brief This header file provides the version control key definitions. + */ + +/** + * @ingroup RTEMSImplBuild + * + * @file cpukit/include/config.h + * + * @brief This header file provides system configuration definitions. + */ + +/** + * @ingroup RTEMSImplBuild + * + * @file cpukit/include/rtems/testopts.h + * + * @brief This header file provides test program definitions. + */ + +/** + * @ingroup RTEMSImplBuild + * + * @file cpukit/include/rtems/score/cpuopts.h + * + * @brief This header file provides the CPU options definitions. + */ diff --git a/cpukit/doxygen/mainpage.h b/cpukit/doxygen/mainpage.h new file mode 100644 index 0000000000..6eb0de7b36 --- /dev/null +++ b/cpukit/doxygen/mainpage.h @@ -0,0 +1,206 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ + +/** + * @file + * + * @ingroup RTEMSImplDoxygen + * + * @brief This file exists to provide a top level description of RTEMS for + * Doxygen. + */ + +/* + * Copyright (C) 2021 embedded brains GmbH & Co. KG + * Copyright (C) 1989, 2014 On-Line Applications Research Corporation (OAR) + * + * 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. + */ + +/** + * @mainpage + * + * The Real-Time Executive for Multiprocessor Systems (RTEMS) is a + * multi-threaded, single address-space, real-time operating system with no + * kernel-space/user-space separation. It is capable to operate in an SMP + * configuration providing a state of the art feature set. + * + * RTEMS and all third-party software distributed with RTEMS which may be + * linked to the application is licensed under permissive open source licenses. + * This means that the licenses do not propagate to the application software. + * Most of the original RTEMS code is now under the [BSD 2-Clause + * license](https://git.rtems.org/rtems/tree/LICENSE.BSD-2-Clause). Some + * code of RTEMS is under a legacy license, the [modified GPL 2.0 or later + * license with an exception for static + * linking](https://git.rtems.org/rtems/tree/LICENSE). It exposes no license + * requirements on application code. Everything necessary to build RTEMS + * applications is available as open source software. This makes you + * completely vendor independent. + * + * RTEMS provides the following basic feature set: + * + * - @ref RTEMSAPI + * + * - POSIX with + * [pthreads](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/pthread.h.html) + * (enables a broad range of standard software to run on RTEMS) + * + * - @ref RTEMSAPIClassic + * + * - C11 (including + * [thread](https://en.cppreference.com/w/c/thread) support) + * + * - C++11 (including + * [thread](https://en.cppreference.com/w/cpp/thread>) support) + * + * - Newlib and GCC internal + * + * - Programming languages + * + * - C/C++/OpenMP (RTEMS Source Builder, RSB) + * + * - Ada (RSB, ``--with-ada``) + * + * - Erlang + * + * - Fortran (RSB, ``--with-fortran``) + * + * - Python and MicroPython + * + * - Parallel languages + * + * - [Embedded Multicore Building Blocks](https://embb.io/) + * + * - [OpenMP](https://www.openmp.org/) + * + * - Thread synchronization and communication + * + * - Mutexes with and without locking protocols + * + * - Counting semaphores + * + * - Binary semaphores + * + * - Condition variables + * + * - Events + * + * - Message queues + * + * - Barriers + * + * - [Futex](@ref RTEMSScoreFutex) (used by OpenMP barriers) + * + * - Epoch Based Reclamation (libbsd) + * + * - Locking protocols + * + * - Transitive Priority Inheritance + * + * - OMIP (SMP feature) + * + * - Priority Ceiling + * + * - MrsP (SMP feature) + * + * - Scalable timer and timeout support + * + * - Lock-free timestamps (FreeBSD timecounters) + * + * - Responsive interrupt management + * + * - Thread-Local Storage (TLS) as specified by C11/C++11 and later standard + * revisions + * + * - Link-time configurable schedulers + * + * - Fixed-priority + * + * - Job-level fixed-priority (EDF) + * + * - Constant Bandwidth Server (experimental) + * + * - Clustered scheduling (SMP feature) + * + * - Flexible link-time configuration + * + * - Job-level fixed-priority scheduler (EDF) with support for one-to-one + * and one-to-all thread to processor affinities (default SMP scheduler) + * + * - Fixed-priority scheduler + * + * - Proof-of-concept strong APA scheduler + * + * - Focus on link-time application-specific configuration + * + * - Linker-set based initialization (similar to global C++ constructors) + * + * - Operating system uses fine-grained locking (SMP feature) + * + * - Dynamic memory allocators + * + * - First-fit (default) + * + * - Universal Memory Allocator + * ([UMA](https://www.freebsd.org/cgi/man.cgi?query=uma&sektion=9), + * libbsd) + * + * - File systems + * + * - IMFS + * + * - FAT + * + * - RFS + * + * - NFSv2 + * + * - JFFS2 (NOR flashes) + * + * - [YAFFS2](https://git.rtems.org/sebh/rtems-yaffs2.git/) + * (NAND flashes, GPL or commercial license required) + * + * - Device drivers + * + * - Termios (serial interfaces) + * + * - I2C (Linux user-space API compatible) + * + * - SPI (Linux user-space API compatible) + * + * - Network stacks (legacy, libbsd, lwIP) + * + * - USB stack (libbsd) + * + * - SD/MMC card stack (libbsd) + * + * - Framebuffer (Linux user-space API compatible, Qt) + * + * - Application runs in kernel-space and can access hardware directly + * + * - [libbsd](https://git.rtems.org/rtems-libbsd/) + * + * - Port of FreeBSD user-space and kernel-space components to RTEMS + * + * - Easy access to FreeBSD software for RTEMS + * + * - Support to stay in synchronization with FreeBSD + */ diff --git a/cpukit/doxygen/top-level-groups.h b/cpukit/doxygen/top-level-groups.h index fd32db347a..9d34b3e3dd 100644 --- a/cpukit/doxygen/top-level-groups.h +++ b/cpukit/doxygen/top-level-groups.h @@ -41,6 +41,14 @@ */ /** + * @defgroup RTEMSAPISystemLibrary System Library + * + * @ingroup RTEMSAPI + * + * @brief This group contains the system library APIs of RTEMS. + */ + +/** * @defgroup RTEMSDeviceDrivers Device Drivers * * @brief This group contains the device drivers. |