• Jeremy Fitzhardinge's avatar
    x86: page.h: move and unify types for pagetable entry · 881d90d0
    Jeremy Fitzhardinge authored
    # HG changeset patch
    # User Jeremy Fitzhardinge <jeremy@xensource.com>
    # Date 1199319654 28800
    # Node ID 3bd7db6e85e66e7f3362874802df26a82fcb2d92
    # Parent  f7e7db3facd9406545103164f9be8f9ba1a2b549
    x86: page.h: move and unify types for pagetable entry definitions
    
    This patch:
    
    1. Defines arch-specific types for the contents of a pagetable entry.
    That is, 32-bit entries for 32-bit non-PAE, and 64-bit entries for
    32-bit PAE and 64-bit.  However, even though the latter two are the
    same size, they're defined with different types in order to retain
    compatibility with printk format strings, etc.
    
    2. Defines arch-specific pte_t.  This is different because 32-bit PAE
    defines it in two halves, whereas 32-bit PAE and 64-bit define it as a
    single entry.  All the other pagetable levels can be defined in a
    common way.  This also defines arch-specific pte_val/make_pte functions.
    
    3. Define PAGETABLE_LEVELS for each architecture variation, for later use.
    
    4. Define common pagetable entry accessors in a paravirt-compatible
    way. (64-bit does not yet use paravirt-ops in any way).
    
    5. Convert a few instances of using a *_val() as an lvalue where it is
    no longer a macro.  There are still places in the 64-bit code which
    use pte_val() as an lvalue.
    Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    881d90d0
page.h 7.22 KB