L4Re - L4 Runtime Environment
L4::Ipc_gate Class Reference

The C++ IPC gate interface. More...

+ Inheritance diagram for L4::Ipc_gate:
+ Collaboration diagram for L4::Ipc_gate:

Public Member Functions

l4_msgtag_t get_infos (l4_umword_t *label)
 Get information about the IPC-gate. More...
 
- Public Member Functions inherited from L4::Rcv_endpoint
l4_msgtag_t bind_thread (Ipc::Opt< Ipc::Cap< Thread > > t, l4_umword_t label)
 Bind a thread to an IPC receive endpoint. More...
 
- Public Member Functions inherited from L4::Kobject
l4_msgtag_t dec_refcnt (l4_mword_t diff, l4_utcb_t *utcb=l4_utcb())
 Decrement the in kernel reference counter for the object. More...
 

Additional Inherited Members

- Protected Types inherited from L4::Kobject_t< Ipc_gate, Rcv_endpoint, L4_PROTO_KOBJECT, Type_info::Demand_t< 1 > >
typedef Ipc_gate Class
 The target interface type (inheriting from Kobject_t)
 
typedef Typeid::Iface< PROTO, Ipc_gate__Iface
 The interface description for the derived class.
 
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename Rcv_endpoint ::__Iface_list > __Iface_list
 The list of all RPC interfaces provided directly or through inheritance.
 
- Protected Types inherited from L4::Kobject_t< Rcv_endpoint, Kobject, L4_PROTO_KOBJECT, Type_info::Demand_t< 1 > >
typedef Rcv_endpoint Class
 The target interface type (inheriting from Kobject_t)
 
typedef Typeid::Iface< PROTO, Rcv_endpoint__Iface
 The interface description for the derived class.
 
typedef Typeid::Merge_list< Typeid::Iface_list< __Iface >, typename Kobject ::__Iface_list > __Iface_list
 The list of all RPC interfaces provided directly or through inheritance.
 
- Protected Member Functions inherited from L4::Kobject_t< Ipc_gate, Rcv_endpoint, L4_PROTO_KOBJECT, Type_info::Demand_t< 1 > >
L4::Cap< Classc () const
 Get the capability to ourselves.
 
- Protected Member Functions inherited from L4::Kobject_t< Rcv_endpoint, Kobject, L4_PROTO_KOBJECT, Type_info::Demand_t< 1 > >
L4::Cap< Classc () const
 Get the capability to ourselves.
 
- Protected Member Functions inherited from L4::Kobject
l4_cap_idx_t cap () const throw ()
 Return capability selector. More...
 
- Static Protected Member Functions inherited from L4::Kobject_t< Ipc_gate, Rcv_endpoint, L4_PROTO_KOBJECT, Type_info::Demand_t< 1 > >
static void __check_protocols__ ()
 Helper to check for protocol conflicts.
 
- Static Protected Member Functions inherited from L4::Kobject_t< Rcv_endpoint, Kobject, L4_PROTO_KOBJECT, Type_info::Demand_t< 1 > >
static void __check_protocols__ ()
 Helper to check for protocol conflicts.
 

Detailed Description

The C++ IPC gate interface.

IPC gates are used to create secure communication channels between protection domains. An IPC gate can be created using the L4::Factory interface. L4::Ipc_gate::bind_thread() binds an L4::Thread as the receiver of all messages to an IPC gate.

The 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 two least significant bits of the label are ORed with the L4_CAP_FPAGE_S and L4_CAP_FPAGE_W bits stored in the capability when transfered to the receiver. This means the label should usually have its two least significant bits set to zero. The label is only visible in the L4::Task which is running the thread the IPC gate was bound to and cannot be altered by the sender.

Include File
#include <l4/sys/ipc_gate>

For the C interface refer to the C IPC-Gate API.

Definition at line 56 of file ipc_gate.

Member Function Documentation

◆ get_infos()

l4_msgtag_t L4::Ipc_gate::get_infos ( l4_umword_t label)

Get information about the IPC-gate.

Parameters
[out]labelThe label of the IPC gate is returned here.
Returns
System call return tag.

The documentation for this class was generated from the following file: