Dataspaces mappings for L4Linux

Adam Lackorzynski adam at
Wed Dec 21 23:17:40 CET 2005

On Tue Dec 20, 2005 at 21:16:02 -0500, Julian Grizzard wrote:
> Is there an easy way to find out where all L4Linux DMphys DS's are
> mapped in its virtual memory?

With 'where', do you mean the source code location or rather the virtual
addresses? For one there's l4rm_lookup where you can stuff in a virtual
adress and get back the DS.

> My goal is to get the entire mapping of
> DS's to virtual memory location in L4Linux.

So probably the virtual adresses.

> I am able to get some of these mappings from the dump-l4 example and
> from data printed out from L4Linux.  However, I don't know where all

The region manager manages the virtual address space so l4rm decides
where things go, unless specified otherwise.
Some regions can be defined via weak symbols, e.g. thread stacks and

> DS's are mapped (e.g. "L4thread stack"...).  Here's some specific
> questions I am trying to answer:
> 1) Where is "L4RM heap" mapped?

There's no fixed address here, just 'low' in the VA space. See

> 2) Where are "syms vmlinux" and "lines vmlinux" mapped?

Nowhere in the L4Linux VA space. They're just used by the loader.

> 3) Where is "L4thread TCB table" mapped?

Some free space, or l4thread_tcb_table_addr if defined, see

> 4) Where are the "L4thread stack" DS's mapped?

Some free space, or l4thread_stack_area_addr if defined, see

For both also see in thread/lib/src

> 5) Where is "Ghost page 1" mapped?  What is that DS by the way?

It is used to pad out the lower AS, it is mapped multiple times.

> 6) There seems to be some DS's for L4Linux that are created by the
> loader and there is also the "L4Linux main memory" DS.  Are there any
> other mappings in L4Linux's virtual memory?

There may be others depending on what stubs/drivers may do etc.

Adam                 adam at

More information about the l4-hackers mailing list