|
L4Re - L4 Runtime Environment
|
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< Class > | c () 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< Class > | c () 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. | |
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 transferred 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.
For the C interface refer to the C IPC-Gate API.
| l4_msgtag_t L4::Ipc_gate::get_infos | ( | l4_umword_t * | label | ) |
Get information about the IPC-gate.
| [out] | label | The label of the IPC gate is returned here. |