RE: about L4 kernel address mapping..got messed.

Jan Stoess <[email protected]> Fri, 25 Jul 2008 10:56:40 +0200
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Message-ID <[email protected]>
Hi Bob,

 

The word kernel area in L4 is a little bit overloaded. If you’re referring
to all virtual addresses the kernel uses for itself, it’s simply
USER_AREA_END (0xC0000000 on x86-x32). The L4 kernel area itself is
partitioned, however, into a tcb area, a IPC string copy area, a small space
area (if enabled), a physical memory remap area, some other regions, and
finally the kernel code and data area. The macros in config.h and the
space_t kernel object refer to that partitioning. In particular,
KERNEL_AREA_START C KERNEL_AREA_END refers to the “actual” kernel space,
where kernel code and data live in, and which is initialized via
init_kernel_mappings(). Other kernel regions belong to the kernel virtual
address space but are backed on demand with kernel memory (e.g., the tcb
area, readmem area) or user provided memory (e.g., the IPC string copy
area).

 

Regards,

-Jan

 

--

Jan Stoess

System Architecture Group

University of Karlsruhe

Phone: +49 (721) 608-4056

Fax: +49 (721) 608-7664

eMail:  <mailto:[email protected]> [email protected]

 

From: [email protected]
[mailto:[email protected]] On Behalf Of Bob
Sent: Friday, July 25, 2008 10:42 AM
To: [email protected]
Subject: about L4 kernel address mapping..got messed.

 




Hi, all

I got a mess at the L4 kernel address mapping

I read the "space.h",found a space's define is:
union {
ia32_pgent_t pdir[1024 * (CONFIG_SMP_MAX_CPUS + 1)];
struct {
ia32_pgent_t user[USER_AREA_END >> IA32_PAGEDIR_BITS];
ia32_pgent_t small[SMALLSPACE_AREA_SIZE >> IA32_PAGEDIR_BITS];
ia32_pgent_t copy_area[COPY_AREA_COUNT][COPY_AREA_SIZE >>
IA32_PAGEDIR_BITS];
ia32_pgent_t readmem_area;
// abuse some pagedir entries, make sure the valid bit is never set
fpage_t kip_area;
fpage_t utcb_area;
word_t thread_count;

// afterwards, we have MYUTCB, APIC, TCBs, Kernel code
word_t __pad [((0U - THREAD_COUNT_INFO) >> IA32_PAGEDIR_BITS) - 1];
} x [CONFIG_SMP_MAX_CPUS] __attribute__((aligned(IA32_PAGE_SIZE)));
};

Then what's the kernel area? I think is word_t __pag[] area.

And what's these area inited in file "space.cc" , it also called
kernel_mapping.
the funtions is: 
void SECTION(".init.memory") space_t::init_kernel_mappings(){}

Is it the same as the area form KERNEL_AREA_START to KERNEL_AREA_END!

Thanks!
Bob .





  _____  

22元超值饭面,8.5折纯珍比萨,必胜宅急送
<http://popme.163.com/link/004584_0708_6957.html> 网上点餐优惠多
smime.p7s (application/x-pkcs7-signature, 3.1 KB) - not displayed