45 unsigned char align)
const throw()
50 long e = attach_t::call(c(), start, size, flags, mem, offs, align, mem.cap().cap());
54 if (flags & Eager_map)
56 unsigned long fl = (flags & Read_only)
59 fl |= (flags & Caching) >> Caching_ds_shift;
71 long e = detach_t::call(c(), start, size, flags, rstart, rsize, mem_cap);
83 unsigned long sz = (1UL << order);
84 for (
unsigned long p = rstart; rsize; p += sz, rsize -= sz)
94 unsigned long m = sz << 1;
Request writable mapping.
Capability type for RPC interfaces (see L4::Cap<T>).
long map_region(l4_addr_t offset, unsigned long flags, l4_addr_t min_addr, l4_addr_t max_addr) const
Map a part of a dataspace completely.
long reserve_area(l4_addr_t *start, unsigned long size, unsigned flags=0, unsigned char align=L4_PAGESHIFT) const
Reserve the given area in the region map.
Invalid capability selector.
long free_area(l4_addr_t addr)
Free an area from the region map.
l4_msgtag_t unmap(l4_fpage_t const &fpage, l4_umword_t map_mask, l4_utcb_t *utcb=l4_utcb())
Revoke rights from the task.
Request read-only mapping.
l4_addr_t l4_round_page(l4_addr_t address) L4_NOTHROW
Round address up to the next page.
Read-write-execute flex page.
L4::Cap< T > cap() const
Return the L4::Cap<T> of this Cap.
unsigned long l4_cap_idx_t
L4 Capability selector Type.
Common task related definitions.
Flag to tell the unmap operation to unmap all child mappings including the mapping in the invoked tas...
l4_fpage_t l4_fpage(l4_addr_t address, unsigned int size, unsigned char rights) L4_NOTHROW
Create a memory flex page.
#define L4_LOG2_PAGESIZE
Number of bits used for page offset.
#define L4_UNLIKELY(x)
Expression is unlikely to execute.
int detach(l4_addr_t addr, L4::Cap< Dataspace > *mem, L4::Cap< L4::Task > const &task=This_task) const
Detach a region from the address space.
bool is_valid() const
Test whether the capability is a valid capability index (i.e., not L4_INVALID_CAP).
int find(l4_addr_t *addr, unsigned long *size, l4_addr_t *offset, unsigned *flags, L4::Cap< Dataspace > *m)
Find a region given an address and size.
#define L4_RPC_DEF(name)
Generate the definition of an RPC stub.
C++ interface for capabilities.
unsigned long l4_addr_t
Address type.
long attach(l4_addr_t *start, unsigned long size, unsigned long flags, L4::Ipc::Cap< Dataspace > mem, l4_addr_t offs=0, unsigned char align=L4_PAGESHIFT) const
Attach a data space to a region.