X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-i386%2Fhighmem.h;h=0fd331306b60115f9b889fe74313722ae28141ac;hb=d9eea97a8782ef04badb8c44fd74bd1f9e04cba5;hp=baf5b5aaeaa0cad0a1879af8987c021a8a765443;hpb=8fe849edaaabd915f060b3744165ff7f95a2b34e;p=linux-2.6.git diff --git a/include/asm-i386/highmem.h b/include/asm-i386/highmem.h index baf5b5aae..0fd331306 100644 --- a/include/asm-i386/highmem.h +++ b/include/asm-i386/highmem.h @@ -25,13 +25,13 @@ #include #include #include -#include /* declarations for highmem.c */ extern unsigned long highstart_pfn, highend_pfn; +extern pte_t *kmap_pte; +extern pgprot_t kmap_prot; extern pte_t *pkmap_page_table; -extern void kmap_init(void) __init; /* * Right now we initialize only a single pte table. It can be extended @@ -43,6 +43,22 @@ extern void kmap_init(void) __init; #else #define LAST_PKMAP 1024 #endif +/* + * Ordering is: + * + * FIXADDR_TOP + * fixed_addresses + * FIXADDR_START + * temp fixed addresses + * FIXADDR_BOOT_START + * Persistent kmap area + * PKMAP_BASE + * VMALLOC_END + * Vmalloc area + * VMALLOC_START + * high_memory + */ +#define PKMAP_BASE ( (FIXADDR_BOOT_START - PAGE_SIZE*(LAST_PKMAP + 1)) & PMD_MASK ) #define LAST_PKMAP_MASK (LAST_PKMAP-1) #define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT) #define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT)) @@ -53,8 +69,8 @@ extern void FASTCALL(kunmap_high(struct page *page)); void *kmap(struct page *page); void kunmap(struct page *page); void *kmap_atomic(struct page *page, enum km_type type); -void *kmap_atomic_nocache_pfn(unsigned long pfn, enum km_type type); void kunmap_atomic(void *kvaddr, enum km_type type); +void *kmap_atomic_pfn(unsigned long pfn, enum km_type type); struct page *kmap_atomic_to_page(void *ptr); #define flush_cache_kmaps() do { } while (0)