> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/holoscan/sensor-bridge/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/holoscan/sensor-bridge/_mcp/server.

# hololink::emulation::get_or_create_dp_registers

> Look up (or lazily create) the DPRegisters slice for data_plane_id, growing ctxt.dp_registers_cache as needed so that ctxt.dp_registers_cache[data_plane_id] is the live slot.

```cpp showLineNumbers={false}
DPRegisters * hololink::emulation::get_or_create_dp_registers(
    LinuxHSBEmulatorCtxt &ctxt,
    uint8_t data_plane_id
)
```

Look up (or lazily create) the [DPRegisters](../structs/dpregisters) slice for data\_plane\_id, growing ctxt.dp\_registers\_cache as needed so that ctxt.dp\_registers\_cache\[data\_plane\_id] is the live slot.

Calling with the same data\_plane\_id returns the same pointer.

Free function (not a class method) so the public [HSBEmulator](../classes/hsbemulator) interface stays unchanged. Not thread-safe; [DataPlane](../classes/dataplane) construction is expected to be single-threaded.