19#include <l4/bid_config.h>
51 public L4::Kobject_t<Dataspace, L4::Kobject, L4RE_PROTO_DATASPACE,
52 L4::Type_info::Demand_t<1> >
102 friend void enum_bitops_enable(Flags);
110 explicit constexpr Flags(
unsigned long f) : raw(f) {}
111 constexpr Flags(F::Flags f) : raw(f) {}
113 constexpr bool r()
const {
return raw &
L4_FPAGE_RO; }
114 constexpr bool w()
const {
return raw &
L4_FPAGE_W; }
115 constexpr bool x()
const {
return raw &
L4_FPAGE_X; }
117 constexpr unsigned long fpage_rights()
const
118 {
return raw & 0xf; }
158 long map(Offset offset, Flags
flags, Map_addr local_addr,
159 Map_addr min_addr, Map_addr max_addr,
190 Map_addr min_addr, Map_addr max_addr,
259 Size
size() const noexcept;
269 Flags
flags() const noexcept;
282 Flags
flags,
L4::Ipc::Rcv_fpage r,
283 L4::Ipc::Snd_fpage &fp));
315 long __map(Offset offset,
unsigned char *order, Flags flags,
320 allocate_t, map_info_t> Rpcs;
L4::Cap related definitions.
Interface for memory-like objects.
long map(Offset offset, Flags flags, Map_addr local_addr, Map_addr min_addr, Map_addr max_addr, L4::Cap< L4::Task > dst=L4::Cap< L4::Task >::Invalid) const noexcept
Request a flexpage mapping from the dataspace.
long copy_in(Offset dst_offs, L4::Ipc::Cap< Dataspace > src, Offset src_offs, Size size)
Copy contents from another dataspace.
long map_region(Offset offset, Flags flags, Map_addr min_addr, Map_addr max_addr, L4::Cap< L4::Task > dst=L4::Cap< L4::Task >::Invalid) const noexcept
Map a part of a dataspace into a local memory area.
long info(Stats *stats)
Get information on the dataspace.
long map_info(l4_addr_t *start_addr, l4_addr_t *end_addr)
Get mapping range of dataspace.
Size size() const noexcept
Get size of a dataspace.
long clear(Offset offset, Size size)
Clear parts of a dataspace.
long allocate(Offset offset, Size size)
Allocate a range in the dataspace.
Flags flags() const noexcept
Get flags of the dataspace.
@ Invalid
Invalid capability selector.
C++ interface for capabilities.
Capability type for RPC interfaces (see L4::Cap<T>).
Helper class to create an L4Re interface class that is derived from a single base class.
unsigned long l4_addr_t
Address type.
unsigned long long l4_uint64_t
Unsigned 64bit value.
@ L4_FPAGE_X
Executable flexpage.
@ L4_FPAGE_RWX
Read-write-execute flexpage.
@ L4_FPAGE_RX
Read-execute flexpage.
@ L4_FPAGE_RO
Read-only flexpage.
@ L4_FPAGE_RW
Read-write flexpage.
@ L4_FPAGE_W
Writable flexpage.
#define L4_EXPORT
Attribute to mark functions, variables, and data types as being exported from a library.
Interface Definition Language.
#define L4_RPC(res, name, args, attr...)
Define an RPC call (type and callable).
#define L4_RPC_NF(res, name, args...)
Define an RPC call type (the type only, no callable).
Fixed sized integer types, generic version.
Common L4 ABI Data Types.
L4 low-level kernel interface.
L4Re Protocol Constants (C version).
Dataspace flags definitions.
@ Caching_shift
shift value for caching flags
Flags
Flags for map operations.
@ Ro
Request read-only mapping.
@ Uncacheable
Request uncacheable memory mappings.
@ RW
Request read-write mapping.
@ Normal
Request normal (cached) memory mapping.
@ Caching_mask
Mask for caching flags.
@ X
Request execute-only mapping.
@ Cacheable
Request normal memory mapping.
@ R
Request read-only mapping.
@ RWX
Request read-write-execute mapping.
@ W
Request write-only mapping.
@ Bufferable
Request bufferable (write buffered) mappings.
@ Rights_mask
All rights bits available for mappings.
@ RX
Request read-execute mapping.
Information about the dataspace.
Standard list of RPCs of an interface.
Mixin class to define a set of friend bitwise operators on DT.