L4Re - L4 Runtime Environment
ipc_gate.h File Reference

The C IPC gate interface. More...

#include <l4/sys/utcb.h>
#include <l4/sys/types.h>
#include <l4/sys/rcv_endpoint.h>
#include <l4/sys/ipc.h>
+ Include dependency graph for ipc_gate.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


enum  L4_ipc_gate_ops { L4_IPC_GATE_BIND_OP = 0x10, L4_IPC_GATE_GET_INFO_OP = 0x11 }
 Operations on the IPC-gate. More...


l4_msgtag_t l4_ipc_gate_bind_thread (l4_cap_idx_t gate, l4_cap_idx_t thread, l4_umword_t label)
 Bind the IPC gate to a thread. More...
l4_msgtag_t l4_ipc_gate_get_infos (l4_cap_idx_t gate, l4_umword_t *label)
 Get information about the IPC-gate. More...

Detailed Description

The C IPC gate interface.

IPC gates are used to create secure communication channels between threads. An IPC gate object can be created using the Factory interface. With l4_ipc_gate_bind_thread() a thread is bound to an IPC gate which then receives all messages sent to that IPC gate.

The l4_ipc_gate_bind_thread() call allows to assign each IPC gate a kernel protected, machine-word sized payload called a label. It securely identifies the gate. The lower two bits of the label can be used to encode rights bits. The kernel combines these bits with the capability rights, so a programmer usually should not pick the lower two bits for the label. The label is only visible in the task which is running the thread the IPC gate was bound to and cannot be altered by the sender.

Definition in file ipc_gate.h.