Xenomai  3.1
POSIX interface
Collaboration diagram for POSIX interface:

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.
 

Detailed Description

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.