mirror of
https://dev.lirent.ru/Vatrog/vm-automation-signaling.git
synced 2026-06-20 19:06:37 +03:00
709f4b586a
An epoll-driven, neutral transfer-event bus that connects sensors and input actuators to one or more controls, bidirectionally. It owns the transfer context and events — delivery order, priority, protocol-level timing, and an interrupt-driven event model over fd sources (eventfd/timerfd/sockets) — and stays agnostic to both the sensor/input drivers and the control. What lives here: - memctx: a coherent address-space context per endpoint — the guest address-space root paired with a pre-opened read-only RAM-region fd, with per-endpoint epoch invalidation and retained replay to late subscribers. Perception lives in out-of-tree sensor libraries that consume this datum read-only. - exclusive-ownership leases for destructive resource classes (input, power, memory-write). - write-signaled memory writes (MEMWRITE): an atomic write to guest memory routed through the seam under an exclusive lease, never a writable mapping. - a host-management seam for VM lifecycle/status and a neutral input-injection command path. - multi-VM endpoints; capability-gated, audited control authorization over an in-process or unix-socket transport. Builds against headers only by default (a stub mode that exercises the seam without a VM); armed builds link the real sensor/input libraries behind flags. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
22 lines
1.1 KiB
C
22 lines
1.1 KiB
C
#ifndef VMSIG_H
|
|
#define VMSIG_H
|
|
|
|
/* vmsig.h — umbrella header for the signaling layer of the SISC paradigm.
|
|
*
|
|
* vmsig binds the three SI repos (sensors vmie/vgpustream + input vmctl) to the control
|
|
* (algorithm OR human), bidirectionally translating transfer events. The layer itself
|
|
* contains NO sensing, actuation, or decision/behavioral-timing logic.
|
|
*
|
|
* Application wiring: create the context (vmsig_ctx_new) -> core (vmsig_core_new) ->
|
|
* register per-VM adapters (vmsig_core_add_adapter) and control
|
|
* (vmsig_core_add_control) -> vmsig_core_run. */
|
|
|
|
#include "vmsig_event.h" /* neutral transfer-event model + payload */
|
|
#include "vmsig_memctx.h" /* address-space context handoff contract (kcr3+locator) */
|
|
#include "vmsig_ctx.h" /* transfer context: priority/seq/protocol timing */
|
|
#include "vmsig_adapter.h" /* unified SI adapter interface + factories */
|
|
#include "vmsig_control.h" /* control-agnostic seam + reference in-proc */
|
|
#include "vmsig_core.h" /* epoll core */
|
|
|
|
#endif /* VMSIG_H */
|