mirror of
https://dev.lirent.ru/Vatrog/vm-automation-signaling.git
synced 2026-06-26 04:36:37 +03:00
vmsig: a neutral signaling layer between sensors/input and controls
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.
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
#ifndef VMSIG_MEMCTX_CFG_H
|
||||
#define VMSIG_MEMCTX_CFG_H
|
||||
#include <stdint.h>
|
||||
|
||||
/* Private config of the memctx adapter (vmie). Passed as opaque to open(); NOT
|
||||
* public (layout per reference: src/<module>/include/). cfg==NULL => stub. */
|
||||
typedef struct {
|
||||
int stub; /* 1 => synthetic kcr3/RO-fd (spine without a VM) */
|
||||
const char* ram_path; /* armed: path to guest RAM backing (NOT published outward) */
|
||||
uint64_t low; /* below-4G split (vmie_win32_open / locator.low) */
|
||||
int ro_fd; /* >=0 => infra supplied a pre-sealed RO-fd (policy); */
|
||||
/* <0 => default: open(ram_path, O_RDONLY) / stub-memfd */
|
||||
} vmsig_memctx_cfg;
|
||||
|
||||
/* Max SRC bytes per atomic gva_write (bounds the worker POD slot; mc_req header + src
|
||||
* must stay <= VMSIG_WORK_SLOT). Private to the adapter (an executor bound), NOT part of
|
||||
* the neutral control contract — control only needs VMSIG_MEMWRITE_INLINE for inline SRC. */
|
||||
#define VMSIG_MEMWRITE_MAX 192u
|
||||
|
||||
#endif /* VMSIG_MEMCTX_CFG_H */
|
||||
Reference in New Issue
Block a user