> 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