|
|
|
|
|
|
|
|
|
|
xen-devel
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
|
|
|
|
|