summaryrefslogtreecommitdiffstats
path: root/cpukit/doxygen/mainpage.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpukit/doxygen/mainpage.h206
1 files changed, 206 insertions, 0 deletions
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
+ */