Xenomai
3.1
|
Modules | |
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. | |
The Cobalt/POSIX interface is an implementation of a subset of the Single Unix specification over the Cobalt core.
The routines from this subset are implemented as wrapper functions as defined by the linker (–wrap option, see man ld(1)). The linker flags for enabling symbol wrapping can be obtained from the following command: xeno-config –posix –ldflags. The full documentation for xeno-config can be found at https://xenomai.org/documentation/xenomai-3/html/man1/xeno-config/index.html.
When symbol wrapping is enabled:
With or without symbol wrapping:
Qualifying POSIX calls explicitly as described above may prove useful for invoking real-time services selectively within a large POSIX code base, for which globally enabling symbol wrapping would be unpractical. This may also help in implementing real-time service libraries for which depending on the linker's symbol wrapping mechanism is not suitable.
This said, conforming to the POSIX standard unspoiled by macro tricks for developing an application may be a significant upside as well. YMMV.