/* * These are used to make use of C type-checking..
*/ #define STRICT_MM_TYPECHECKS #ifdef STRICT_MM_TYPECHECKS typedefstruct { unsignedlong pte; } pte_t; /* either 32 or 64bit */
/* NOTE: even on 64 bits, these entries are __u32 because we allocate
* the pmd and pgd in ZONE_DMA (i.e. under 4GB) */ typedefstruct { __u32 pgd; } pgd_t; typedefstruct { unsignedlong pgprot; } pgprot_t;
#if CONFIG_PGTABLE_LEVELS == 3 typedefstruct { __u32 pmd; } pmd_t; #define __pmd(x) ((pmd_t) { (x) } ) /* pXd_val() do not work as lvalues, so make sure we don't use them as such. */ #define pmd_val(x) ((x).pmd + 0) #endif
/* This governs the relationship between virtual and physical addresses. * If you alter it, make sure to take care of our various fixed mapping
* segments in fixmap.h */ #ifdef CONFIG_64BIT #define __PAGE_OFFSET_DEFAULT (0x40000000) /* 1GB */ #else #define __PAGE_OFFSET_DEFAULT (0x10000000) /* 256MB */ #endif
/* The size of the gateway page (we leave lots of room for expansion) */ #define GATEWAY_PAGE_SIZE 0x4000
/* The start of the actual kernel binary---used in vmlinux.lds.S * Leave some space after __PAGE_OFFSET for detecting kernel null
* ptr derefs */ #define KERNEL_BINARY_TEXT_START (__PAGE_OFFSET + 0x100000)
/* These macros don't work for 64-bit C code -- don't allow in C at all */ #ifdef __ASSEMBLER__ # define PA(x) ((x)-__PAGE_OFFSET) # define VA(x) ((x)+__PAGE_OFFSET) #endif #define __pa(x) ((unsignedlong)(x)-PAGE_OFFSET) #define __va(x) ((void *)((unsignedlong)(x)+PAGE_OFFSET))
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.