Hi,
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::envhttp://l4re.org/doc/classL4Re_1_1Env.html#aa1181d6256037deda5b5f83c2006ba60()->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