RTE OSAdapter POSIX 0.1.0 build 41b3eb3
POSIX/Linux OAL OSAdapter for Platform_RTE
Loading...
Searching...
No Matches
Platform_OS_POSIX

Product: Platform_OS_POSIX, the OSAdapter for POSIX and Linux (repository Platform_OS_POSIX). Layer: OSAdapter, below Platform_RTE. Language: C99. Output: librte_posix_osadapter.a.

Responsibility

Implements every OAL OSAdapter vtable that Platform_RTE defines, on POSIX:

  • memory pools, monotonic timers, mutexes, tasks and threads, non-volatile memory, controlled reboot, IPC
  • log output, netlink links (UDP handshake link) and the channel-service OSAdapter
  • real-time bring-up behind the rte_platform vtable (mlockall, stack pre-fault, SCHED_FIFO on Linux; a no-op elsewhere)
  • raw OS sockets (rte_os_socket_ops_t, UDP and TCP) for ProtocolAdapters; open returns a non-blocking (O_NONBLOCK) socket
  • IPC as one pipe per channel: a bounded queue of whole fixed-size messages (queue_depth enforced, message_size at most PIPE_BUF, pipe capacity checked at create; RTE_POSIX_IPC_PIPE_CAPACITY on non-Linux hosts)

It does not contain any application or protocol logic, and it depends on nothing above Platform_RTE.

Interfaces exposed to other products

Interface Header Consumed by Notes
Registration seam include/rte/posix_osadapter/rte_posix_osadapter.h RBC_GP, RBC_Test_CommServer (composition root only) rte_posix_osadapter_register_all(), rte_posix_osadapter_reboot_set_argv(); rte_posix_osadapter_memory_init() (called by register_all(); only for a caller registering the memory OSAdapter on its own)
Channel-service OSAdapter include/rte/posix_osadapter/rte_posix_osadapter_channel_service.h RBC_GP, gateways Named POSIX channels with a deferred peer handshake
OSAdapter sockets include/rte/posix_osadapter/rte_posix_osadapter.h, include/rte/posix_osadapter/rte_posix_osadapter.h ProtocolAdapters Canonical headers; posix_osadapter headers remain for compatibility

Application code calls only the registration entry points. Behaviour is reached through Platform_RTE.

Interfaces required

Platform_RTE (rte::core, rte::oal) and the system thread library. Nothing else.

Build and test

cmake -S . -B build # finds platform/Platform_RTE by the workspace layout
cmake --build build
ctest --test-dir build --output-on-failure
cmake --install build --prefix . # dist/<platform>/

Use -DRTE_FRAMEWORK_DIR=<path> or -DRTE_USE_INSTALLED_FRAMEWORK=ON to override how Platform_RTE is found. Working notes and gotchas: CLAUDE.md.

Where to read next