OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [include/] [asm-or32/] [page.h] - Blame information for rev 7

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 7 xianfeng
#ifndef _OR32_PAGE_H
2
#define _OR32_PAGE_H
3
 
4
 
5
/* PAGE_SHIFT determines the page size */
6
#define PAGE_SHIFT              13
7
#define PAGE_SIZE               (1UL << PAGE_SHIFT)
8
#define PAGE_MASK               (~(PAGE_SIZE-1))
9
#define PAGE_ALIGN(addr)        (((addr)+PAGE_SIZE-1)&PAGE_MASK)
10
 
11
#define PAGE_OFFSET             0xc0000000      
12
#define KERNELBASE              PAGE_OFFSET
13
 
14
#ifdef __KERNEL__
15
 
16
#ifndef __ASSEMBLY__
17
#define clear_page(page)        memset((void *)(page), 0, PAGE_SIZE)
18
#define copy_page(to,from)      memcpy((void *)(to), (void *)(from), PAGE_SIZE)
19
 
20
#define clear_user_page(page, vaddr, pg)    clear_page(page)
21
#define copy_user_page(to, from, vaddr, pg) copy_page(to, from)
22
 
23
#define STRICT_MM_TYPECHECKS
24
#ifdef  STRICT_MM_TYPECHECKS
25
/*
26
 * These are used to make use of C type-checking..
27
 */
28
typedef struct { unsigned long pte; } pte_t;
29
typedef struct { unsigned long pmd; } pmd_t;
30
typedef struct { unsigned long pgd; } pgd_t;
31
typedef struct { unsigned long pgprot; } pgprot_t;
32
 
33
#define pte_val(x)      ((x).pte)
34
#define pmd_val(x)      ((x).pmd)
35
#define pgd_val(x)      ((x).pgd)
36
#define pgprot_val(x)   ((x).pgprot)
37
 
38
#define __pte(x)        ((pte_t) { (x) } )
39
#define __pmd(x)        ((pmd_t) { (x) } )
40
#define __pgd(x)        ((pgd_t) { (x) } )
41
#define __pgprot(x)     ((pgprot_t) { (x) } )
42
 
43
#else /* STRICT_MM_TYPECHECKS */
44
/*
45
 * .. while these make it easier on the compiler
46
 */
47
typedef unsigned long pte_t;
48
typedef unsigned long pmd_t;
49
typedef unsigned long pgd_t;
50
typedef unsigned long pgprot_t;
51
 
52
#define pte_val(x)      (x)
53
#define pmd_val(x)      (x)
54
#define pgd_val(x)      (x)
55
#define pgprot_val(x)   (x)
56
 
57
#define __pte(x)        (x)
58
#define __pmd(x)        (x)
59
#define __pgd(x)        (x)
60
#define __pgprot(x)     (x)
61
 
62
#endif /* STRICT_MM_TYPECHECKS */
63
 
64
 
65
/* Pure 2^n version of get_order */
66
static __inline__ int get_order(unsigned long size)
67
{
68
        int order;
69
 
70
        size = (size-1) >> (PAGE_SHIFT-1);
71
        order = -1;
72
        do {
73
                size >>= 1;
74
                order++;
75
        } while (size);
76
        return order;
77
}
78
 
79
 
80
/* macros to convert between really physical and virtual addresses
81
 */
82
 
83
#define __pa(x)                 ((unsigned long)(x) - PAGE_OFFSET)
84
#define __va(x)                 ((void *)((unsigned long)(x) + PAGE_OFFSET))
85
 
86
#define pfn_to_page(pfn)        (mem_map + (pfn))
87
#define page_to_pfn(page)       ((unsigned long)((page) - mem_map))
88
 
89
#define virt_to_page(kaddr)     pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
90
#define page_to_virt(page)      __va(page_to_pfn(page) << PAGE_SHIFT)
91
 
92
#define pfn_valid(pfn)          ((pfn) < max_mapnr)
93
#define virt_addr_valid(kaddr)  pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
94
 
95
/* from linker script */
96
 
97
extern unsigned long dram_start, dram_end;
98
 
99
#endif /* __ASSEMBLY__ */
100
 
101
#define VM_DATA_DEFAULT_FLAGS   (VM_READ | VM_WRITE | VM_EXEC | \
102
                                 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
103
 
104
#endif /* __KERNEL__ */
105
 
106
#endif /* _OR32_PAGE_H */
107
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.