![]() |
L4Re Operating System Framework
Interface and Usage Documentation
|
Interface for server-loop related functions. More...
#include <ipc_epiface>
Public Types | |
| typedef L4::Type_info::Demand | Demand |
| Data type expressing server-side demand for receive buffers. | |
Public Member Functions | |
| Server_iface () | |
| Make a server interface. | |
| virtual int | alloc_buffer_demand (Demand const &demand)=0 |
| Tells the server to allocate buffers for the given demand. | |
| virtual L4::Cap< void > | get_rcv_cap (int index) const =0 |
| Get capability slot allocated to the given receive buffer. | |
| virtual int | realloc_rcv_cap (int index)=0 |
| Allocate a new capability for the given receive buffer. | |
| virtual int | add_timeout (Timeout *timeout, l4_kernel_clock_t time)=0 |
| Add a timeout to the server internal timeout queue. | |
| virtual int | remove_timeout (Timeout *timeout)=0 |
| Remove the given timeout from the timer queue. | |
| template<typename T> | |
| L4::Cap< T > | rcv_cap (int index) const |
| Get given receive buffer as typed capability. | |
| L4::Cap< void > | rcv_cap (int index) const |
| Get receive cap with the given index as generic (void) type. | |
Interface for server-loop related functions.
This interface provides access to high-level server-loop related functions, such as management of receive buffers and timeouts.
Definition at line 36 of file ipc_epiface.
|
pure virtual |
Add a timeout to the server internal timeout queue.
| timeout | The timeout object to register. |
| time | The time (absolute) at which the timeout shall expire. |
Implemented in L4::Ipc_svr::Br_manager_no_buffers, L4::Ipc_svr::Timeout_queue_hooks< HOOKS, BR_MAN >, L4::Ipc_svr::Timeout_queue_hooks< Br_manager_timeout_hooks, Br_manager >, L4::Ipc_svr::Timeout_queue_hooks< Loop_hooks, L4Re::Util::Br_manager >, and L4Re::Util::Br_manager.
|
pure virtual |
Tells the server to allocate buffers for the given demand.
| demand | The total server-side demand of receive buffers needed for a given interface, see Demand. |
This function is not called by user applications directly. Usually the server implementation or the registry implementation calls this function whenever a new object is registered at the server.
Implemented in L4::Ipc_svr::Br_manager_no_buffers, and L4Re::Util::Br_manager.
|
pure virtual |
Get capability slot allocated to the given receive buffer.
| index | The receive buffer index of the expected capability argument (0 <= index < caps registered with alloc_buffer_demand()). |
index < caps registered with alloc_buffer_demand() Implemented in L4::Ipc_svr::Br_manager_no_buffers, and L4Re::Util::Br_manager.
Referenced by rcv_cap().
|
inline |
Get receive cap with the given index as generic (void) type.
| index | The index of the cap receive buffer of the expected capability. (0 <= index < caps registered with alloc_buffer_demand().) |
Definition at line 126 of file ipc_epiface.
References get_rcv_cap().
|
inline |
Get given receive buffer as typed capability.
| index | The receive buffer index of the expected capability argument. (0 <= index < caps registered with alloc_buffer_demand().) |
index < caps registered with alloc_buffer_demand() Definition at line 114 of file ipc_epiface.
References L4::cap_cast(), and get_rcv_cap().
|
pure virtual |
Allocate a new capability for the given receive buffer.
| index | The receive buffer index of the expected capability argument (0 <= index < caps registered with alloc_buffer_demand()). |
index < caps registered with alloc_buffer_demand() Implemented in L4::Ipc_svr::Br_manager_no_buffers, and L4Re::Util::Br_manager.
|
pure virtual |
Remove the given timeout from the timer queue.
| timeout | The timout object to remove. |
Implemented in L4::Ipc_svr::Br_manager_no_buffers, L4::Ipc_svr::Timeout_queue_hooks< HOOKS, BR_MAN >, L4::Ipc_svr::Timeout_queue_hooks< Br_manager_timeout_hooks, Br_manager >, L4::Ipc_svr::Timeout_queue_hooks< Loop_hooks, L4Re::Util::Br_manager >, and L4Re::Util::Br_manager.