SafeAPI Backend POSIX
POSIX/Linux OAL backend for safeAPIFreamwork
Loading...
Searching...
No Matches
src Directory Reference
Directory dependency graph for src:

Files

 
sapi_posix_backend.c
 Aggregator: registers the POSIX backend with every OAL service in one call (ADR-018 section 2.1).
 
sapi_posix_backend_channel_service.c
 POSIX named-channel adapter.
 
sapi_posix_backend_ipc.c
 POSIX sapi_ipc backend: one pipe() per channel (ADR-018 section 2.2/2.3 - a mutex+condvar ring buffer would not fit sapi_ipc's 64-byte opaque storage on glibc; a pipe lets the kernel own the queue instead).
 
sapi_posix_backend_log.c
 POSIX sapi_log backend: 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").
 
sapi_posix_backend_memory.c
 POSIX sapi_memory backend: a single fixed-size static byte arena with a per-pool intrusive free list carved out of it at sapi_mem_pool_create() time (ADR-018 section 2.3).
 
sapi_posix_backend_mutex.c
 POSIX sapi_mutex backend: 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 sapi_mutex.h's own doc for why an application must never do so itself.
 
sapi_posix_backend_nvm.c
 POSIX sapi_nvm backend: 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.
 
sapi_posix_backend_platform.c
 POSIX sapi_platform backend: real-time bring-up for a PREEMPT_RT Linux host (ADR-018, ADR-035).
 
sapi_posix_backend_reboot.c
 POSIX sapi_reboot backend: 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.".
 
sapi_posix_backend_task.c
 POSIX sapi_task backend: one pthread per task (ADR-018 section 2.3). period_ms > 0 runs entry in a nanosleep()-paced loop (relative, EINTR-restartable - not clock_nanosleep(CLOCK_MONOTONIC,...), which is a Linux/glibc extension Darwin's libc does not implement, and this backend targets any POSIX host); period_ms == 0 runs entry once.
 
sapi_posix_backend_timer.c
 POSIX sapi_timer backend: one pthread per timer, sleeping via a relative, EINTR-restartable nanosleep() (ADR-018 section 2.3).