Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* |
Uwe Zeisberger | f30c226 | 2006-10-03 23:01:26 +0200 | [diff] [blame] | 2 | * linux/arch/alpha/kernel/alpha_ksyms.c |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 3 | * |
| 4 | * Export the alpha-specific functions that are needed for loadable |
| 5 | * modules. |
| 6 | */ |
| 7 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 8 | #include <linux/module.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 9 | #include <asm/console.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 10 | #include <asm/uaccess.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 11 | #include <asm/checksum.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 12 | #include <asm/fpu.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 13 | #include <asm/machvec.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 14 | |
Al Viro | 78b93f2 | 2006-10-12 19:00:35 +0100 | [diff] [blame] | 15 | #include <linux/syscalls.h> |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 16 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 17 | /* these are C runtime functions with special calling conventions: */ |
| 18 | extern void __divl (void); |
| 19 | extern void __reml (void); |
| 20 | extern void __divq (void); |
| 21 | extern void __remq (void); |
| 22 | extern void __divlu (void); |
| 23 | extern void __remlu (void); |
| 24 | extern void __divqu (void); |
| 25 | extern void __remqu (void); |
| 26 | |
| 27 | EXPORT_SYMBOL(alpha_mv); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 28 | EXPORT_SYMBOL(callback_getenv); |
| 29 | EXPORT_SYMBOL(callback_setenv); |
| 30 | EXPORT_SYMBOL(callback_save_env); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 31 | |
| 32 | /* platform dependent support */ |
| 33 | EXPORT_SYMBOL(strcat); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 34 | EXPORT_SYMBOL(strcpy); |
| 35 | EXPORT_SYMBOL(strlen); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 36 | EXPORT_SYMBOL(strncpy); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 37 | EXPORT_SYMBOL(strncat); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 38 | EXPORT_SYMBOL(strchr); |
| 39 | EXPORT_SYMBOL(strrchr); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 40 | EXPORT_SYMBOL(memmove); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 41 | EXPORT_SYMBOL(__memcpy); |
| 42 | EXPORT_SYMBOL(__memset); |
| 43 | EXPORT_SYMBOL(__memsetw); |
| 44 | EXPORT_SYMBOL(__constant_c_memset); |
| 45 | EXPORT_SYMBOL(copy_page); |
| 46 | EXPORT_SYMBOL(clear_page); |
| 47 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 48 | EXPORT_SYMBOL(alpha_read_fp_reg); |
| 49 | EXPORT_SYMBOL(alpha_read_fp_reg_s); |
| 50 | EXPORT_SYMBOL(alpha_write_fp_reg); |
| 51 | EXPORT_SYMBOL(alpha_write_fp_reg_s); |
| 52 | |
Al Viro | cff52da | 2006-10-11 17:40:22 +0100 | [diff] [blame] | 53 | /* entry.S */ |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 54 | EXPORT_SYMBOL(kernel_thread); |
Arnd Bergmann | 3db03b4 | 2006-10-02 02:18:31 -0700 | [diff] [blame] | 55 | EXPORT_SYMBOL(kernel_execve); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 56 | |
| 57 | /* Networking helper routines. */ |
| 58 | EXPORT_SYMBOL(csum_tcpudp_magic); |
| 59 | EXPORT_SYMBOL(ip_compute_csum); |
| 60 | EXPORT_SYMBOL(ip_fast_csum); |
| 61 | EXPORT_SYMBOL(csum_partial_copy_nocheck); |
| 62 | EXPORT_SYMBOL(csum_partial_copy_from_user); |
| 63 | EXPORT_SYMBOL(csum_ipv6_magic); |
| 64 | |
| 65 | #ifdef CONFIG_MATHEMU_MODULE |
| 66 | extern long (*alpha_fp_emul_imprecise)(struct pt_regs *, unsigned long); |
| 67 | extern long (*alpha_fp_emul) (unsigned long pc); |
| 68 | EXPORT_SYMBOL(alpha_fp_emul_imprecise); |
| 69 | EXPORT_SYMBOL(alpha_fp_emul); |
| 70 | #endif |
| 71 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 72 | /* |
| 73 | * The following are specially called from the uaccess assembly stubs. |
| 74 | */ |
| 75 | EXPORT_SYMBOL(__copy_user); |
| 76 | EXPORT_SYMBOL(__do_clear_user); |
| 77 | EXPORT_SYMBOL(__strncpy_from_user); |
| 78 | EXPORT_SYMBOL(__strnlen_user); |
| 79 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 80 | /* |
| 81 | * SMP-specific symbols. |
| 82 | */ |
| 83 | |
| 84 | #ifdef CONFIG_SMP |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 85 | EXPORT_SYMBOL(_atomic_dec_and_lock); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 86 | #endif /* CONFIG_SMP */ |
| 87 | |
| 88 | /* |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 89 | * The following are special because they're not called |
| 90 | * explicitly (the C compiler or assembler generates them in |
| 91 | * response to division operations). Fortunately, their |
| 92 | * interface isn't gonna change any time soon now, so it's OK |
| 93 | * to leave it out of version control. |
| 94 | */ |
| 95 | # undef memcpy |
| 96 | # undef memset |
| 97 | EXPORT_SYMBOL(__divl); |
| 98 | EXPORT_SYMBOL(__divlu); |
| 99 | EXPORT_SYMBOL(__divq); |
| 100 | EXPORT_SYMBOL(__divqu); |
| 101 | EXPORT_SYMBOL(__reml); |
| 102 | EXPORT_SYMBOL(__remlu); |
| 103 | EXPORT_SYMBOL(__remq); |
| 104 | EXPORT_SYMBOL(__remqu); |
| 105 | EXPORT_SYMBOL(memcpy); |
| 106 | EXPORT_SYMBOL(memset); |
| 107 | EXPORT_SYMBOL(memchr); |