> 1: Is there a way, to get the address of a UTCB area of an address space or do
> I have to store/remember it after creation of the address space?
> I've read there is just a hack with MyLocalId() to get the UTCB area of the
> root-task. Is that a technical issue or shouldn't I just get it?

You have to remember it afaik. It's not a technical issue, it's just that user 
can keep it w/o problems and the kernel doesn't need another interface then.
 
> 2: In which parts of the memory I am generally allowed to write after startup,
> without accidently overwriting important data? Do I have the entire Virtual
> Memory? Here is a part of my KIP:

So conceptually, you should write into virtual address area backed with normal 
physical memory, since all other areas have special semantics. Sigma0 helps you 
a little bit there, since it's implemented in a way that it hands out normal 
memory on page faults but wants to be asked explicitly (via IPC) for handing 
out non-memory areas (architecture specific, device mem, ...). 

-Jan
--
Jan Stoess
KIT/UKa System Architecture Group
Phone: +49 (721) 608-4056
Fax: +49 (721) 608-7664
eMail: sto...@kit.edu

> -----Original Message-----
> From: l4ka-boun...@ira.uni-karlsruhe.de [mailto:l4ka-boun...@ira.uni-
> karlsruhe.de] On Behalf Of Martin
> Sent: Saturday, December 12, 2009 8:59 PM
> To: l...@ira.uni-karlsruhe.de
> Subject: UTCB-Area, Local ThreadIds
> 
> Hello,
> 
> I don't have so much experience with the L4-Kernel yet and got some
> Questions. I am working on IA32 and Kernel-Verion 0.4.0:
> 
> 1: Is there a way, to get the address of a UTCB area of an address space or do
> I have to store/remember it after creation of the address space?
> I've read there is just a hack with MyLocalId() to get the UTCB area of the
> root-task. Is that a technical issue or shouldn't I just get it?
> 
> 2: In which parts of the memory I am generally allowed to write after startup,
> without accidently overwriting important data? Do I have the entire Virtual
> Memory? Here is a part of my KIP:
> 
> Memory regions (17):
>   Physical:        0x00000000 - 0xffffffff   shared
>                    0x00000000 - 0x0009efff   conventional
>                    0x0009f000 - 0x0009ffff   architecture specific (2)
>                    0x000e8000 - 0x000fffff   architecture specific (2)
>                    0x00100000 - 0x07feffff   conventional
>                    0x07ff0000 - 0x07ffffff   architecture specific (3)
>                    0xfffbc000 - 0xfffbffff   architecture specific (2)
>                    0xfffc0000 - 0xffffffff   architecture specific (2)
>                    0x06ff0000 - 0x07feffff   reserved
>                    0x000a0000 - 0x000bffff   shared
>                    0x000c0000 - 0x000effff   shared
>                    0x00020000 - 0x000297ff   bootloader specific (2)
>                    0x00300000 - 0x003037ff   bootloader specific (2)
>                    0x00001000 - 0x00001fff   bootloader specific (1)
>                    0x00002000 - 0x00002fff   bootloader specific (1)
>                    0x00100000 - 0x00141fff   reserved
>   Virtual:         0x00000000 - 0xbfffffff   conventional
> 
> Memory regions:
>   Main mem         0x00000000 - 0x00000000
>   Reserved mem0    0x00100200 - 0x00142000
>   Reserved mem1    0x00000000 - 0x00000000
>   Dedicated mem0   0x00000000 - 0x00000000
>   Dedicated mem1   0x00000000 - 0x00000000
>   Dedicated mem2   0x00000000 - 0x00000000
>   Dedicated mem3   0x00000000 - 0x00000000
>   Dedicated mem4   0x00000000 - 0x00000000
> 
> 
> Where is the root-tasks data? Is it in the Reserved mem0?
> 
> 
> 3: How do I set/manipulate local ThreadIds? ThreadControl() is just working
> with global IDs. After creation of Threads, all local IDs are 0, this 
> shouldn't be,
> right?
> 
> 
> Thank you very much,
> Gnuffel
> --
> Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3.5 -
> sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser


Reply via email to