L4Re - L4 Runtime Environment
L4::Epiface_t< Derived, IFACE, BASE, bool > Struct Template Reference

Epiface implementation for Kobject-based interface implementations. More...

+ Inheritance diagram for L4::Epiface_t< Derived, IFACE, BASE, bool >:
+ Collaboration diagram for L4::Epiface_t< Derived, IFACE, BASE, bool >:

Public Member Functions

l4_msgtag_t dispatch (l4_msgtag_t tag, unsigned rights, l4_utcb_t *utcb) final
 The abstract handler for client requests to the object. More...
 
- Public Member Functions inherited from L4::Epiface_t0< IFACE, L4::Epiface >
Type_info::Demand get_buffer_demand () const
 Get the server-side buffer demand based in IFACE.
 
Cap< IFACE > obj_cap () const
 Get the (typed) capability to this object. More...
 
- Public Member Functions inherited from L4::Epiface
 Epiface ()
 Make a server object.
 
virtual Demand get_buffer_demand () const =0
 Get the server-side receive buffer demand for this object. More...
 
virtual ~Epiface ()=0
 Destroy the object.
 
Stored_cap obj_cap () const
 Get the capability to the kernel object belonging to this object. More...
 
Server_ifaceserver_iface () const
 Get pointer to server interface at which the object is currently registered. More...
 
int set_server (Server_iface *srv, Cap< void > cap, bool managed=false)
 Set server registration info for the object. More...
 
void set_obj_cap (Cap< void > const &cap)
 Deprecated server registration function.
 

Additional Inherited Members

- Public Types inherited from L4::Epiface_t0< IFACE, L4::Epiface >
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.
 

Detailed Description

template<typename Derived, typename IFACE, typename BASE = L4::Epiface, bool = cxx::is_polymorphic<BASE>::value>
struct L4::Epiface_t< Derived, IFACE, BASE, bool >

Epiface implementation for Kobject-based interface implementations.

Template Parameters
DerivedClass providing the interface implementations.
BASEEpiface base class.
Examples
examples/clntsrv/server.cc.

Definition at line 515 of file ipc_epiface.

Member Function Documentation

◆ dispatch()

template<typename Derived , typename IFACE , typename BASE = L4::Epiface, bool = cxx::is_polymorphic<BASE>::value>
l4_msgtag_t L4::Epiface_t< Derived, IFACE, BASE, bool >::dispatch ( l4_msgtag_t  tag,
unsigned  rights,
l4_utcb_t utcb 
)
inlinefinalvirtual

The abstract handler for client requests to the object.

Parameters
tagThe message tag for this invocation.
rightsThe rights bits in the invoked capability.
utcbThe UTCB used for the invocation.
Return values
-L4_ENOREPLYNo reply message is send.
<0Error, reply with error code.
>=0Success, reply with return value.

This function must be implemented by application specific server objects.

Implements L4::Epiface.

Definition at line 518 of file ipc_epiface.


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