summaryrefslogtreecommitdiffstats
path: root/cpukit/doxygen
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/doxygen')
-rw-r--r--cpukit/doxygen/appl-config.h52
-rw-r--r--cpukit/doxygen/build.h82
-rw-r--r--cpukit/doxygen/mainpage.h206
-rw-r--r--cpukit/doxygen/top-level-groups.h8
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.