l4_addr_t _offs;
DS _mem;
l4_cap_idx_t _client_cap;
- unsigned char _flags;
+ unsigned short _flags;
public:
typedef DS Dataspace;
l4_cap_idx_t client_cap_idx() const throw() { return _client_cap; }
l4_addr_t offset() const throw() { return _offs; }
l4_addr_t is_ro() const throw() { return _flags & L4Re::Rm::Read_only; }
+ unsigned long caching() const throw() { return _flags & L4Re::Rm::Caching; }
unsigned flags() const throw() { return _flags; }
- Region_handler operator + (long offset) throw()
+ Region_handler operator + (long offset) const throw()
{ Region_handler n = *this; n._offs += offset; return n; }
-
void unmap(l4_addr_t va, l4_addr_t ds_offs, unsigned long size) const throw()
{ Ops::unmap(this, va, ds_offs, size); }
void take() const { Ops::take(this); }
void release() const { Ops::release(this); }
- int map(l4_addr_t adr, Region const &r, bool writable, Map_result *result) const
- { return Ops::map(this, adr, r, writable, result); }
+ int map(l4_addr_t addr, Region const &r, bool writable, Map_result *result) const
+ { return Ops::map(this, addr, r, writable, result); }
};
return -L4_ENOENT;
Region g = r->first;
- Hdlr h = r->second;
+ Hdlr const &h = r->second;
if (flags & L4Re::Rm::Detach_overlap || dr.contains(g))
{