L4Re Operating System Framework
Interface and Usage Documentation
|
Base class for interface implementations. More...
#include <ipc_epiface>
Public Types | |
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 | |
Epiface () | |
Make a server object. | |
virtual l4_msgtag_t | dispatch (l4_msgtag_t tag, unsigned rights, l4_utcb_t *utcb)=0 |
The abstract handler for client requests to the object. | |
virtual Demand | get_buffer_demand () const =0 |
Get the server-side receive buffer demand for this 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. | |
Base class for interface implementations.
An Epiface is the base interface of objects registered in the server loop. Incomming IPC gets dispatched to the appropriate Epiface object where the call is then handled appropriately.
Definition at line 156 of file ipc_epiface.
|
pure virtual |
The abstract handler for client requests to the object.
tag | The message tag for this invocation. |
rights | The rights bits in the invoked capability. |
utcb | The UTCB used for the invocation. |
-L4_ENOREPLY | No reply message is send. |
<0 | Error, reply with error code. |
>=0 | Success, reply with return value. |
This function must be implemented by application specific server objects.
Implemented in L4::Epiface_t< Block_dev< Ds_data >, L4virtio::Device >, L4::Epiface_t< Null_handler, L4::Kobject >, L4::Epiface_t< Virtio_client< DEV >, L4virtio::Device >, L4::Epiface_t< Derived, IFACE, BASE, bool >, L4::Server_object, L4::Irqep_t< Host_irq >, L4::Irqep_t< Irq_object >, and L4::Irqep_t< Derived, BASE, bool >.
Referenced by L4::Basic_registry::dispatch().
|
pure virtual |
Get the server-side receive buffer demand for this object.
Implemented in L4::Epiface_t0< IFACE, L4::Epiface >, L4::Epiface_t0< L4::Kobject, L4::Epiface >, L4::Epiface_t0< L4virtio::Device, L4::Epiface >, L4::Epiface_t0< void, Epiface >, L4::Epiface_t0< RPC_IFACE, BASE >, L4::Server_object_t< IFACE, BASE >, L4::Server_object_t< IFACE, L4::Server_object >, and L4::Server_object_t< Kobject >.
|
inline |
Get the capability to the kernel object belonging to this object.
This is usually either an Ipc_gate or an Irq.
Definition at line 217 of file ipc_epiface.
Referenced by L4Re::Util::Object_registry::unregister_obj().
|
inline |
Get pointer to server interface at which the object is currently registered.
Definition at line 224 of file ipc_epiface.
|
inline |
Set server registration info for the object.
srv | The server to register at |
cap | The capability that connects the object. |
managed | Mark the capability as managed or unmanaged. Typical server implementations use this flag to remember whether the capability was internally allocated or not. |
Definition at line 235 of file ipc_epiface.
References L4_EINVAL.
Referenced by L4Re::Util::Object_registry::unregister_obj().