aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/sparc_ksyms_64.c
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2008-12-03 06:11:52 -0500
committerDavid S. Miller <davem@davemloft.net>2008-12-04 12:17:21 -0500
commita88b5ba8bd8ac18aad65ee6c6a254e2e74876db3 (patch)
treeeb3d0ffaf53c3f7ec6083752c2097cecd1cb892a /arch/sparc/kernel/sparc_ksyms_64.c
parentd670bd4f803c8b646acd20f3ba21e65458293faf (diff)
sparc,sparc64: unify kernel/
o Move all files from sparc64/kernel/ to sparc/kernel - rename as appropriate o Update sparc/Makefile to the changes o Update sparc/kernel/Makefile to include the sparc64 files NOTE: This commit changes link order on sparc64! Link order had to change for either of sparc32 and sparc64. And assuming sparc64 see more testing than sparc32 change link order on sparc64 where issues will be caught faster. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/sparc_ksyms_64.c')
-rw-r--r--arch/sparc/kernel/sparc_ksyms_64.c289
1 files changed, 289 insertions, 0 deletions
diff --git a/arch/sparc/kernel/sparc_ksyms_64.c b/arch/sparc/kernel/sparc_ksyms_64.c
new file mode 100644
index 000000000000..c450825b3fe5
--- /dev/null
+++ b/arch/sparc/kernel/sparc_ksyms_64.c
@@ -0,0 +1,289 @@
1/* arch/sparc64/kernel/sparc64_ksyms.c: Sparc64 specific ksyms support.
2 *
3 * Copyright (C) 1996, 2007 David S. Miller (davem@davemloft.net)
4 * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be)
5 * Copyright (C) 1999 Jakub Jelinek (jj@ultra.linux.cz)
6 */
7
8/* Tell string.h we don't want memcpy etc. as cpp defines */
9#define EXPORT_SYMTAB_STROPS
10#define PROMLIB_INTERNAL
11
12#include <linux/module.h>
13#include <linux/types.h>
14#include <linux/string.h>
15#include <linux/sched.h>
16#include <linux/in6.h>
17#include <linux/pci.h>
18#include <linux/interrupt.h>
19#include <linux/fs_struct.h>
20#include <linux/fs.h>
21#include <linux/mm.h>
22#include <linux/socket.h>
23#include <linux/syscalls.h>
24#include <linux/percpu.h>
25#include <linux/init.h>
26#include <linux/rwsem.h>
27#include <net/compat.h>
28
29#include <asm/oplib.h>
30#include <asm/system.h>
31#include <asm/auxio.h>
32#include <asm/pgtable.h>
33#include <asm/io.h>
34#include <asm/irq.h>
35#include <asm/idprom.h>
36#include <asm/elf.h>
37#include <asm/head.h>
38#include <asm/smp.h>
39#include <asm/ptrace.h>
40#include <asm/uaccess.h>
41#include <asm/checksum.h>
42#include <asm/fpumacro.h>
43#include <asm/pgalloc.h>
44#include <asm/cacheflush.h>
45#ifdef CONFIG_SBUS
46#include <asm/dma.h>
47#endif
48#include <asm/ns87303.h>
49#include <asm/timer.h>
50#include <asm/cpudata.h>
51#include <asm/ftrace.h>
52#include <asm/hypervisor.h>
53
54struct poll {
55 int fd;
56 short events;
57 short revents;
58};
59
60extern void die_if_kernel(char *str, struct pt_regs *regs);
61extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
62extern void *__bzero(void *, size_t);
63extern void *__memscan_zero(void *, size_t);
64extern void *__memscan_generic(void *, int, size_t);
65extern int __memcmp(const void *, const void *, __kernel_size_t);
66extern __kernel_size_t strlen(const char *);
67extern void sys_sigsuspend(void);
68extern int compat_sys_ioctl(unsigned int fd, unsigned int cmd, u32 arg);
69extern int (*handle_mathemu)(struct pt_regs *, struct fpustate *);
70extern long sparc32_open(const char __user * filename, int flags, int mode);
71extern int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long from,
72 unsigned long pfn, unsigned long size, pgprot_t prot);
73
74extern int __ashrdi3(int, int);
75
76extern int dump_fpu (struct pt_regs * regs, elf_fpregset_t * fpregs);
77
78extern void xor_vis_2(unsigned long, unsigned long *, unsigned long *);
79extern void xor_vis_3(unsigned long, unsigned long *, unsigned long *,
80 unsigned long *);
81extern void xor_vis_4(unsigned long, unsigned long *, unsigned long *,
82 unsigned long *, unsigned long *);
83extern void xor_vis_5(unsigned long, unsigned long *, unsigned long *,
84 unsigned long *, unsigned long *, unsigned long *);
85
86extern void xor_niagara_2(unsigned long, unsigned long *, unsigned long *);
87extern void xor_niagara_3(unsigned long, unsigned long *, unsigned long *,
88 unsigned long *);
89extern void xor_niagara_4(unsigned long, unsigned long *, unsigned long *,
90 unsigned long *, unsigned long *);
91extern void xor_niagara_5(unsigned long, unsigned long *, unsigned long *,
92 unsigned long *, unsigned long *, unsigned long *);
93
94/* Per-CPU information table */
95EXPORT_PER_CPU_SYMBOL(__cpu_data);
96
97/* used by various drivers */
98#ifdef CONFIG_SMP
99/* Out of line rw-locking implementation. */
100EXPORT_SYMBOL(__read_lock);
101EXPORT_SYMBOL(__read_unlock);
102EXPORT_SYMBOL(__write_lock);
103EXPORT_SYMBOL(__write_unlock);
104EXPORT_SYMBOL(__write_trylock);
105#endif /* CONFIG_SMP */
106
107#ifdef CONFIG_MCOUNT
108EXPORT_SYMBOL(_mcount);
109#endif
110
111EXPORT_SYMBOL(sparc64_get_clock_tick);
112
113/* RW semaphores */
114EXPORT_SYMBOL(__down_read);
115EXPORT_SYMBOL(__down_read_trylock);
116EXPORT_SYMBOL(__down_write);
117EXPORT_SYMBOL(__down_write_trylock);
118EXPORT_SYMBOL(__up_read);
119EXPORT_SYMBOL(__up_write);
120EXPORT_SYMBOL(__downgrade_write);
121
122/* Atomic counter implementation. */
123EXPORT_SYMBOL(atomic_add);
124EXPORT_SYMBOL(atomic_add_ret);
125EXPORT_SYMBOL(atomic_sub);
126EXPORT_SYMBOL(atomic_sub_ret);
127EXPORT_SYMBOL(atomic64_add);
128EXPORT_SYMBOL(atomic64_add_ret);
129EXPORT_SYMBOL(atomic64_sub);
130EXPORT_SYMBOL(atomic64_sub_ret);
131
132/* Atomic bit operations. */
133EXPORT_SYMBOL(test_and_set_bit);
134EXPORT_SYMBOL(test_and_clear_bit);
135EXPORT_SYMBOL(test_and_change_bit);
136EXPORT_SYMBOL(set_bit);
137EXPORT_SYMBOL(clear_bit);
138EXPORT_SYMBOL(change_bit);
139
140EXPORT_SYMBOL(__flushw_user);
141
142EXPORT_SYMBOL(tlb_type);
143EXPORT_SYMBOL(sun4v_chip_type);
144EXPORT_SYMBOL(get_fb_unmapped_area);
145EXPORT_SYMBOL(flush_icache_range);
146
147EXPORT_SYMBOL(flush_dcache_page);
148#ifdef DCACHE_ALIASING_POSSIBLE
149EXPORT_SYMBOL(__flush_dcache_range);
150#endif
151
152EXPORT_SYMBOL(sun4v_niagara_getperf);
153EXPORT_SYMBOL(sun4v_niagara_setperf);
154EXPORT_SYMBOL(sun4v_niagara2_getperf);
155EXPORT_SYMBOL(sun4v_niagara2_setperf);
156
157#ifdef CONFIG_SUN_AUXIO
158EXPORT_SYMBOL(auxio_set_led);
159EXPORT_SYMBOL(auxio_set_lte);
160#endif
161#ifdef CONFIG_SBUS
162EXPORT_SYMBOL(sbus_set_sbus64);
163#endif
164EXPORT_SYMBOL(outsb);
165EXPORT_SYMBOL(outsw);
166EXPORT_SYMBOL(outsl);
167EXPORT_SYMBOL(insb);
168EXPORT_SYMBOL(insw);
169EXPORT_SYMBOL(insl);
170#ifdef CONFIG_PCI
171EXPORT_SYMBOL(pci_alloc_consistent);
172EXPORT_SYMBOL(pci_free_consistent);
173EXPORT_SYMBOL(pci_map_single);
174EXPORT_SYMBOL(pci_unmap_single);
175EXPORT_SYMBOL(pci_map_sg);
176EXPORT_SYMBOL(pci_unmap_sg);
177EXPORT_SYMBOL(pci_dma_sync_single_for_cpu);
178EXPORT_SYMBOL(pci_dma_sync_sg_for_cpu);
179EXPORT_SYMBOL(pci_dma_supported);
180#endif
181
182/* I/O device mmaping on Sparc64. */
183EXPORT_SYMBOL(io_remap_pfn_range);
184
185EXPORT_SYMBOL(dump_fpu);
186EXPORT_SYMBOL(put_fs_struct);
187
188/* math-emu wants this */
189EXPORT_SYMBOL(die_if_kernel);
190
191/* Kernel thread creation. */
192EXPORT_SYMBOL(kernel_thread);
193
194/* prom symbols */
195EXPORT_SYMBOL(idprom);
196EXPORT_SYMBOL(prom_root_node);
197EXPORT_SYMBOL(prom_getchild);
198EXPORT_SYMBOL(prom_getsibling);
199EXPORT_SYMBOL(prom_searchsiblings);
200EXPORT_SYMBOL(prom_firstprop);
201EXPORT_SYMBOL(prom_nextprop);
202EXPORT_SYMBOL(prom_getproplen);
203EXPORT_SYMBOL(prom_getproperty);
204EXPORT_SYMBOL(prom_node_has_property);
205EXPORT_SYMBOL(prom_setprop);
206EXPORT_SYMBOL(saved_command_line);
207EXPORT_SYMBOL(prom_finddevice);
208EXPORT_SYMBOL(prom_feval);
209EXPORT_SYMBOL(prom_getbool);
210EXPORT_SYMBOL(prom_getstring);
211EXPORT_SYMBOL(prom_getint);
212EXPORT_SYMBOL(prom_getintdefault);
213EXPORT_SYMBOL(__prom_getchild);
214EXPORT_SYMBOL(__prom_getsibling);
215
216/* sparc library symbols */
217EXPORT_SYMBOL(strlen);
218EXPORT_SYMBOL(__strlen_user);
219EXPORT_SYMBOL(__strnlen_user);
220
221/* Special internal versions of library functions. */
222EXPORT_SYMBOL(_clear_page);
223EXPORT_SYMBOL(clear_user_page);
224EXPORT_SYMBOL(copy_user_page);
225EXPORT_SYMBOL(__bzero);
226EXPORT_SYMBOL(__memscan_zero);
227EXPORT_SYMBOL(__memscan_generic);
228EXPORT_SYMBOL(__memcmp);
229EXPORT_SYMBOL(__memset);
230
231EXPORT_SYMBOL(csum_partial);
232EXPORT_SYMBOL(csum_partial_copy_nocheck);
233EXPORT_SYMBOL(__csum_partial_copy_from_user);
234EXPORT_SYMBOL(__csum_partial_copy_to_user);
235EXPORT_SYMBOL(ip_fast_csum);
236
237/* Moving data to/from/in userspace. */
238EXPORT_SYMBOL(___copy_to_user);
239EXPORT_SYMBOL(___copy_from_user);
240EXPORT_SYMBOL(___copy_in_user);
241EXPORT_SYMBOL(copy_to_user_fixup);
242EXPORT_SYMBOL(copy_from_user_fixup);
243EXPORT_SYMBOL(copy_in_user_fixup);
244EXPORT_SYMBOL(__strncpy_from_user);
245EXPORT_SYMBOL(__clear_user);
246
247/* Various address conversion macros use this. */
248EXPORT_SYMBOL(sparc64_valid_addr_bitmap);
249
250/* No version information on this, heavily used in inline asm,
251 * and will always be 'void __ret_efault(void)'.
252 */
253EXPORT_SYMBOL(__ret_efault);
254
255/* No version information on these, as gcc produces such symbols. */
256EXPORT_SYMBOL(memcmp);
257EXPORT_SYMBOL(memcpy);
258EXPORT_SYMBOL(memset);
259EXPORT_SYMBOL(memmove);
260EXPORT_SYMBOL(strncmp);
261
262void VISenter(void);
263/* RAID code needs this */
264EXPORT_SYMBOL(VISenter);
265
266/* for input/keybdev */
267EXPORT_SYMBOL(sun_do_break);
268EXPORT_SYMBOL(stop_a_enabled);
269
270#ifdef CONFIG_DEBUG_BUGVERBOSE
271EXPORT_SYMBOL(do_BUG);
272#endif
273
274/* for ns8703 */
275EXPORT_SYMBOL(ns87303_lock);
276
277EXPORT_SYMBOL(tick_ops);
278
279EXPORT_SYMBOL(xor_vis_2);
280EXPORT_SYMBOL(xor_vis_3);
281EXPORT_SYMBOL(xor_vis_4);
282EXPORT_SYMBOL(xor_vis_5);
283
284EXPORT_SYMBOL(xor_niagara_2);
285EXPORT_SYMBOL(xor_niagara_3);
286EXPORT_SYMBOL(xor_niagara_4);
287EXPORT_SYMBOL(xor_niagara_5);
288
289EXPORT_SYMBOL_GPL(real_hard_smp_processor_id);