Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
map.h
Go to the documentation of this file.
1 /*
2  * arch/arm/include/asm/map.h
3  *
4  * Copyright (C) 1999-2000 Russell King
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * Page table mapping constructs and function prototypes
11  */
12 #ifndef __ASM_MACH_MAP_H
13 #define __ASM_MACH_MAP_H
14 
15 #include <asm/io.h>
16 
17 struct map_desc {
18  unsigned long virtual;
19  unsigned long pfn;
20  unsigned long length;
21  unsigned int type;
22 };
23 
24 /* types 0-3 are defined in asm/io.h */
25 #define MT_UNCACHED 4
26 #define MT_CACHECLEAN 5
27 #define MT_MINICLEAN 6
28 #define MT_LOW_VECTORS 7
29 #define MT_HIGH_VECTORS 8
30 #define MT_MEMORY 9
31 #define MT_ROM 10
32 #define MT_MEMORY_NONCACHED 11
33 #define MT_MEMORY_DTCM 12
34 #define MT_MEMORY_ITCM 13
35 #define MT_MEMORY_SO 14
36 #define MT_MEMORY_DMA_READY 15
37 
38 #ifdef CONFIG_MMU
39 extern void iotable_init(struct map_desc *, int);
40 extern void vm_reserve_area_early(unsigned long addr, unsigned long size,
41  void *caller);
42 
43 struct mem_type;
44 extern const struct mem_type *get_mem_type(unsigned int type);
45 /*
46  * external interface to remap single page with appropriate type
47  */
48 extern int ioremap_page(unsigned long virt, unsigned long phys,
49  const struct mem_type *mtype);
50 #else
51 #define iotable_init(map,num) do { } while (0)
52 #define vm_reserve_area_early(a,s,c) do { } while (0)
53 #endif
54 
55 #endif