patch-2.1.18 linux/arch/alpha/kernel/ksyms.c

Next file: linux/arch/alpha/kernel/traps.c
Previous file: linux/arch/alpha/kernel/entry.S
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.17/linux/arch/alpha/kernel/ksyms.c linux/arch/alpha/kernel/ksyms.c
@@ -12,6 +12,7 @@
 #include <linux/elfcore.h>
 #include <asm/io.h>
 #include <asm/hwrpb.h>
+#include <asm/uaccess.h>
 
 extern void bcopy (const char *src, char *dst, int len);
 extern struct hwrpb_struct *hwrpb;
@@ -30,83 +31,71 @@
 extern int dump_fpu(struct pt_regs *, elf_fpregset_t *);
 
 
-static struct symbol_table arch_symbol_table = {
-#include <linux/symtab_begin.h>
-	/* platform dependent support */
-
-	X(_inb),
-	X(_inw),
-	X(_inl),
-	X(_outb),
-	X(_outw),
-	X(_outl),
-	X(_readb),
-	X(_readw),
-	X(_readl),
-	X(_writeb),
-	X(_writew),
-	X(_writel),
-	X(__divl),
-	X(__reml),
-	X(__divq),
-	X(__remq),
-	X(__divlu),
-	X(__remlu),
-	X(__divqu),
-	X(__remqu),
-	X(insb),
-	X(insw),
-	X(insl),
-	X(outsb),
-	X(outsw),
-	X(outsl),
-	X(strcat),
-	X(strcmp),
-	X(strcpy),
-	X(strlen),
-	X(strncmp),
-	X(strncpy),
-	X(strnlen),
-	X(strstr),
-	X(strtok),
-	X(strchr),
-	X(memcmp),
-	X(memmove),
-	X(__memcpy),
-	X(__constant_c_memset),
-
-	X(dump_thread),
-	X(dump_fpu),
-	X(hwrpb),
-	X(wrusp),
-
-	/*
-	 * The following are special because they're not called
-	 * explicitly (the C compiler or assembler generates them in
-	 * response to division operations).  Fortunately, their
-	 * interface isn't gonna change any time soon now, so it's OK
-	 * to leave it out of version control.
-	 */
+/* platform dependent support */
+EXPORT_SYMBOL(_inb);
+EXPORT_SYMBOL(_inw);
+EXPORT_SYMBOL(_inl);
+EXPORT_SYMBOL(_outb);
+EXPORT_SYMBOL(_outw);
+EXPORT_SYMBOL(_outl);
+EXPORT_SYMBOL(_readb);
+EXPORT_SYMBOL(_readw);
+EXPORT_SYMBOL(_readl);
+EXPORT_SYMBOL(_writeb);
+EXPORT_SYMBOL(_writew);
+EXPORT_SYMBOL(_writel);
+EXPORT_SYMBOL(insb);
+EXPORT_SYMBOL(insw);
+EXPORT_SYMBOL(insl);
+EXPORT_SYMBOL(outsb);
+EXPORT_SYMBOL(outsw);
+EXPORT_SYMBOL(outsl);
+EXPORT_SYMBOL(strcat);
+EXPORT_SYMBOL(strcmp);
+EXPORT_SYMBOL(strcpy);
+EXPORT_SYMBOL(strlen);
+EXPORT_SYMBOL(strncmp);
+EXPORT_SYMBOL(strncpy);
+EXPORT_SYMBOL(strnlen);
+EXPORT_SYMBOL(strstr);
+EXPORT_SYMBOL(strtok);
+EXPORT_SYMBOL(strchr);
+EXPORT_SYMBOL(memcmp);
+EXPORT_SYMBOL(memmove);
+EXPORT_SYMBOL(__memcpy);
+EXPORT_SYMBOL(__memset);
+EXPORT_SYMBOL(__constant_c_memset);
+
+EXPORT_SYMBOL(dump_thread);
+EXPORT_SYMBOL(dump_fpu);
+EXPORT_SYMBOL(hwrpb);
+EXPORT_SYMBOL(wrusp);
+
+/*
+ * The following are specially called from the uaccess assembly stubs.
+ */
+EXPORT_SYMBOL_NOVERS(__copy_user);
+EXPORT_SYMBOL_NOVERS(__clear_user);
+EXPORT_SYMBOL(__strncpy_from_user);
+EXPORT_SYMBOL(__strlen_user);
+
+/*
+ * The following are special because they're not called
+ * explicitly (the C compiler or assembler generates them in
+ * response to division operations).  Fortunately, their
+ * interface isn't gonna change any time soon now, so it's OK
+ * to leave it out of version control.
+ */
 # undef bcopy
 # undef memcpy
 # undef memset
-	XNOVERS(__divl),
-	XNOVERS(__divlu),
-	XNOVERS(__divq),
-	XNOVERS(__divqu),
-	XNOVERS(__reml),
-	XNOVERS(__remlu),
-	XNOVERS(__remq),
-	XNOVERS(__remqu),
-	XNOVERS(memcpy),
-	XNOVERS(memset),
-	/* these shouldn't be necessary---they should be versioned: */
-	XNOVERS(__memcpy),
-	XNOVERS(__memset),
-#include <linux/symtab_end.h>
-};
-
-void arch_syms_export(void)
-{
-	register_symtab(&arch_symbol_table);
-}
+EXPORT_SYMBOL_NOVERS(__divl);
+EXPORT_SYMBOL_NOVERS(__divlu);
+EXPORT_SYMBOL_NOVERS(__divq);
+EXPORT_SYMBOL_NOVERS(__divqu);
+EXPORT_SYMBOL_NOVERS(__reml);
+EXPORT_SYMBOL_NOVERS(__remlu);
+EXPORT_SYMBOL_NOVERS(__remq);
+EXPORT_SYMBOL_NOVERS(__remqu);
+EXPORT_SYMBOL_NOVERS(memcpy);
+EXPORT_SYMBOL_NOVERS(memset);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov