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 .