L4Re Operating System Framework
Interface and Usage Documentation
|
Unique region. More...
#include <rm>
Public Member Functions | |
Unique_region () noexcept | |
Construct an invalid Unique_region | |
Unique_region (T addr) noexcept | |
Construct a Unique_region from an address. | |
Unique_region (T addr, L4::Cap< Rm > const &rm) noexcept | |
Construct a valid Unique_region from an address and a region manager. | |
Unique_region (Unique_region &&o) noexcept | |
Move-Construct a Unique_region | |
Unique_region & | operator= (Unique_region &&o) noexcept |
Move-assign a Unique_region | |
~Unique_region () noexcept | |
Destructor. | |
T | get () const noexcept |
Return the address. | |
T | release () noexcept |
Return the address and invalidate the Unique_region | |
void | reset (T addr, L4::Cap< Rm > const &rm) noexcept |
Set new address and region manager. | |
void | reset () noexcept |
Make the Unique_region invalid. | |
bool | is_valid () const noexcept |
Check if the Unique_region is valid. | |
T | operator* () const noexcept |
Dereference the address. | |
T | operator-> () const noexcept |
Member access for the address. | |
Unique region.
Capture a single region with automatic detach on destruction and unique ownership. Stores the start address and the region-mapper capability internally. A unique region is valid precisely if the internal region-mapper capability is valid. The features for unique ownership and automatic detach are only active for valid unique regions.
|
inlineexplicitnoexcept |
|
inlinenoexcept |
Construct a valid Unique_region
from an address and a region manager.
addr | The address |
rm | The region manager |
|
inlinenoexcept |
Move-Construct a Unique_region
o | L-value reference to other region. |
|
inlinenoexcept |
Destructor.
If the region is valid, call detach
.
Definition at line 497 of file rm.
References L4::Cap_base::is_valid().
|
inlinenoexcept |
Return the address.
Definition at line 508 of file rm.
Referenced by L4virtio::Svr::Driver_mem_region_t< DATA >::Driver_mem_region_t(), L4virtio::Svr::Dev_config::hdr(), L4Re::Util::Event_t< PAYLOAD >::init(), L4Re::Util::Event_t< PAYLOAD >::init_poll(), L4virtio::Svr::Driver_mem_region_t< DATA >::local_base(), L4virtio::Svr::Dev_config::qconfig(), L4virtio::Driver::Virtio_net_device::setup_device(), and L4virtio::Driver::Block_device::setup_device().
|
inlinenoexcept |
Check if the Unique_region
is valid.
Unique_region
is valid Definition at line 548 of file rm.
References L4::Cap_base::is_valid().
|
inlinenoexcept |
Move-assign a Unique_region
o | L-value reference to region to assign from |
Definition at line 480 of file rm.
References L4::Cap_base::is_valid().
|
inlinenoexcept |
Return the address and invalidate the Unique_region
|
inlinenoexcept |
Set new address and region manager.
addr | The new address |
rm | The new region manager |
Definition at line 528 of file rm.
References L4::Cap_base::is_valid().