1/* 2 * linux/arch/alpha/kernel/ksyms.c 3 * 4 * Export the alpha-specific functions that are needed for loadable 5 * modules. 6 */ 7 8#include <linux/config.h> 9#include <linux/module.h> 10#include <linux/string.h> 11#include <linux/user.h> 12#include <linux/elfcore.h> 13#include <linux/socket.h> 14#include <linux/in.h> 15#include <linux/in6.h> 16#include <linux/pci.h> 17#include <linux/tty.h> 18#include <linux/mm.h> 19#include <linux/delay.h> 20 21#include <asm/io.h> 22#include <asm/console.h> 23#include <asm/hwrpb.h> 24#include <asm/uaccess.h> 25#include <asm/processor.h> 26#include <asm/checksum.h> 27#include <linux/interrupt.h> 28#include <asm/softirq.h> 29#include <asm/fpu.h> 30#include <asm/irq.h> 31#include <asm/machvec.h> 32#include <asm/pgalloc.h> 33#include <asm/semaphore.h> 34 35#define __KERNEL_SYSCALLS__ 36#include <asm/unistd.h> 37 38extern struct hwrpb_struct *hwrpb; 39extern void dump_thread(struct pt_regs *, struct user *); 40extern int dump_fpu(struct pt_regs *, elf_fpregset_t *); 41extern spinlock_t kernel_flag; 42extern spinlock_t rtc_lock; 43 44/* these are C runtime functions with special calling conventions: */ 45extern void __divl (void); 46extern void __reml (void); 47extern void __divq (void); 48extern void __remq (void); 49extern void __divlu (void); 50extern void __remlu (void); 51extern void __divqu (void); 52extern void __remqu (void); 53 54EXPORT_SYMBOL(alpha_mv); 55EXPORT_SYMBOL(enable_irq); 56EXPORT_SYMBOL(disable_irq); 57EXPORT_SYMBOL(disable_irq_nosync); 58EXPORT_SYMBOL(probe_irq_mask); 59EXPORT_SYMBOL(screen_info); 60EXPORT_SYMBOL(perf_irq); 61EXPORT_SYMBOL(callback_getenv); 62EXPORT_SYMBOL(callback_setenv); 63EXPORT_SYMBOL(callback_save_env); 64#ifdef CONFIG_ALPHA_GENERIC 65EXPORT_SYMBOL(alpha_using_srm); 66#endif /* CONFIG_ALPHA_GENERIC */ 67 68/* platform dependent support */ 69EXPORT_SYMBOL(_inb); 70EXPORT_SYMBOL(_inw); 71EXPORT_SYMBOL(_inl); 72EXPORT_SYMBOL(_outb); 73EXPORT_SYMBOL(_outw); 74EXPORT_SYMBOL(_outl); 75EXPORT_SYMBOL(_readb); 76EXPORT_SYMBOL(_readw); 77EXPORT_SYMBOL(_readl); 78EXPORT_SYMBOL(_writeb); 79EXPORT_SYMBOL(_writew); 80EXPORT_SYMBOL(_writel); 81EXPORT_SYMBOL(___raw_readb); 82EXPORT_SYMBOL(___raw_readw); 83EXPORT_SYMBOL(___raw_readl); 84EXPORT_SYMBOL(___raw_readq); 85EXPORT_SYMBOL(___raw_writeb); 86EXPORT_SYMBOL(___raw_writew); 87EXPORT_SYMBOL(___raw_writel); 88EXPORT_SYMBOL(___raw_writeq); 89EXPORT_SYMBOL(_memcpy_fromio); 90EXPORT_SYMBOL(_memcpy_toio); 91EXPORT_SYMBOL(_memset_c_io); 92EXPORT_SYMBOL(insb); 93EXPORT_SYMBOL(insw); 94EXPORT_SYMBOL(insl); 95EXPORT_SYMBOL(outsb); 96EXPORT_SYMBOL(outsw); 97EXPORT_SYMBOL(outsl); 98EXPORT_SYMBOL(strcat); 99EXPORT_SYMBOL(strcmp); 100EXPORT_SYMBOL(strcpy); 101EXPORT_SYMBOL(strlen); 102EXPORT_SYMBOL(strncmp); 103EXPORT_SYMBOL(strncpy); 104EXPORT_SYMBOL(strnlen); 105EXPORT_SYMBOL(strncat); 106EXPORT_SYMBOL(strstr); 107EXPORT_SYMBOL(strpbrk); 108EXPORT_SYMBOL(strchr); 109EXPORT_SYMBOL(strrchr); 110EXPORT_SYMBOL(memcmp); 111EXPORT_SYMBOL(memmove); 112EXPORT_SYMBOL(memscan); 113EXPORT_SYMBOL(__memcpy); 114EXPORT_SYMBOL(__memset); 115EXPORT_SYMBOL(__memsetw); 116EXPORT_SYMBOL(__constant_c_memset); 117EXPORT_SYMBOL(copy_page); 118EXPORT_SYMBOL(clear_page); 119 120EXPORT_SYMBOL(__delay); 121EXPORT_SYMBOL(__udelay); 122EXPORT_SYMBOL(udelay); 123 124EXPORT_SYMBOL(__direct_map_base); 125EXPORT_SYMBOL(__direct_map_size); 126 127#ifdef CONFIG_PCI 128EXPORT_SYMBOL(pci_alloc_consistent); 129EXPORT_SYMBOL(pci_free_consistent); 130EXPORT_SYMBOL(pci_map_single); 131EXPORT_SYMBOL(pci_map_page); 132EXPORT_SYMBOL(pci_unmap_single); 133EXPORT_SYMBOL(pci_unmap_page); 134EXPORT_SYMBOL(pci_map_sg); 135EXPORT_SYMBOL(pci_unmap_sg); 136EXPORT_SYMBOL(pci_dma_supported); 137EXPORT_SYMBOL(pci_dac_dma_supported); 138EXPORT_SYMBOL(pci_dac_page_to_dma); 139EXPORT_SYMBOL(pci_dac_dma_to_page); 140EXPORT_SYMBOL(pci_dac_dma_to_offset); 141#endif 142 143EXPORT_SYMBOL(dump_thread); 144EXPORT_SYMBOL(dump_fpu); 145EXPORT_SYMBOL(hwrpb); 146EXPORT_SYMBOL(wrusp); 147EXPORT_SYMBOL(start_thread); 148EXPORT_SYMBOL(alpha_read_fp_reg); 149EXPORT_SYMBOL(alpha_read_fp_reg_s); 150EXPORT_SYMBOL(alpha_write_fp_reg); 151EXPORT_SYMBOL(alpha_write_fp_reg_s); 152 153/* In-kernel system calls. */ 154EXPORT_SYMBOL(kernel_thread); 155EXPORT_SYMBOL(sys_open); 156EXPORT_SYMBOL(sys_dup); 157EXPORT_SYMBOL(sys_exit); 158EXPORT_SYMBOL(sys_write); 159EXPORT_SYMBOL(sys_read); 160EXPORT_SYMBOL(sys_lseek); 161EXPORT_SYMBOL(__kernel_execve); 162EXPORT_SYMBOL(sys_setsid); 163EXPORT_SYMBOL(sys_sync); 164EXPORT_SYMBOL(sys_wait4); 165 166/* Networking helper routines. */ 167EXPORT_SYMBOL(csum_tcpudp_magic); 168EXPORT_SYMBOL(ip_compute_csum); 169EXPORT_SYMBOL(ip_fast_csum); 170EXPORT_SYMBOL(csum_partial_copy); 171EXPORT_SYMBOL(csum_partial_copy_nocheck); 172EXPORT_SYMBOL(csum_partial_copy_from_user); 173EXPORT_SYMBOL(csum_ipv6_magic); 174 175#ifdef CONFIG_MATHEMU_MODULE 176extern long (*alpha_fp_emul_imprecise)(struct pt_regs *, unsigned long); 177extern long (*alpha_fp_emul) (unsigned long pc); 178EXPORT_SYMBOL(alpha_fp_emul_imprecise); 179EXPORT_SYMBOL(alpha_fp_emul); 180#endif 181 182#ifdef CONFIG_ALPHA_BROKEN_IRQ_MASK 183EXPORT_SYMBOL(__min_ipl); 184#endif 185 186/* 187 * The following are specially called from the uaccess assembly stubs. 188 */ 189EXPORT_SYMBOL_NOVERS(__copy_user); 190EXPORT_SYMBOL_NOVERS(__do_clear_user); 191EXPORT_SYMBOL(__strncpy_from_user); 192EXPORT_SYMBOL(__strnlen_user); 193 194/* Semaphore helper functions. */ 195EXPORT_SYMBOL(__down_failed); 196EXPORT_SYMBOL(__down_failed_interruptible); 197EXPORT_SYMBOL(__up_wakeup); 198EXPORT_SYMBOL(down); 199EXPORT_SYMBOL(down_interruptible); 200EXPORT_SYMBOL(down_trylock); 201EXPORT_SYMBOL(up); 202 203/* 204 * SMP-specific symbols. 205 */ 206 207#ifdef CONFIG_SMP 208EXPORT_SYMBOL(kernel_flag); 209EXPORT_SYMBOL(synchronize_irq); 210EXPORT_SYMBOL(flush_tlb_all); 211EXPORT_SYMBOL(flush_tlb_mm); 212EXPORT_SYMBOL(flush_tlb_range); 213EXPORT_SYMBOL(flush_tlb_page); 214EXPORT_SYMBOL(smp_imb); 215EXPORT_SYMBOL(cpu_data); 216EXPORT_SYMBOL(__cpu_number_map); 217EXPORT_SYMBOL(smp_num_cpus); 218EXPORT_SYMBOL(smp_call_function); 219EXPORT_SYMBOL(smp_call_function_on_cpu); 220EXPORT_SYMBOL(global_irq_holder); 221EXPORT_SYMBOL(__global_cli); 222EXPORT_SYMBOL(__global_sti); 223EXPORT_SYMBOL(__global_save_flags); 224EXPORT_SYMBOL(__global_restore_flags); 225EXPORT_SYMBOL(atomic_dec_and_lock); 226#ifdef CONFIG_DEBUG_SPINLOCK 227EXPORT_SYMBOL(spin_unlock); 228EXPORT_SYMBOL(debug_spin_lock); 229EXPORT_SYMBOL(debug_spin_trylock); 230#endif 231#ifdef CONFIG_DEBUG_RWLOCK 232EXPORT_SYMBOL(write_lock); 233EXPORT_SYMBOL(read_lock); 234#endif 235EXPORT_SYMBOL(cpu_present_mask); 236#endif /* CONFIG_SMP */ 237 238EXPORT_SYMBOL(rtc_lock); 239 240/* 241 * The following are special because they're not called 242 * explicitly (the C compiler or assembler generates them in 243 * response to division operations). Fortunately, their 244 * interface isn't gonna change any time soon now, so it's OK 245 * to leave it out of version control. 246 */ 247# undef memcpy 248# undef memset 249EXPORT_SYMBOL_NOVERS(__divl); 250EXPORT_SYMBOL_NOVERS(__divlu); 251EXPORT_SYMBOL_NOVERS(__divq); 252EXPORT_SYMBOL_NOVERS(__divqu); 253EXPORT_SYMBOL_NOVERS(__reml); 254EXPORT_SYMBOL_NOVERS(__remlu); 255EXPORT_SYMBOL_NOVERS(__remq); 256EXPORT_SYMBOL_NOVERS(__remqu); 257EXPORT_SYMBOL_NOVERS(memcpy); 258EXPORT_SYMBOL_NOVERS(memset); 259EXPORT_SYMBOL_NOVERS(memchr); 260 261EXPORT_SYMBOL(get_wchan); 262 263#ifdef CONFIG_ALPHA_IRONGATE 264EXPORT_SYMBOL(irongate_ioremap); 265EXPORT_SYMBOL(irongate_iounmap); 266#endif 267

