[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] understanding __linear_l2_table and friends
They aren't actually used during domain building, but anyway: Xen uses the common trick whereby each page directory maps itself. This means that every page-table entry is mapped into the address space at some virtual address. In fact, page directory entries (and PML3 and PML4 entries on x86/64) are also directly accessible in the virtual address space. The macros below are expressions that evaluate to the correct virtual addresses. -- Keir > I was trying to understand the states behind domain creation, but i'm > having troubles getting past this. Would someone mind saying a few > words about what these are and (if still needed) why these calculations > work for that? > > xen/include/asm-x86/page.h: > #define linear_l1_table \ > ((l1_pgentry_t *)(LINEAR_PT_VIRT_START)) > #define __linear_l2_table \ > ((l2_pgentry_t *)(LINEAR_PT_VIRT_START + \ > (LINEAR_PT_VIRT_START >> (PAGETABLE_ORDER<<0)))) > #define __linear_l3_table \ > ((l3_pgentry_t *)(LINEAR_PT_VIRT_START + \ > (LINEAR_PT_VIRT_START >> (PAGETABLE_ORDER<<0)) + \ > (LINEAR_PT_VIRT_START >> (PAGETABLE_ORDER<<1)))) > #define __linear_l4_table \ > ((l4_pgentry_t *)(LINEAR_PT_VIRT_START + \ > (LINEAR_PT_VIRT_START >> (PAGETABLE_ORDER<<0)) + \ > (LINEAR_PT_VIRT_START >> (PAGETABLE_ORDER<<1)) + \ > (LINEAR_PT_VIRT_START >> (PAGETABLE_ORDER<<2)))) > > Thanks! > sRp > > -- > Scott Parish > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |