![]() |
L4Re Operating System Framework
Interface and Usage Documentation
|
List of driver memory regions assigned to a single L4-VIRTIO transport instance. More...
#include <l4virtio>
Public Types | |
| typedef L4Re::Util::Unique_cap< L4Re::Dataspace > | Ds_cap |
| type for storing a data-space capability internally | |
Public Member Functions | |
| Driver_mem_list_t () | |
| Make an empty, zero capacity list. | |
| void | init (unsigned max) |
| Make a fresh list with capacity max. | |
| bool | full () const |
| Mem_region const * | add (l4_uint64_t drv_base, l4_umword_t size, l4_addr_t offset, Ds_cap &&ds) |
| Add a new region to the list. | |
| void | remove (Mem_region const *r) |
| Remove the given region from the list. | |
| Mem_region * | find (l4_uint64_t base, l4_umword_t size) const |
| Find memory region containing the given driver address region. | |
| void | load_desc (Virtqueue::Desc const &desc, Request_processor const *p, Virtqueue::Desc const **table) const |
| Default implementation for loading an indirect descriptor. | |
| void | load_desc (Virtqueue::Desc const &desc, Request_processor const *p, Mem_region const **data) const |
| Default implementation returning the Driver_mem_region. | |
| template<typename ARG> | |
| void | load_desc (Virtqueue::Desc const &desc, Request_processor const *p, ARG *data) const |
| Default implementation returning generic information. | |
List of driver memory regions assigned to a single L4-VIRTIO transport instance.
|
inline |
|
inline |
Find memory region containing the given driver address region.
| base | Driver base address. |
| size | Size of the region. |
Definition at line 703 of file l4virtio.
Referenced by L4virtio::Svr::Driver_mem_list_t< No_custom_data >::load_desc(), L4virtio::Svr::Driver_mem_list_t< No_custom_data >::load_desc(), and L4virtio::Svr::Driver_mem_list_t< No_custom_data >::load_desc().
|
inline |
Definition at line 658 of file l4virtio.
Referenced by L4virtio::Svr::Driver_mem_list_t< No_custom_data >::add().
|
inline |
|
inline |
Default implementation returning generic information.
| ARG | Abstract argument type used with Request_processor::start() and Request_processor::next() to deliver the result of loading a descriptor. This type must provide a constructor taking three arguments: (1) pointer to a Driver_mem_region, (2) the Virtqueue::Desc descriptor, and (3) a pointer to the calling Request_processor. |
| desc | The descriptor to load | |
| p | The request processor calling us | |
| [out] | data | Shall be assigned to ARG(mem, desc, p) |
| Bad_descriptor | The descriptor address could not be translated. |
|
inline |
Default implementation returning the Driver_mem_region.
| desc | The descriptor to load | |
| p | The request processor calling us | |
| [out] | data | Shall be set to a pointer to the Driver_mem_region that covers the descriptor. |
| Bad_descriptor | The descriptor address could not be translated. |
|
inline |
Default implementation for loading an indirect descriptor.
| desc | The descriptor to load | |
| p | The request processor calling us | |
| [out] | table | Shall be set to the loaded descriptor table |
| Bad_descriptor | The descriptor address could not be translated. |
|
inline |