L4Re Operating System Framework
Interface and Usage Documentation
|
Interface for kernel objects that allow to receive IPC from them. More...
#include <rcv_endpoint>
Public Member Functions | |
l4_msgtag_t | bind_thread (Ipc::Cap< Thread > t, l4_umword_t label) |
Bind a thread to an IPC receive endpoint. | |
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. | |
Additional Inherited Members | |
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 Base::__Iface_list > | __Iface_list |
The list of all RPC interfaces provided directly or through inheritance. | |
Protected Member Functions inherited from L4::Kobject_t< Rcv_endpoint, Kobject, L4_PROTO_KOBJECT, Type_info::Demand_t< 1 > > | |
L4::Cap< Class > | c () const noexcept |
Get the capability to ourselves. | |
Protected Member Functions inherited from L4::Kobject | |
l4_cap_idx_t | cap () const noexcept |
Return capability selector. | |
Static Protected Member Functions inherited from L4::Kobject_t< Rcv_endpoint, Kobject, L4_PROTO_KOBJECT, Type_info::Demand_t< 1 > > | |
static void | __check_protocols__ () noexcept |
Helper to check for protocol conflicts. | |
Interface for kernel objects that allow to receive IPC from them.
Such an object is for example an Ipc_gate (with server rights) or an Irq. Those objects allow to bind a thread that shall receive IPC from these object via bind_thread().
Definition at line 40 of file rcv_endpoint.
l4_msgtag_t L4::Rcv_endpoint::bind_thread | ( | Ipc::Cap< Thread > | t, |
l4_umword_t | label | ||
) |
Bind a thread to an IPC receive endpoint.
t | Thread object that shall be bound to this receive endpoint. |
label | Label to assign to this receive endpoint. The two least significant bits should usually be set to zero. |
L4_EOK | Operation successful. |
-L4_EINVAL | t is not a thread object or other arguments were malformed. |
-L4_EPERM | No L4_CAP_FPAGE_S right on t or the capability used to invoke this operation. |
The specified label
is passed to the receiver of the incoming IPC. It is possible to re-bind a receive endpoint to the same or a different thread. In this case, IPC already in flight will be delivered with the old label to the previously bound thread unless L4::Thread::modify_senders() is used to change these labels.