L4Re Operating System Framework
Interface and Usage Documentation
|
Buffer-register (BR) manager for L4::Server. More...
#include <br_manager>
Public Member Functions | |
Br_manager () | |
Make a buffer-register (BR) manager. | |
int | alloc_buffer_demand (Demand const &d) override |
Tells the server to allocate buffers for the given demand. | |
L4::Cap< void > | get_rcv_cap (int i) const override |
Get capability slot allocated to the given receive buffer. | |
int | realloc_rcv_cap (int i) override |
Allocate a new capability for the given receive buffer. | |
void | set_rcv_cap_flags (unsigned long flags) |
Set the receive flags for the buffers. | |
int | add_timeout (L4::Ipc_svr::Timeout *, l4_kernel_clock_t) override |
No timeouts handled by us. | |
int | remove_timeout (L4::Ipc_svr::Timeout *) override |
No timeouts handled by us. | |
void | setup_wait (l4_utcb_t *utcb, L4::Ipc_svr::Reply_mode) |
setup_wait() used the server loop (L4::Server) | |
Public Member Functions inherited from L4::Ipc_svr::Server_iface | |
Server_iface () | |
Make a server interface. | |
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. | |
Protected Member Functions | |
unsigned | first_free_br () const |
Used for assigning BRs for a timeout. | |
Additional Inherited Members | |
Public Types inherited from L4::Ipc_svr::Server_iface | |
typedef L4::Type_info::Demand | Demand |
Data type expressing server-side demand for receive buffers. | |
Buffer-register (BR) manager for L4::Server.
Implementation of the L4::Ipc_svr::Server_iface API for managing the server-side receive buffers needed for a set of server objects running within a server.
Definition at line 36 of file br_manager.
|
inlineoverridevirtual |
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.
Implements L4::Ipc_svr::Server_iface.
Definition at line 65 of file br_manager.
References L4::Cap_base::cap(), L4Re::Util::cap_alloc, L4::Type_info::Demand::caps, L4_EINVAL, L4_ENOMEM, L4_EOK, L4_ERANGE, L4::Type_info::Demand::mem, and L4::Type_info::Demand::ports.
|
inlineoverridevirtual |
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() Implements L4::Ipc_svr::Server_iface.
Definition at line 97 of file br_manager.
References L4_CAP_MASK.
|
inlineoverridevirtual |
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() Implements L4::Ipc_svr::Server_iface.
Definition at line 105 of file br_manager.
References L4::Cap_base::cap(), L4Re::Util::cap_alloc, L4_EINVAL, L4_ENOMEM, and L4_EOK.
|
inline |
Set the receive flags for the buffers.
flags | New receive capability flags, see l4_msg_item_consts_t. |
Definition at line 129 of file br_manager.
References l4_assert.