diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-30 11:43:13 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-30 11:43:13 -0400 |
commit | c4a7c77fcb8c0ef16e7193fb8cab2654282bbfab (patch) | |
tree | ca3a211950c7511609ba3f01ec11831d90882f22 /include | |
parent | a36f4961952214bdfc396e035a047268ac48c5c3 (diff) | |
parent | 017fb98e70351e9fb5635c299c4d1c50e2f8b823 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-sparc/pgtable.h | 2 | ||||
-rw-r--r-- | include/asm-sparc64/openprom.h | 4 | ||||
-rw-r--r-- | include/asm-sparc64/oplib.h | 14 | ||||
-rw-r--r-- | include/asm-sparc64/page.h | 17 | ||||
-rw-r--r-- | include/asm-sparc64/pgtable.h | 3 | ||||
-rw-r--r-- | include/asm-sparc64/uaccess.h | 24 |
6 files changed, 13 insertions, 51 deletions
diff --git a/include/asm-sparc/pgtable.h b/include/asm-sparc/pgtable.h index 8f4f6a959651..8395ad2f1c09 100644 --- a/include/asm-sparc/pgtable.h +++ b/include/asm-sparc/pgtable.h | |||
@@ -82,6 +82,8 @@ extern unsigned long page_kernel; | |||
82 | /* Top-level page directory */ | 82 | /* Top-level page directory */ |
83 | extern pgd_t swapper_pg_dir[1024]; | 83 | extern pgd_t swapper_pg_dir[1024]; |
84 | 84 | ||
85 | extern void paging_init(void); | ||
86 | |||
85 | /* Page table for 0-4MB for everybody, on the Sparc this | 87 | /* Page table for 0-4MB for everybody, on the Sparc this |
86 | * holds the same as on the i386. | 88 | * holds the same as on the i386. |
87 | */ | 89 | */ |
diff --git a/include/asm-sparc64/openprom.h b/include/asm-sparc64/openprom.h index 0a336901d585..b4959d2b0d99 100644 --- a/include/asm-sparc64/openprom.h +++ b/include/asm-sparc64/openprom.h | |||
@@ -186,8 +186,8 @@ struct linux_prom_registers { | |||
186 | }; | 186 | }; |
187 | 187 | ||
188 | struct linux_prom64_registers { | 188 | struct linux_prom64_registers { |
189 | long phys_addr; | 189 | unsigned long phys_addr; |
190 | long reg_size; | 190 | unsigned long reg_size; |
191 | }; | 191 | }; |
192 | 192 | ||
193 | struct linux_prom_irqs { | 193 | struct linux_prom_irqs { |
diff --git a/include/asm-sparc64/oplib.h b/include/asm-sparc64/oplib.h index c628189b6c89..d02f1e8ae1a6 100644 --- a/include/asm-sparc64/oplib.h +++ b/include/asm-sparc64/oplib.h | |||
@@ -95,20 +95,6 @@ extern int prom_devclose(int device_handle); | |||
95 | extern void prom_seek(int device_handle, unsigned int seek_hival, | 95 | extern void prom_seek(int device_handle, unsigned int seek_hival, |
96 | unsigned int seek_lowval); | 96 | unsigned int seek_lowval); |
97 | 97 | ||
98 | /* Machine memory configuration routine. */ | ||
99 | |||
100 | /* This function returns a V0 format memory descriptor table, it has three | ||
101 | * entries. One for the total amount of physical ram on the machine, one | ||
102 | * for the amount of physical ram available, and one describing the virtual | ||
103 | * areas which are allocated by the prom. So, in a sense the physical | ||
104 | * available is a calculation of the total physical minus the physical mapped | ||
105 | * by the prom with virtual mappings. | ||
106 | * | ||
107 | * These lists are returned pre-sorted, this should make your life easier | ||
108 | * since the prom itself is way too lazy to do such nice things. | ||
109 | */ | ||
110 | extern struct linux_mem_p1275 *prom_meminfo(void); | ||
111 | |||
112 | /* Miscellaneous routines, don't really fit in any category per se. */ | 98 | /* Miscellaneous routines, don't really fit in any category per se. */ |
113 | 99 | ||
114 | /* Reboot the machine with the command line passed. */ | 100 | /* Reboot the machine with the command line passed. */ |
diff --git a/include/asm-sparc64/page.h b/include/asm-sparc64/page.h index 7f8d764abc47..5426bb28a993 100644 --- a/include/asm-sparc64/page.h +++ b/include/asm-sparc64/page.h | |||
@@ -140,23 +140,6 @@ extern unsigned long page_to_pfn(struct page *); | |||
140 | #define virt_to_phys __pa | 140 | #define virt_to_phys __pa |
141 | #define phys_to_virt __va | 141 | #define phys_to_virt __va |
142 | 142 | ||
143 | /* The following structure is used to hold the physical | ||
144 | * memory configuration of the machine. This is filled in | ||
145 | * probe_memory() and is later used by mem_init() to set up | ||
146 | * mem_map[]. We statically allocate SPARC_PHYS_BANKS of | ||
147 | * these structs, this is arbitrary. The entry after the | ||
148 | * last valid one has num_bytes==0. | ||
149 | */ | ||
150 | |||
151 | struct sparc_phys_banks { | ||
152 | unsigned long base_addr; | ||
153 | unsigned long num_bytes; | ||
154 | }; | ||
155 | |||
156 | #define SPARC_PHYS_BANKS 32 | ||
157 | |||
158 | extern struct sparc_phys_banks sp_banks[SPARC_PHYS_BANKS]; | ||
159 | |||
160 | #endif /* !(__ASSEMBLY__) */ | 143 | #endif /* !(__ASSEMBLY__) */ |
161 | 144 | ||
162 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ | 145 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ |
diff --git a/include/asm-sparc64/pgtable.h b/include/asm-sparc64/pgtable.h index 53d612aba8d5..8c6dfc6c7af6 100644 --- a/include/asm-sparc64/pgtable.h +++ b/include/asm-sparc64/pgtable.h | |||
@@ -341,6 +341,9 @@ static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, pte_t *p | |||
341 | extern pgd_t swapper_pg_dir[2048]; | 341 | extern pgd_t swapper_pg_dir[2048]; |
342 | extern pmd_t swapper_low_pmd_dir[2048]; | 342 | extern pmd_t swapper_low_pmd_dir[2048]; |
343 | 343 | ||
344 | extern void paging_init(void); | ||
345 | extern unsigned long find_ecache_flush_span(unsigned long size); | ||
346 | |||
344 | /* These do nothing with the way I have things setup. */ | 347 | /* These do nothing with the way I have things setup. */ |
345 | #define mmu_lockarea(vaddr, len) (vaddr) | 348 | #define mmu_lockarea(vaddr, len) (vaddr) |
346 | #define mmu_unlockarea(vaddr, len) do { } while(0) | 349 | #define mmu_unlockarea(vaddr, len) do { } while(0) |
diff --git a/include/asm-sparc64/uaccess.h b/include/asm-sparc64/uaccess.h index 80a65d7e3dbf..203e8eee6351 100644 --- a/include/asm-sparc64/uaccess.h +++ b/include/asm-sparc64/uaccess.h | |||
@@ -70,26 +70,14 @@ static inline int access_ok(int type, const void __user * addr, unsigned long si | |||
70 | * with the main instruction path. This means when everything is well, | 70 | * with the main instruction path. This means when everything is well, |
71 | * we don't even have to jump over them. Further, they do not intrude | 71 | * we don't even have to jump over them. Further, they do not intrude |
72 | * on our cache or tlb entries. | 72 | * on our cache or tlb entries. |
73 | * | ||
74 | * There is a special way how to put a range of potentially faulting | ||
75 | * insns (like twenty ldd/std's with now intervening other instructions) | ||
76 | * You specify address of first in insn and 0 in fixup and in the next | ||
77 | * exception_table_entry you specify last potentially faulting insn + 1 | ||
78 | * and in fixup the routine which should handle the fault. | ||
79 | * That fixup code will get | ||
80 | * (faulting_insn_address - first_insn_in_the_range_address)/4 | ||
81 | * in %g2 (ie. index of the faulting instruction in the range). | ||
82 | */ | 73 | */ |
83 | 74 | ||
84 | struct exception_table_entry | 75 | struct exception_table_entry { |
85 | { | 76 | unsigned int insn, fixup; |
86 | unsigned insn, fixup; | ||
87 | }; | 77 | }; |
88 | 78 | ||
89 | /* Special exable search, which handles ranges. Returns fixup */ | ||
90 | unsigned long search_extables_range(unsigned long addr, unsigned long *g2); | ||
91 | |||
92 | extern void __ret_efault(void); | 79 | extern void __ret_efault(void); |
80 | extern void __retl_efault(void); | ||
93 | 81 | ||
94 | /* Uh, these should become the main single-value transfer routines.. | 82 | /* Uh, these should become the main single-value transfer routines.. |
95 | * They automatically use the right size if we just have the right | 83 | * They automatically use the right size if we just have the right |
@@ -263,7 +251,7 @@ copy_from_user(void *to, const void __user *from, unsigned long size) | |||
263 | { | 251 | { |
264 | unsigned long ret = ___copy_from_user(to, from, size); | 252 | unsigned long ret = ___copy_from_user(to, from, size); |
265 | 253 | ||
266 | if (ret) | 254 | if (unlikely(ret)) |
267 | ret = copy_from_user_fixup(to, from, size); | 255 | ret = copy_from_user_fixup(to, from, size); |
268 | return ret; | 256 | return ret; |
269 | } | 257 | } |
@@ -279,7 +267,7 @@ copy_to_user(void __user *to, const void *from, unsigned long size) | |||
279 | { | 267 | { |
280 | unsigned long ret = ___copy_to_user(to, from, size); | 268 | unsigned long ret = ___copy_to_user(to, from, size); |
281 | 269 | ||
282 | if (ret) | 270 | if (unlikely(ret)) |
283 | ret = copy_to_user_fixup(to, from, size); | 271 | ret = copy_to_user_fixup(to, from, size); |
284 | return ret; | 272 | return ret; |
285 | } | 273 | } |
@@ -295,7 +283,7 @@ copy_in_user(void __user *to, void __user *from, unsigned long size) | |||
295 | { | 283 | { |
296 | unsigned long ret = ___copy_in_user(to, from, size); | 284 | unsigned long ret = ___copy_in_user(to, from, size); |
297 | 285 | ||
298 | if (ret) | 286 | if (unlikely(ret)) |
299 | ret = copy_in_user_fixup(to, from, size); | 287 | ret = copy_in_user_fixup(to, from, size); |
300 | return ret; | 288 | return ret; |
301 | } | 289 | } |