Xenomai
3.1
|
▼RTDM | The Real-Time Driver Model (RTDM) provides a unified interface to both users and developers of real-time device drivers |
RTDM User API | Application interface to RTDM services |
▼Driver programming interface | RTDM driver programming interface |
Driver to driver services | Inter-driver interface |
Device Registration Services | |
Clock Services | |
Task Services | |
Timer Services | |
▼Synchronisation Services | |
Big dual kernel lock | |
Spinlock with preemption deactivation | |
Event Services | |
Semaphore Services | |
Mutex services | |
Interrupt Management Services | |
Non-Real-Time Signalling Services | These services provide a mechanism to request the execution of a specified handler in non-real-time context |
Utility Services | |
▼Device Profiles | Pre-defined classes of real-time devices |
User-space driver core | This profile includes all mini-drivers sitting on top of the User-space Device Driver framework (UDD) |
CAN Devices | This is the common interface a RTDM-compliant CAN device has to provide |
Serial Devices | This is the common interface a RTDM-compliant serial device has to provide |
Testing Devices | This group of devices is intended to provide in-kernel testing results |
Real-time IPC | Profile Revision: 1 |
▼Cobalt | Cobalt supplements the native Linux kernel in dual kernel configurations |
▼Cobalt kernel | The Cobalt core is a co-kernel which supplements the Linux kernel for delivering real-time services with very low latency |
Asynchronous Procedure Calls | Services for scheduling function calls in the Linux domain |
In-kernel arithmetics | A collection of helpers performing arithmetics not implicitly available from kernel context via GCC helpers |
Buffer descriptor | Abstraction for copying data to/from different address spaces |
Clock services | |
Debugging services | |
Dynamic memory allocation services | This code implements a variant of the allocator described in "Design of a General Purpose Memory Allocator for the 4.3BSD Unix Kernel" by Marshall K |
Interrupt management | |
Locking services | The Xenomai core deals with concurrent activities from two distinct kernels running side-by-side |
Lightweight key-to-object mapping service | A map is a simple indexing structure which associates unique integer keys with pointers to objects |
Registry services | The registry provides a mean to index object descriptors on unique alphanumeric keys |
▼Thread scheduling control | |
SCHED_QUOTA scheduling policy | The SCHED_QUOTA policy enforces a limitation on the CPU consumption of threads over a globally defined period, known as the quota interval |
Synchronous I/O multiplexing | This module implements the services needed for implementing the POSIX select() service, or any other event multiplexing services |
Thread synchronization services | |
▼Thread services | |
Thread runtime statistics | |
Thread state flags | Bits reporting permanent or transient states of threads |
Thread information flags | Bits reporting events notified to threads |
Timer services | The Xenomai timer facility depends on a clock source (xnclock) for scheduling the next activation times |
Virtual file services | Virtual files provide a mean to export Xenomai object states to user-space, based on common kernel interfaces |
▼Analogy framework | A RTDM-based interface for implementing DAQ card drivers |
▼Driver API | Programming interface provided to DAQ card drivers |
Channels and ranges | Channels |
Driver management services | Analogy driver registration / unregistration |
Subdevice management services | Subdevice declaration in a driver |
Buffer management services | Buffer management services |
Interrupt management services | |
Misc services | |
▼Analogy user API | |
▼Level 1 API | |
Asynchronous acquisition API | |
Descriptor API | |
Synchronous acquisition API | |
▼Level 2 API | |
Asynchronous acquisition API | |
Software calibration API | |
Math API | |
Range / conversion API | |
Synchronous acquisition API | |
▼Level 0 API | |
Descriptor Syscall API | |
Basic Syscall API | |
Attach / detach Syscall API | |
▼POSIX interface | |
Clocks and timers | Cobalt/POSIX clock and timer services |
Condition variables | Cobalt/POSIX condition variable services |
Message queues | Cobalt/POSIX message queue services |
Mutual exclusion | Cobalt/POSIX mutual exclusion services |
Process scheduling | Cobalt/POSIX process scheduling |
Semaphores | Cobalt/POSIX semaphore services |
Thread management | Cobalt (POSIX) thread management services |
Scheduling management | Cobalt scheduling management services |
Smokey API | A simple infrastructure for writing and running smoke tests |
▼Alchemy API | A programming interface reminiscent from traditional RTOS APIs |
Alarm services | General-purpose watchdog timers |
Buffer services | Lightweight FIFO IPC mechanism |
Condition variable services | POSIXish condition variable mechanism |
Event flag group services | Inter-task notification mechanism based on discrete flags |
Heap management services | Region of memory dedicated to real-time allocation |
Mutex services | POSIXish mutual exclusion servicesl |
Message pipe services | Two-way communication channel between Xenomai & Linux domains |
Message queue services | Real-time IPC mechanism for sending messages of arbitrary size |
Semaphore services | Counting semaphore IPC mechanism |
Task management services | Services dealing with preemptive multi-tasking |
Timer management services | Services for reading and spinning on the hardware timer |
VxWorks® emulator | A VxWorks® emulation library on top of Xenomai |
pSOS® emulator | A pSOS® emulation library on top of Xenomai |
Transition Kit | A set of wrappers and services easing the transition from Xenomai 2.x to 3.x |