seL4SharedDataWithCaps is a CAmkES connector for connecting dataport interfaces, where one side of the interface has caps to the frames backing the dataport. This is different from the common dataport connector seL4SharedData, in which neither side has caps to the frames. seL4SharedData is used in the CAmkES VM to implement Cross VM Dataports, which require the VMM to map memory backing a dataport into the VM’s address space - an operation which requires caps to the frames.

The templates and connector definition for seL4SharedDataWithCaps is in global-components.

For an example of this connector in action, see the CAmkES VM.


Connect a pair of dataport interfaces, as with seL4SharedData. The to component instance on the side of the connection will have caps to the dataport frames in its cspace. The connector implements the following interface, which provides access to the caps mapping the dataport: dataport_caps.h.

The interface on the to side of each seL4SharedDataWithCaps connection must be configured with a unique id and size:

<instance>.<interface>_id = <unique integer >= 1>;
<instance>.<interface>_size = <integer size>;

Specifying a non-unique or non-positive id is an error. Specifying a size other than the size of the type of the dataport is an error. Omitting this configuration for an interface connected with seL4SharedDataWithCaps is an error.