Question about dataspace

Adam Lackorzynski adam at
Sat May 10 10:15:42 CEST 2014


On Sat May 10, 2014 at 11:23:47 +0800, Yuxin Ren wrote:
> I cannot understand dataspace very well. I have some questions  about it.
> Each time I want to alloc a piece of memory, I must create a dataspace
> first?

I think you mean that you need to allocate a capability before calling
mem_alloc()->alloc()? Yes, you need to do that for each new memory to
be allocated.

> I look at the example code of memory allocation.
> I found after create adataspace, we call
> L4Re::Env::env<>()->mem_alloc()->alloc()
> to alloca memory via dataspace.
> Can I call this function multiple times on the same dataspace instance
> without free? If so, what is its effect?

No, don't do that. free the dataspace at mem_alloc() before allocating
new memory on the same dataspace (capability).

> In addtion we use attach to map the dataspace. Can I attach the same
> dataspace multiple times without free?

Yes, you can do that.

> In this case, does it mean that the same physical memory is mapped into
> different virtual address?

Yes, exactly.

Adam                 adam at

More information about the l4-hackers mailing list