L4Re Operating System Framework
Interface and Usage Documentation
|
Base class (template) for server implementing server objects. More...
#include <ipc_server>
Public Types | |
typedef IFACE | Interface |
Data type of the IPC interface definition. | |
Public Types inherited from L4::Epiface | |
typedef Ipc_svr::Server_iface | Server_iface |
Type for abstract server interface. | |
typedef Ipc_svr::Server_iface::Demand | Demand |
Type for server-side receive buffer demand. | |
Public Member Functions | |
BASE::Demand | get_buffer_demand () const override |
int | dispatch_meta_request (L4::Ipc::Iostream &ios) |
Implementation of the meta protocol based on IFACE. | |
Public Member Functions inherited from L4::Server_object | |
virtual int | dispatch (unsigned long rights, Ipc::Iostream &ios)=0 |
The abstract handler for client requests to the object. | |
l4_msgtag_t | dispatch (l4_msgtag_t tag, unsigned rights, l4_utcb_t *utcb) override |
The abstract handler for client requests to the object. | |
Public Member Functions inherited from L4::Epiface | |
Epiface () | |
Make a server object. | |
virtual | ~Epiface ()=0 |
Destroy the object. | |
Stored_cap | obj_cap () const |
Get the capability to the kernel object belonging to this object. | |
Server_iface * | server_iface () const |
Get pointer to server interface at which the object is currently registered. | |
int | set_server (Server_iface *srv, Cap< void > cap, bool managed=false) |
Set server registration info for the object. | |
void | set_obj_cap (Cap< void > const &cap) |
Deprecated server registration function. | |
Static Public Member Functions | |
template<typename THIS > | |
static int | proto_dispatch (THIS *self, l4_umword_t rights, L4::Ipc::Iostream &ios) |
Implementation of protocol-based dispatch for this server object. | |
Base class (template) for server implementing server objects.
IFACE | The IPC interface class that defines the interface that shall be implemented. |
BASE | The server object base class (usually L4::Server_object). |
Definition at line 91 of file ipc_server.
|
inline |
Implementation of the meta protocol based on IFACE.
ios | The IO stream used for receiving the message. |
This function can be used to handle incoming L4_PROTO_META protcol requests. The implementation uses the L4::Type_info of IFACE to handle the requests. Call this function in the implementation of Server_object::dispatch() when the received message tag has protocol L4_PROTO_META (L4::Meta::Protocol).
Definition at line 110 of file ipc_server.
|
inlineoverridevirtual |
Implements L4::Epiface.
Definition at line 97 of file ipc_server.
|
inlinestatic |
Implementation of protocol-based dispatch for this server object.
self | The this pointer for the object (inherits from Server_object_t). |
rights | The rights from the received IPC (forwarded to p_dispatch()). |
ios | The message stream for the incoming and the reply message. |
Server objects may call this function from their dispatch() function. This function reads the protocol ID from the message tag and uses the p_dispatch code to dispatch to overloaded p_dispatch functions of self.
Definition at line 125 of file ipc_server.
References l4_msgtag_t::label(), and L4::Kobject_typeid< T >::proto_dispatch().
Referenced by L4::Server_object_x< Derived, IFACE, BASE >::dispatch().