L4Re Operating System Framework
Interface and Usage Documentation
|
Abstract interface for object registries. More...
#include <ipc_epiface>
Public Member Functions | |
virtual L4::Cap< void > | register_obj (L4::Epiface *o, char const *service)=0 |
Register an L4::Epiface for an IPC gate available in the applications environment under the name service . | |
virtual L4::Cap< void > | register_obj (L4::Epiface *o)=0 |
Register o as server-side object for synchronous RPC. | |
virtual L4::Cap< L4::Irq > | register_irq_obj (L4::Epiface *o)=0 |
Register o as server-side object for asynchronous IRQs. | |
virtual L4::Cap< L4::Rcv_endpoint > | register_obj (L4::Epiface *o, L4::Cap< L4::Rcv_endpoint > ep)=0 |
Register o as server-side object for a pre-allocated capability. | |
virtual void | unregister_obj (L4::Epiface *o, bool unmap=true)=0 |
Unregister the given object o from the server. | |
Abstract interface for object registries.
An object registry allows to register L4::Epiface objects at a server loop either for synchronous RPC messages or for asynchronous IRQ messages.
Definition at line 333 of file ipc_epiface.
|
pure virtual |
Register o
as server-side object for asynchronous IRQs.
o | Pointer to an Epiface object that shall be registered as server-side object for IRQs. |
L4::Cap<L4::Irq> | Capability to a new IRQ object on success. |
L4::Cap<L4::Irq>::Invalid | The allocation of the IRQ has failed. |
After successful registration o->obj_cap()
will be the capability of the allocated IRQ object.
The function may allocate a capability slot for the object. In that case unregister_obj() is responsible for freeing the slot as well.
Implemented in L4Re::Util::Object_registry.
|
pure virtual |
Register o
as server-side object for synchronous RPC.
o | Pointer to an Epiface object that shall be registered as server-side object for RPC. |
L4::Cap<void> | A valid capability to a new IPC gate. |
L4::Cap<void>::Invalid | The allocation of the IPC gate has failed. |
After successful registration o->obj_cap()
will be the capability of the allocated IPC gate.
The function may allocate a capability slot for the object. In that case unregister_obj() is responsible for freeing the slot as well.
Implemented in L4Re::Util::Object_registry.
|
pure virtual |
Register an L4::Epiface for an IPC gate available in the applications environment under the name service
.
o | Pointer to an Epiface object that shall be registered. |
service | Name of the capability that shall be used to connect o to as a server-side object. |
L4::Cap<void> | The capability known as service on success. |
L4::Cap<void>::Invalid | No capability with the given name found. |
After a successful call to this function o->obj_cap()
is equal to the capability in the environment with the name given by service
.
Implemented in L4Re::Util::Object_registry.
|
pure virtual |
Register o
as server-side object for a pre-allocated capability.
o | Pointer to an Epiface object that shall be registered as server-side object. |
ep | Capability to an already allocated capability where o shall be attached as server-side handler. The capability may point to an IPC gate or an IRQ. |
L4::Cap<L4::Rcv_endpoint> | Capability ep on success. |
L4::Cap<L4::Rcv_endpoint>::Invalid | The IRQ attach operation has failed. |
After successful registration o->obj_cap()
will be equal to ep
.
Implemented in L4Re::Util::Object_registry.
|
pure virtual |
Unregister the given object o
from the server.
o | Pointer to the Epiface object that shall be unregistered. The object must have been registered with any of the register methods if Registry_iface. |
unmap | If true the capability o->obj_cap() shall be unmapped from the local object space. |
The function always unmaps and frees the capability if it was allocated by either Registry_iface::register_irq_obj(L4::Epiface *), or by Registry_iface::register_obj(L4::Epiface *).
Implemented in L4Re::Util::Object_registry.