~ubuntu-branches/ubuntu/trusty/apex/trusty

« back to all changes in this revision

Viewing changes to include/asm-arm/page.h

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2009-11-10 11:55:15 UTC
  • mfrom: (2.2.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091110115515-6jjsf6rc8py35awe
Tags: 1.6.10ubuntu1
* Merge from debian testing, remaining changes:
  - Move apex VMA address to 4MiB to leave enough space for the ubuntu
  kernel and not overwrite apex in ram when loading.
  - nslu2 configuration: set CONFIG_RAMDISK_SIZE=0x0055FFF0 instead of
  0x005FFFF0 to make enough room for ubuntu initramfs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
#ifndef _ASMARM_PAGE_H
11
11
#define _ASMARM_PAGE_H
12
12
 
13
 
#include <linux/config.h>
14
 
 
15
13
/* PAGE_SHIFT determines the page size */
16
14
#define PAGE_SHIFT              12
17
15
#define PAGE_SIZE               (1UL << PAGE_SHIFT)
18
16
#define PAGE_MASK               (~(PAGE_SIZE-1))
19
17
 
20
 
#ifdef __KERNEL__
21
 
 
22
18
/* to align the pointer to the (next) page boundary */
23
19
#define PAGE_ALIGN(addr)        (((addr)+PAGE_SIZE-1)&PAGE_MASK)
24
20
 
25
21
#ifndef __ASSEMBLY__
26
22
 
 
23
#ifndef CONFIG_MMU
 
24
 
 
25
#include "page-nommu.h"
 
26
 
 
27
#else
 
28
 
27
29
#include <asm/glue.h>
28
30
 
29
31
/*
40
42
 *        v4wb          - ARMv4 with writeback cache, without minicache
41
43
 *        v4_mc         - ARMv4 with minicache
42
44
 *        xscale        - Xscale
 
45
 *        xsc3          - XScalev3
43
46
 */
44
47
#undef _USER
45
48
#undef MULTI_USER
68
71
# endif
69
72
#endif
70
73
 
 
74
#ifdef CONFIG_CPU_COPY_FEROCEON
 
75
# ifdef _USER
 
76
#  define MULTI_USER 1
 
77
# else
 
78
#  define _USER feroceon
 
79
# endif
 
80
#endif
 
81
 
71
82
#ifdef CONFIG_CPU_SA1100
72
83
# ifdef _USER
73
84
#  define MULTI_USER 1
84
95
# endif
85
96
#endif
86
97
 
 
98
#ifdef CONFIG_CPU_XSC3
 
99
# ifdef _USER
 
100
#  define MULTI_USER 1
 
101
# else
 
102
#  define _USER xsc3_mc
 
103
# endif
 
104
#endif
 
105
 
87
106
#ifdef CONFIG_CPU_COPY_V6
88
 
# ifdef _USER
89
 
#  define MULTI_USER 1
90
 
# else
91
 
#  define _USER v6
92
 
# endif
 
107
# define MULTI_USER 1
93
108
#endif
94
109
 
95
 
#ifndef _USER
 
110
#if !defined(_USER) && !defined(MULTI_USER)
96
111
#error Unknown user operations model
97
112
#endif
98
113
 
118
133
                                 unsigned long user);
119
134
#endif
120
135
 
121
 
#define clear_user_page(addr,vaddr,pg)                  \
122
 
        do {                                            \
123
 
                preempt_disable();                      \
124
 
                __cpu_clear_user_page(addr, vaddr);     \
125
 
                preempt_enable();                       \
126
 
        } while (0)
127
 
 
128
 
#define copy_user_page(to,from,vaddr,pg)                \
129
 
        do {                                            \
130
 
                preempt_disable();                      \
131
 
                __cpu_copy_user_page(to, from, vaddr);  \
132
 
                preempt_enable();                       \
133
 
        } while (0)
 
136
#define clear_user_page(addr,vaddr,pg)   __cpu_clear_user_page(addr, vaddr)
 
137
#define copy_user_page(to,from,vaddr,pg) __cpu_copy_user_page(to, from, vaddr)
134
138
 
135
139
#define clear_page(page)        memzero((void *)(page), PAGE_SIZE)
136
 
extern void copy_page(void *to, void *from);
 
140
extern void copy_page(void *to, const void *from);
137
141
 
138
142
#undef STRICT_MM_TYPECHECKS
139
143
 
175
179
 
176
180
#endif /* STRICT_MM_TYPECHECKS */
177
181
 
178
 
/* Pure 2^n version of get_order */
179
 
static inline int get_order(unsigned long size)
180
 
{
181
 
        int order;
182
 
 
183
 
        size = (size-1) >> (PAGE_SHIFT-1);
184
 
        order = -1;
185
 
        do {
186
 
                size >>= 1;
187
 
                order++;
188
 
        } while (size);
189
 
        return order;
190
 
}
191
 
 
192
 
//#include <asm/memory.h>
 
182
#endif /* CONFIG_MMU */
 
183
 
 
184
typedef struct page *pgtable_t;
 
185
 
 
186
#include <asm/memory.h>
193
187
 
194
188
#endif /* !__ASSEMBLY__ */
195
189
 
196
190
#define VM_DATA_DEFAULT_FLAGS   (VM_READ | VM_WRITE | VM_EXEC | \
197
191
                                 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
198
192
 
199
 
#endif /* __KERNEL__ */
 
193
/*
 
194
 * With EABI on ARMv5 and above we must have 64-bit aligned slab pointers.
 
195
 */
 
196
#if defined(CONFIG_AEABI) && (__LINUX_ARM_ARCH__ >= 5)
 
197
#define ARCH_SLAB_MINALIGN 8
 
198
#endif
 
199
 
 
200
#include <asm-generic/page.h>
200
201
 
201
202
#endif