Expand description
EPICS libCom for Rust: the layer an IOC is built on, with no record
system above it.
This is epics_base_rs::runtime and epics_base_rs::net lifted out of
epics-base-rs (issue #55) so a consumer — a protocol client, a gateway,
pvxs-rs — can take the concurrency and socket primitives without taking
the database with them. The name is C’s: libCom is where upstream EPICS
keeps epicsThread, epicsTime, errlog, envDefs and osiSock, which
is exactly this crate’s two modules.
epics-base-rs re-exports both modules at their original paths, so
epics_base_rs::runtime::… and epics_base_rs::net::… still resolve and
nothing downstream had to change.
runtime— the task seam and its two backends,epicsThread-parity priority bands,errlog, the EPICS string/environment types, the general-time provider.net— the EPICS protocols’ shared socket layer: per-NIC async UDP, interface enumeration, loopback multicast. Host-only; the wire constants beside it compile for every target, RTEMS included.walltime—WallTime, the wall-clock instantruntime::timereturns. It lived inepics_base_rs::typesand moved down with its producer;epics-base-rsre-exports it attypes::WallTime.
§Features
rtems-exec-model— select the reactor-freeexec_backendon a hosted target. SeeEXEC_BACKEND.linux-rt— backruntime::sync::PriorityInheritanceMutexwith aPTHREAD_PRIO_INHERITpthread_mutex_ton Linux.
Modules§
- net
- Cross-platform networking primitives shared by
epics-ca-rs,epics-pva-rs, andepics-bridge-rs. - runtime
- The concurrency, timing, logging and OS-facing primitives an IOC is built
on — C
libCom’sepicsThread/epicsTime/errlog/envDefshalf. - walltime
WallTime— a wall-clock instant with full EPICS nanosecond precision on every platform.
Macros§
- rt_
debug - Debug-level runtime log line. Routes through the
tracingfacade. - rt_
error - Error-level runtime log line. Routes through the
tracingfacade. - rt_info
- Info-level runtime log line. Routes through the
tracingfacade. - rt_warn
- Warn-level runtime log line. Routes through the
tracingfacade.
Constants§
- EXEC_
BACKEND - Which
runtime::taskbackend this build selected —truefor the reactor-free std-threadruntime::backgroundexecutor,falsefor tokio.