[common/idd] recovery: reserve IVSHMEM control region

Define a fixed, protocol-independent recovery ABI in the final 64 KiB
of IVSHMEM.

Provide crash-safe multi-client requests and coherent producer status.

Exclude the region from LGMP allocation and frame capacity so future
protocol mismatches retain a stable control path.
This commit is contained in:
Geoffrey McRae
2026-08-11 22:08:34 +10:00
parent 61a49ebaba
commit 9898e9bcec
5 changed files with 285 additions and 6 deletions

View File

@@ -119,7 +119,8 @@ bool CLGMPHost::Initialize(CIVSHMEM& ivshmem)
LGMP_STATUS status;
std::string udata = ss.str();
if ((status = lgmpHostInit(ivshmem.GetMem(), (uint32_t)ivshmem.GetSize(),
if ((status = lgmpHostInit(ivshmem.GetMem(),
(uint32_t)ivshmem.GetUsableSize(),
&m_host, (uint32_t)udata.size(), (uint8_t*)&udata[0])) != LGMP_OK)
{
DEBUG_ERROR("lgmpHostInit Failed: %s", lgmpStatusString(status));