19#include <l4/bid_config.h>
51 public L4::Kobject_t<Dataspace, L4::Kobject, L4RE_PROTO_DATASPACE,
52 L4::Type_info::Demand_t<1> >
109 explicit constexpr Flags(
unsigned long f) : raw(f) {}
110 constexpr Flags(F::Flags f) : raw(f) {}
111 constexpr bool r()
const {
return raw &
L4_FPAGE_RO; }
112 constexpr bool w()
const {
return raw &
L4_FPAGE_W; }
113 constexpr bool x()
const {
return raw &
L4_FPAGE_X; }
115 constexpr unsigned long fpage_rights()
const
116 {
return raw & 0xf; }
157 long map(Offset offset, Flags
flags, Map_addr local_addr,
158 Map_addr min_addr, Map_addr max_addr,
189 Map_addr min_addr, Map_addr max_addr,
258 Size
size() const noexcept;
268 Flags
flags() const noexcept;
281 Flags
flags,
L4::Ipc::Rcv_fpage r,
282 L4::Ipc::Snd_fpage &fp));
314 long __map(Offset offset,
unsigned char *order, Flags flags,
319 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.
#define L4_TYPES_FLAGS_OPS_DEF(T)
Helper macro to define a set of bitwise operators on an enum type.