sco.ipc
Methods and entrypoints for sco.ipc.
sco_ipc_v1
Section titled “sco_ipc_v1”Source: sco_ipc.h, implementation, layout pin.
Channels are restricted to the caller’s namespace. New Windows mappings receive a DACL granting access only to the current user. Reused mappings are checked for current-user ownership and sufficient size, not their existing DACL; current-user-only access is therefore not guaranteed on reuse. Bounds: 16 channels/plugin, 32 rings/channel, 4 KiB–256 MiB/channel, 512 MiB total per plugin. Offsets exclude the first 64 header bytes; blocks align to 8 bytes, rings to 64; ring data capacity is power-of-two, at least 64. Peer data is untrusted. Wire FULL/TOO_SMALL map to TOO_MANY; EMPTY/NOT_READY to NOT_FOUND; BAD_ARG/MISMATCH to BAD_ARG; corrupt/epoch/busy/gone cases to FAILED. The header says copy operations never block; the implementation still takes mutexes and allocates staging buffers, so no lock-free or bounded-latency guarantee is established. View access/close synchronization is the caller’s responsibility; its precise concurrency contract is unspecified. See IPC.