L4Re - L4 Runtime Environment
|
Dataspace server class. More...
Public Member Functions | |
int | map (l4_addr_t offset, l4_addr_t local_addr, unsigned long flags, l4_addr_t min_addr, l4_addr_t max_addr, L4::Ipc::Snd_fpage &memory) |
Map a region of the dataspace. More... | |
virtual int | map_hook (l4_addr_t offs, unsigned long flags, l4_addr_t min, l4_addr_t max) |
A hook that is called as the first operation in each map request. More... | |
virtual int | phys (l4_addr_t offset, l4_addr_t &phys_addr, l4_size_t &phys_size) throw () |
Return physical address for a virtual address. More... | |
virtual void | take () throw () |
Take a reference to this dataspace. More... | |
virtual unsigned long | release () throw () |
Release a reference to this dataspace. More... | |
virtual long | copy (l4_addr_t dst_offs, l4_umword_t src_id, l4_addr_t src_offs, unsigned long size) throw () |
Copy from src dataspace to this destination dataspace. More... | |
virtual long | clear (unsigned long offs, unsigned long size) const throw () |
Clear a region in the dataspace. More... | |
virtual long | allocate (l4_addr_t offset, l4_size_t size, unsigned access) throw () |
Allocate a region within a dataspace. More... | |
virtual unsigned long | page_shift () const throw () |
Define the size of the flexpage to map. More... | |
virtual bool | is_static () const throw () |
Return whether the dataspace is static. More... | |
Dataspace server class.
The default implementation of the interface provides a continuously mapped dataspace.
Definition at line 40 of file dataspace_svr.
|
inlinevirtual |
Allocate a region within a dataspace.
offset | Offset in the dataspace, in bytes. |
size | Size of the range, in bytes. |
access | Access mode with which the memory backing the dataspace region should be allocated. |
0 | Success |
<0 | Error |
Definition at line 168 of file dataspace_svr.
References L4_ENODEV.
Referenced by is_static().
|
virtual |
Clear a region in the dataspace.
offs | Start of the region |
size | Size of the region |
0 | Success |
<0 | Error |
Referenced by copy(), and is_static().
|
inlinevirtual |
Copy from src dataspace to this destination dataspace.
dst_offs | Offset into the destination dataspace |
src_id | Local id of the source dataspace |
src_offs | Offset into the source dataspace |
size | Number of bytes to copy |
>=0 | Number of bytes copied |
<0 | An error occured. The error code may depend on the implementation. |
Definition at line 139 of file dataspace_svr.
References clear(), and L4_ENODEV.
Referenced by is_static().
|
inlinevirtual |
Return whether the dataspace is static.
Definition at line 184 of file dataspace_svr.
References allocate(), clear(), copy(), L4::Ipc::Gen_fpage< T >::data(), L4Re::Dataspace::Stats::flags, L4::Ipc::Gen_fpage< T >::id_received(), L4_CAP_FPAGE_W, L4_EACCESS, L4_EINVAL, L4_EOK, L4_EPERM, l4_round_size(), map(), page_shift(), phys(), release(), L4Re::Dataspace::Stats::size, and take().
int L4Re::Util::Dataspace_svr::map | ( | l4_addr_t | offset, |
l4_addr_t | local_addr, | ||
unsigned long | flags, | ||
l4_addr_t | min_addr, | ||
l4_addr_t | max_addr, | ||
L4::Ipc::Snd_fpage & | memory | ||
) |
Map a region of the dataspace.
offset | Offset to start within data space | |
local_addr | Local address to map to. | |
flags | Map flags, see L4Re::Dataspace::Map_flags. | |
min_addr | Defines start of receive window. | |
max_addr | Defines end of receive window. | |
[out] | memory | Send fpage to map |
0 | Success |
<0 | Error |
Referenced by is_static().
|
inlinevirtual |
A hook that is called as the first operation in each map request.
offs | Offs param to map |
flags | Flags param to map |
min | Min param to map |
max | Max param to map |
<0 | Error and the map request will be aborted with that error. |
>=0 | Success |
Definition at line 90 of file dataspace_svr.
References phys().
|
inlinevirtual |
Define the size of the flexpage to map.
Definition at line 176 of file dataspace_svr.
References L4_LOG2_PAGESIZE.
Referenced by is_static().
|
virtual |
Return physical address for a virtual address.
offset | Offset into the dataspace | |
[out] | phys_addr | Physical address |
[out] | phys_size | Size of continious physical region |
0 | Success |
<0 | Error |
Referenced by is_static(), and map_hook().
|
inlinevirtual |
Release a reference to this dataspace.
Default does nothing and returns always zero.
Definition at line 124 of file dataspace_svr.
Referenced by is_static().
|
inlinevirtual |
Take a reference to this dataspace.
Default does nothing.
Definition at line 114 of file dataspace_svr.
Referenced by is_static().