RTE OSAdapter POSIX 0.1.0 build 41b3eb3
POSIX/Linux OAL OSAdapter for Platform_RTE
Loading...
Searching...
No Matches
File List
Here is a list of all documented files with brief descriptions:
 include
  rte
   posix_osadapter
    
rte_posix_osadapter.h
Real POSIX/Linux OSAdapter for every OAL service (ADR-018)
    
rte_posix_osadapter_channel_service.h
POSIX named-channel adapter
 src
  
rte_posix_osadapter.c
Aggregator: registers the POSIX OSAdapter with every OAL service in one call (ADR-018 section 2.1)
  
rte_posix_osadapter_channel_service.c
POSIX named-channel adapter
  
rte_posix_osadapter_ipc.c
POSIX rte_ipc OSAdapter: one pipe() per channel (ADR-018 section 2.2/2.3 - a mutex+condvar ring buffer would not fit rte_ipc's 64-byte opaque storage on glibc; a pipe lets the kernel own the queue instead)
  
rte_posix_osadapter_lock.c
Bounded wait for a pthread mutex (OSA rule R2), shared by the mutex OSAdapter's lock_timed (REQ-OAL-MUTEX-014) and the memory OSAdapter's pool lock (REQ-OAL-MEM-015). Semantics and the two host variants are documented on posix_osa_lock_bounded() in rte_posix_osadapter_lock.h. Moved here unchanged from rte_posix_osadapter_mutex.c (2026-10-03) so both callers use one implementation
  
rte_posix_osadapter_lock.h
Private helper: a bounded wait for a pthread mutex (OSA rule R2: every wait bounded)
  
rte_posix_osadapter_log.c
POSIX rte_log OSAdapter: non-blocking best-effort write to stderr (ADR-018 section 2.3), matching REQ-OAL-LOG-001 ("best-effort, non-blocking, must never affect caller control flow")
  
rte_posix_osadapter_memory.c
POSIX rte_memory OSAdapter: a single fixed-size static byte arena with a per-pool intrusive free list carved out of it at rte_mem_pool_create() time (ADR-018 section 2.3)
  
rte_posix_osadapter_mutex.c
POSIX rte_mutex OSAdapter: a thin wrapper over pthread_mutex_t (ADR-033, safeAPIFreamwork). This is the ONE file in the whole stack allowed to touch pthread_mutex_* directly - see rte_mutex.h's own doc for why an application must never do so itself
  
rte_posix_osadapter_netlink.c
POSIX rte_netlink OSAdapter: IPv4 UDP sockets. LISTEN binds and learns its one peer from that peer's first HELLO datagram; CONNECT dials and retries HELLO until the peer's HELLO_ACK arrives. Both sides then connect() the datagram socket to its one fixed peer, so ordinary send()/recv() (no *_to/_from) carry every later message - see ADR-027
  
rte_posix_osadapter_nvm.c
POSIX rte_nvm OSAdapter: one plain file per region, with a whole-region FNV-1a-64 hash trailer recomputed on every write and verified on every read (ADR-018 section 2.3), satisfying REQ-OAL-NVM-001's "every read shall be integrity-checked" via a single trailing hash rather than a redundant-copy vote
  
rte_posix_osadapter_period.c
Pacing of a periodic thread by an absolute CLOCK_MONOTONIC deadline (OSA rule R3), shared by the timer OSAdapter's thread loop and the task OSAdapter's periodic loop, and its wake-up by a stop (OSA rule R2, audit item 7b-1). Semantics, the two host variants, why no wake-up is lost and the known limits are documented in rte_posix_osadapter_period.h. Replaces the per-file ms_to_timespec() / timespec_add_ms() copies of rte_posix_osadapter_timer.c and rte_posix_osadapter_task.c (2026-10-04): before, a non-Linux host slept a fresh relative period after every callback (the period drifted by the callback's run time) and a failed first clock read on Linux started the deadline at 0. Before 7b-1 (2026-10-04) the wait was a clock_nanosleep() (Linux) / nanosleep() (other hosts) that a stop could not interrupt, so stop, suspend and destroy waited up to one period for the thread to see its stop flag
  
rte_posix_osadapter_period.h
Private helper: pacing of a periodic thread by an absolute CLOCK_MONOTONIC deadline (OSA rule R3), and the wake-up of a waiting periodic thread by a stop (OSA rule R2, audit item 7b-1)
  
rte_posix_osadapter_platform.c
POSIX rte_platform OSAdapter: real-time bring-up for a PREEMPT_RT Linux host (ADR-018, ADR-035)
  
rte_posix_osadapter_poll.h
Private helpers: millisecond waits for poll()'s int timeout argument
  
rte_posix_osadapter_random.c
POSIX rte_random OSAdapter: the kernel CSPRNG via getentropy() (Linux glibc 2.25+, macOS 10.12+)
  
rte_posix_osadapter_reboot.c
POSIX rte_reboot OSAdapter: execv() re-exec of the current binary (ADR-018 section 2.3), resolved portably per-OS since there is no single POSIX-standard way to ask "what is my own executable path."
  
rte_posix_osadapter_report.h
Private helper: reports a real-time attribute this OSAdapter could not apply (OSA rules R1/R2/R6)
  
rte_posix_osadapter_sockbuf.c
Socket buffer sizes of a link config (OSA rules R5, R6; Platform_RTE REQ-OAL-NETLINK-015), shared by the netlink OSAdapter (at open) and the channel service OSAdapter (at every socket (re)init). Semantics are documented on posix_socket_apply_buffers() in rte_posix_osadapter_sockbuf.h
  
rte_posix_osadapter_sockbuf.h
Private helper: applies the socket buffer sizes of a link config (OSA rules R5, R6)
  
rte_posix_osadapter_socket.c
POSIX implementation of the raw OS socket layer (rte_os_socket_ops_t)
  
rte_posix_osadapter_task.c
POSIX rte_task OSAdapter: one pthread per task (ADR-018 section 2.3). period_ms > 0 runs entry in a loop paced by an absolute CLOCK_MONOTONIC deadline; period_ms == 0 runs entry once
  
rte_posix_osadapter_timer.c
POSIX rte_timer OSAdapter: one pthread per timer, paced by an absolute CLOCK_MONOTONIC deadline (ADR-018 section 2.3)