Loading...
Searching...
No Matches
L4Re::Util::Br_manager Class Reference
L4Re C++ Interface » L4Re Util C++ Interface

Buffer-register (BR) manager for L4::Server. More...

`#include <br_manager>`

Inheritance diagram for L4Re::Util::Br_manager:
Collaboration diagram for L4Re::Util::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.

## Detailed Description

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 25 of file br_manager.

## Member Function Documentation

## alloc_buffer_demand()

int L4Re::Util::Br_manager::alloc_buffer_demand | ( | Demand const & | demand | ) |

inlineoverridevirtual

Tells the server to allocate buffers for the given demand.

Parameters

  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 54 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.

Here is the call graph for this function:

## get_rcv_cap()

L4::Cap< void > L4Re::Util::Br_manager::get_rcv_cap | ( | int | index | ) | const

inlineoverridevirtual

Get capability slot allocated to the given receive buffer.

Parameters

  index | The receive buffer index of the expected capability argument (0 <= `index` < `caps` registered with alloc_buffer_demand()).

Precondition
  0 <= `index` < `caps` registered with alloc_buffer_demand()

Returns
  Capability slot currently allocated to the given receive buffer.

Implements L4::Ipc_svr::Server_iface.

Definition at line 86 of file br_manager.

References L4::Cap_base::Invalid, and L4_CAP_MASK.

## realloc_rcv_cap()

int L4Re::Util::Br_manager::realloc_rcv_cap | ( | int | index | ) |

inlineoverridevirtual

Allocate a new capability for the given receive buffer.

Parameters

  index | The receive buffer index of the expected capability argument (0 <= `index` < `caps` registered with alloc_buffer_demand()).

Precondition
  0 <= `index` < `caps` registered with alloc_buffer_demand()

Returns
  0 on success, < 0 on error.

Implements L4::Ipc_svr::Server_iface.

Definition at line 94 of file br_manager.

References L4::Cap_base::cap(), L4Re::Util::cap_alloc, L4_EINVAL, L4_ENOMEM, and L4_EOK.

Here is the call graph for this function:

## set_rcv_cap_flags()

void L4Re::Util::Br_manager::set_rcv_cap_flags | ( | unsigned long | flags | ) |

inline

Set the receive flags for the buffers.

Precondition
  Must be called before any handlers are registered.

Parameters

  flags | New receive capability flags, see l4_msg_item_consts_t.

Definition at line 118 of file br_manager.

References l4_assert.

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

- l4/re/util/br_manager