Question about dataspace

Adam Lackorzynski adam at os.inf.tu-dresden.de
Thu May 15 01:02:53 CEST 2014


On Tue May 13, 2014 at 17:45:46 -0800, Yuxin Ren wrote:
> For the unmapping stuff, can you tell me a little more in detail.
> I do not  understand the parameters of unmap function.

So the L4::Task::unmap() function takes two arguments. The first is a
flexpage which can be constructed with the l4_fpage helper, like this:
  l4_fpage(address, L4_LOG2_PAGESIZE, L4_FPAGE_RWX)
So in our case the fpage describes a piece of memory, with a start
(address) and size (L4_LOG2_PAGESIZE, given in log2) and attributes
(L4_FPAGE_RWX). For the unmapping, this yields to:
  l4_msgtag_t result;
  result = task->unmap(l4_fpage(address, L4_LOG2_PAGESIZE, L4_FPAGE_RWX),
                       L4_FP_ALL_SPACES);
  if (l4_error(result))
    // some error handling/message

So this means that this unmap call shall remove all access rights
(L4_FPAGE_RWX), for task and its childs (L4_FP_ALL_SPACES) from memory
region address to address + (1 << L4_LOG2_PAGESIZE) (what is just a
single page in our case).


HTH,
Adam
-- 
Adam                 adam at os.inf.tu-dresden.de
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/




More information about the l4-hackers mailing list