about L4 kernel address mapping..got messed.
Bob <[email protected]> Fri, 25 Jul 2008 16:41:36 +0800 (CST)
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Message-ID | <21709221.271671216975296603.JavaMail.coremail@bj163app104.163.com> |
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 .