linux-bk/arch/alpha/kernel/alpha_ksyms.c
<<
>>
Prefs
   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
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.