Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.36 73 lines 2.3 kB view raw
1/* 2 * Copyright (C) 1999 Gerhard Wichert, Siemens AG 3 * Gerhard.Wichert@pdb.siemens.de 4 * Copyright 2010 Tilera Corporation. All Rights Reserved. 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation, version 2. 9 * 10 * This program is distributed in the hope that it will be useful, but 11 * WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or 13 * NON INFRINGEMENT. See the GNU General Public License for 14 * more details. 15 * 16 * Used in CONFIG_HIGHMEM systems for memory pages which 17 * are not addressable by direct kernel virtual addresses. 18 * 19 */ 20 21#ifndef _ASM_TILE_HIGHMEM_H 22#define _ASM_TILE_HIGHMEM_H 23 24#include <linux/interrupt.h> 25#include <linux/threads.h> 26#include <asm/kmap_types.h> 27#include <asm/tlbflush.h> 28#include <asm/homecache.h> 29 30/* declarations for highmem.c */ 31extern unsigned long highstart_pfn, highend_pfn; 32 33extern pte_t *pkmap_page_table; 34 35/* 36 * Ordering is: 37 * 38 * FIXADDR_TOP 39 * fixed_addresses 40 * FIXADDR_START 41 * temp fixed addresses 42 * FIXADDR_BOOT_START 43 * Persistent kmap area 44 * PKMAP_BASE 45 * VMALLOC_END 46 * Vmalloc area 47 * VMALLOC_START 48 * high_memory 49 */ 50#define LAST_PKMAP_MASK (LAST_PKMAP-1) 51#define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT) 52#define PKMAP_ADDR(nr) (PKMAP_BASE + ((nr) << PAGE_SHIFT)) 53 54void *kmap_high(struct page *page); 55void kunmap_high(struct page *page); 56void *kmap(struct page *page); 57void kunmap(struct page *page); 58void *kmap_fix_kpte(struct page *page, int finished); 59 60/* This macro is used only in map_new_virtual() to map "page". */ 61#define kmap_prot page_to_kpgprot(page) 62 63void kunmap_atomic_notypecheck(void *kvaddr, enum km_type type); 64void *kmap_atomic_pfn(unsigned long pfn, enum km_type type); 65void *kmap_atomic_prot_pfn(unsigned long pfn, enum km_type type, pgprot_t prot); 66struct page *kmap_atomic_to_page(void *ptr); 67void *kmap_atomic_prot(struct page *page, enum km_type type, pgprot_t prot); 68void *kmap_atomic(struct page *page, enum km_type type); 69void kmap_atomic_fix_kpte(struct page *page, int finished); 70 71#define flush_cache_kmaps() do { } while (0) 72 73#endif /* _ASM_TILE_HIGHMEM_H */