2005-04-17 02:20:36 +04:00
/* $Id: sparc64_ksyms.c,v 1.121 2002/02/09 19:49:31 davem Exp $
* arch / sparc64 / kernel / sparc64_ksyms . c : Sparc64 specific ksyms support .
*
* Copyright ( C ) 1996 David S . Miller ( davem @ caip . rutgers . edu )
* Copyright ( C ) 1996 Eddie C . Dost ( ecd @ skynet . be )
* Copyright ( C ) 1999 Jakub Jelinek ( jj @ ultra . linux . cz )
*/
/* Tell string.h we don't want memcpy etc. as cpp defines */
# define EXPORT_SYMTAB_STROPS
# define PROMLIB_INTERNAL
# include <linux/module.h>
# include <linux/types.h>
# include <linux/string.h>
# include <linux/sched.h>
# include <linux/in6.h>
# include <linux/pci.h>
# include <linux/interrupt.h>
# include <linux/fs_struct.h>
# include <linux/fs.h>
# include <linux/mm.h>
# include <linux/socket.h>
# include <linux/syscalls.h>
# include <linux/percpu.h>
# include <linux/init.h>
# include <net/compat.h>
# include <asm/oplib.h>
# include <asm/delay.h>
# include <asm/system.h>
# include <asm/auxio.h>
# include <asm/pgtable.h>
# include <asm/io.h>
# include <asm/irq.h>
# include <asm/idprom.h>
# include <asm/svr4.h>
# include <asm/elf.h>
# include <asm/head.h>
# include <asm/smp.h>
# include <asm/mostek.h>
# include <asm/ptrace.h>
# include <asm/user.h>
# include <asm/uaccess.h>
# include <asm/checksum.h>
# include <asm/fpumacro.h>
# include <asm/pgalloc.h>
# include <asm/cacheflush.h>
# ifdef CONFIG_SBUS
# include <asm/sbus.h>
# include <asm/dma.h>
# endif
# ifdef CONFIG_PCI
# include <asm/ebus.h>
# include <asm/isa.h>
# endif
# include <asm/a.out.h>
# include <asm/ns87303.h>
# include <asm/timer.h>
# include <asm/cpudata.h>
# include <asm/rwsem.h>
struct poll {
int fd ;
short events ;
short revents ;
} ;
extern void die_if_kernel ( char * str , struct pt_regs * regs ) ;
extern pid_t kernel_thread ( int ( * fn ) ( void * ) , void * arg , unsigned long flags ) ;
extern void * __bzero ( void * , size_t ) ;
extern void * __memscan_zero ( void * , size_t ) ;
extern void * __memscan_generic ( void * , int , size_t ) ;
extern int __memcmp ( const void * , const void * , __kernel_size_t ) ;
extern __kernel_size_t strlen ( const char * ) ;
extern void linux_sparc_syscall ( void ) ;
extern void rtrap ( void ) ;
extern void show_regs ( struct pt_regs * ) ;
extern void solaris_syscall ( void ) ;
2005-07-11 03:55:48 +04:00
extern void syscall_trace ( struct pt_regs * , int ) ;
2005-04-17 02:20:36 +04:00
extern u32 sunos_sys_table [ ] , sys_call_table32 [ ] ;
extern void tl0_solaris ( void ) ;
extern void sys_sigsuspend ( void ) ;
extern int svr4_getcontext ( svr4_ucontext_t * uc , struct pt_regs * regs ) ;
extern int svr4_setcontext ( svr4_ucontext_t * uc , struct pt_regs * regs ) ;
extern int compat_sys_ioctl ( unsigned int fd , unsigned int cmd , u32 arg ) ;
extern int ( * handle_mathemu ) ( struct pt_regs * , struct fpustate * ) ;
extern long sparc32_open ( const char __user * filename , int flags , int mode ) ;
extern int io_remap_pfn_range ( struct vm_area_struct * vma , unsigned long from ,
unsigned long pfn , unsigned long size , pgprot_t prot ) ;
extern void ( * prom_palette ) ( int ) ;
extern int __ashrdi3 ( int , int ) ;
extern int dump_fpu ( struct pt_regs * regs , elf_fpregset_t * fpregs ) ;
extern unsigned int sys_call_table [ ] ;
extern void xor_vis_2 ( unsigned long , unsigned long * , unsigned long * ) ;
extern void xor_vis_3 ( unsigned long , unsigned long * , unsigned long * ,
unsigned long * ) ;
extern void xor_vis_4 ( unsigned long , unsigned long * , unsigned long * ,
unsigned long * , unsigned long * ) ;
extern void xor_vis_5 ( unsigned long , unsigned long * , unsigned long * ,
unsigned long * , unsigned long * , unsigned long * ) ;
2006-02-26 04:16:29 +03:00
extern void xor_niagara_2 ( unsigned long , unsigned long * , unsigned long * ) ;
extern void xor_niagara_3 ( unsigned long , unsigned long * , unsigned long * ,
unsigned long * ) ;
extern void xor_niagara_4 ( unsigned long , unsigned long * , unsigned long * ,
unsigned long * , unsigned long * ) ;
extern void xor_niagara_5 ( unsigned long , unsigned long * , unsigned long * ,
unsigned long * , unsigned long * , unsigned long * ) ;
2005-04-17 02:20:36 +04:00
/* Per-CPU information table */
EXPORT_PER_CPU_SYMBOL ( __cpu_data ) ;
/* used by various drivers */
# ifdef CONFIG_SMP
/* Out of line rw-locking implementation. */
EXPORT_SYMBOL ( __read_lock ) ;
EXPORT_SYMBOL ( __read_unlock ) ;
EXPORT_SYMBOL ( __write_lock ) ;
EXPORT_SYMBOL ( __write_unlock ) ;
EXPORT_SYMBOL ( __write_trylock ) ;
# if defined(CONFIG_MCOUNT)
extern void _mcount ( void ) ;
EXPORT_SYMBOL ( _mcount ) ;
# endif
/* CPU online map and active count. */
EXPORT_SYMBOL ( cpu_online_map ) ;
EXPORT_SYMBOL ( phys_cpu_present_map ) ;
EXPORT_SYMBOL ( smp_call_function ) ;
# endif /* CONFIG_SMP */
EXPORT_SYMBOL ( sparc64_get_clock_tick ) ;
/* semaphores */
EXPORT_SYMBOL ( down ) ;
EXPORT_SYMBOL ( down_trylock ) ;
EXPORT_SYMBOL ( down_interruptible ) ;
EXPORT_SYMBOL ( up ) ;
/* RW semaphores */
EXPORT_SYMBOL ( __down_read ) ;
EXPORT_SYMBOL ( __down_read_trylock ) ;
EXPORT_SYMBOL ( __down_write ) ;
EXPORT_SYMBOL ( __down_write_trylock ) ;
EXPORT_SYMBOL ( __up_read ) ;
EXPORT_SYMBOL ( __up_write ) ;
EXPORT_SYMBOL ( __downgrade_write ) ;
/* Atomic counter implementation. */
EXPORT_SYMBOL ( atomic_add ) ;
EXPORT_SYMBOL ( atomic_add_ret ) ;
EXPORT_SYMBOL ( atomic_sub ) ;
EXPORT_SYMBOL ( atomic_sub_ret ) ;
EXPORT_SYMBOL ( atomic64_add ) ;
EXPORT_SYMBOL ( atomic64_add_ret ) ;
EXPORT_SYMBOL ( atomic64_sub ) ;
EXPORT_SYMBOL ( atomic64_sub_ret ) ;
/* Atomic bit operations. */
EXPORT_SYMBOL ( test_and_set_bit ) ;
EXPORT_SYMBOL ( test_and_clear_bit ) ;
EXPORT_SYMBOL ( test_and_change_bit ) ;
EXPORT_SYMBOL ( set_bit ) ;
EXPORT_SYMBOL ( clear_bit ) ;
EXPORT_SYMBOL ( change_bit ) ;
EXPORT_SYMBOL ( __flushw_user ) ;
EXPORT_SYMBOL ( tlb_type ) ;
EXPORT_SYMBOL ( get_fb_unmapped_area ) ;
EXPORT_SYMBOL ( flush_icache_range ) ;
EXPORT_SYMBOL ( flush_dcache_page ) ;
# ifdef DCACHE_ALIASING_POSSIBLE
EXPORT_SYMBOL ( __flush_dcache_range ) ;
# endif
EXPORT_SYMBOL ( mostek_lock ) ;
EXPORT_SYMBOL ( mstk48t02_regs ) ;
# ifdef CONFIG_SUN_AUXIO
EXPORT_SYMBOL ( auxio_set_led ) ;
EXPORT_SYMBOL ( auxio_set_lte ) ;
# endif
# ifdef CONFIG_SBUS
EXPORT_SYMBOL ( sbus_root ) ;
EXPORT_SYMBOL ( dma_chain ) ;
EXPORT_SYMBOL ( sbus_set_sbus64 ) ;
EXPORT_SYMBOL ( sbus_alloc_consistent ) ;
EXPORT_SYMBOL ( sbus_free_consistent ) ;
EXPORT_SYMBOL ( sbus_map_single ) ;
EXPORT_SYMBOL ( sbus_unmap_single ) ;
EXPORT_SYMBOL ( sbus_map_sg ) ;
EXPORT_SYMBOL ( sbus_unmap_sg ) ;
EXPORT_SYMBOL ( sbus_dma_sync_single_for_cpu ) ;
EXPORT_SYMBOL ( sbus_dma_sync_single_for_device ) ;
EXPORT_SYMBOL ( sbus_dma_sync_sg_for_cpu ) ;
EXPORT_SYMBOL ( sbus_dma_sync_sg_for_device ) ;
# endif
EXPORT_SYMBOL ( outsb ) ;
EXPORT_SYMBOL ( outsw ) ;
EXPORT_SYMBOL ( outsl ) ;
EXPORT_SYMBOL ( insb ) ;
EXPORT_SYMBOL ( insw ) ;
EXPORT_SYMBOL ( insl ) ;
# ifdef CONFIG_PCI
EXPORT_SYMBOL ( ebus_chain ) ;
EXPORT_SYMBOL ( isa_chain ) ;
EXPORT_SYMBOL ( pci_memspace_mask ) ;
EXPORT_SYMBOL ( pci_alloc_consistent ) ;
EXPORT_SYMBOL ( pci_free_consistent ) ;
EXPORT_SYMBOL ( pci_map_single ) ;
EXPORT_SYMBOL ( pci_unmap_single ) ;
EXPORT_SYMBOL ( pci_map_sg ) ;
EXPORT_SYMBOL ( pci_unmap_sg ) ;
EXPORT_SYMBOL ( pci_dma_sync_single_for_cpu ) ;
EXPORT_SYMBOL ( pci_dma_sync_sg_for_cpu ) ;
EXPORT_SYMBOL ( pci_dma_supported ) ;
# endif
/* I/O device mmaping on Sparc64. */
EXPORT_SYMBOL ( io_remap_pfn_range ) ;
2006-01-19 13:42:49 +03:00
# ifdef CONFIG_COMPAT
2005-04-17 02:20:36 +04:00
/* Solaris/SunOS binary compatibility */
EXPORT_SYMBOL ( verify_compat_iovec ) ;
2006-01-19 13:42:49 +03:00
# endif
2005-04-17 02:20:36 +04:00
EXPORT_SYMBOL ( dump_fpu ) ;
EXPORT_SYMBOL ( put_fs_struct ) ;
/* math-emu wants this */
EXPORT_SYMBOL ( die_if_kernel ) ;
/* Kernel thread creation. */
EXPORT_SYMBOL ( kernel_thread ) ;
/* prom symbols */
EXPORT_SYMBOL ( idprom ) ;
EXPORT_SYMBOL ( prom_root_node ) ;
EXPORT_SYMBOL ( prom_getchild ) ;
EXPORT_SYMBOL ( prom_getsibling ) ;
EXPORT_SYMBOL ( prom_searchsiblings ) ;
EXPORT_SYMBOL ( prom_firstprop ) ;
EXPORT_SYMBOL ( prom_nextprop ) ;
EXPORT_SYMBOL ( prom_getproplen ) ;
EXPORT_SYMBOL ( prom_getproperty ) ;
EXPORT_SYMBOL ( prom_node_has_property ) ;
EXPORT_SYMBOL ( prom_setprop ) ;
EXPORT_SYMBOL ( saved_command_line ) ;
EXPORT_SYMBOL ( prom_getname ) ;
EXPORT_SYMBOL ( prom_finddevice ) ;
EXPORT_SYMBOL ( prom_feval ) ;
EXPORT_SYMBOL ( prom_getbool ) ;
EXPORT_SYMBOL ( prom_getstring ) ;
EXPORT_SYMBOL ( prom_getint ) ;
EXPORT_SYMBOL ( prom_getintdefault ) ;
EXPORT_SYMBOL ( __prom_getchild ) ;
EXPORT_SYMBOL ( __prom_getsibling ) ;
/* sparc library symbols */
EXPORT_SYMBOL ( strlen ) ;
EXPORT_SYMBOL ( __strlen_user ) ;
EXPORT_SYMBOL ( __strnlen_user ) ;
# ifdef CONFIG_SOLARIS_EMUL_MODULE
EXPORT_SYMBOL ( linux_sparc_syscall ) ;
EXPORT_SYMBOL ( rtrap ) ;
EXPORT_SYMBOL ( show_regs ) ;
EXPORT_SYMBOL ( solaris_syscall ) ;
EXPORT_SYMBOL ( syscall_trace ) ;
EXPORT_SYMBOL ( sunos_sys_table ) ;
EXPORT_SYMBOL ( sys_call_table32 ) ;
EXPORT_SYMBOL ( tl0_solaris ) ;
EXPORT_SYMBOL ( sys_sigsuspend ) ;
EXPORT_SYMBOL ( sys_getppid ) ;
EXPORT_SYMBOL ( sys_getpid ) ;
EXPORT_SYMBOL ( sys_geteuid ) ;
EXPORT_SYMBOL ( sys_getuid ) ;
EXPORT_SYMBOL ( sys_getegid ) ;
EXPORT_SYMBOL ( sys_getgid ) ;
EXPORT_SYMBOL ( svr4_getcontext ) ;
EXPORT_SYMBOL ( svr4_setcontext ) ;
EXPORT_SYMBOL ( compat_sys_ioctl ) ;
EXPORT_SYMBOL ( sparc32_open ) ;
# endif
/* Special internal versions of library functions. */
EXPORT_SYMBOL ( _clear_page ) ;
EXPORT_SYMBOL ( clear_user_page ) ;
EXPORT_SYMBOL ( copy_user_page ) ;
EXPORT_SYMBOL ( __bzero ) ;
EXPORT_SYMBOL ( __memscan_zero ) ;
EXPORT_SYMBOL ( __memscan_generic ) ;
EXPORT_SYMBOL ( __memcmp ) ;
EXPORT_SYMBOL ( __memset ) ;
EXPORT_SYMBOL ( csum_partial ) ;
EXPORT_SYMBOL ( csum_partial_copy_nocheck ) ;
EXPORT_SYMBOL ( __csum_partial_copy_from_user ) ;
EXPORT_SYMBOL ( __csum_partial_copy_to_user ) ;
EXPORT_SYMBOL ( ip_fast_csum ) ;
/* Moving data to/from/in userspace. */
EXPORT_SYMBOL ( ___copy_to_user ) ;
EXPORT_SYMBOL ( ___copy_from_user ) ;
EXPORT_SYMBOL ( ___copy_in_user ) ;
EXPORT_SYMBOL ( copy_to_user_fixup ) ;
EXPORT_SYMBOL ( copy_from_user_fixup ) ;
EXPORT_SYMBOL ( copy_in_user_fixup ) ;
EXPORT_SYMBOL ( __strncpy_from_user ) ;
2006-02-17 21:35:23 +03:00
EXPORT_SYMBOL ( __clear_user ) ;
2005-04-17 02:20:36 +04:00
/* Various address conversion macros use this. */
EXPORT_SYMBOL ( sparc64_valid_addr_bitmap ) ;
/* No version information on this, heavily used in inline asm,
* and will always be ' void __ret_efault ( void ) ' .
*/
EXPORT_SYMBOL ( __ret_efault ) ;
/* No version information on these, as gcc produces such symbols. */
EXPORT_SYMBOL ( memcmp ) ;
EXPORT_SYMBOL ( memcpy ) ;
EXPORT_SYMBOL ( memset ) ;
EXPORT_SYMBOL ( memmove ) ;
EXPORT_SYMBOL ( strncmp ) ;
/* Delay routines. */
EXPORT_SYMBOL ( __udelay ) ;
EXPORT_SYMBOL ( __ndelay ) ;
EXPORT_SYMBOL ( __const_udelay ) ;
EXPORT_SYMBOL ( __delay ) ;
void VISenter ( void ) ;
/* RAID code needs this */
EXPORT_SYMBOL ( VISenter ) ;
/* for input/keybdev */
EXPORT_SYMBOL ( sun_do_break ) ;
EXPORT_SYMBOL ( serial_console ) ;
EXPORT_SYMBOL ( stop_a_enabled ) ;
# ifdef CONFIG_DEBUG_BUGVERBOSE
EXPORT_SYMBOL ( do_BUG ) ;
# endif
/* for ns8703 */
EXPORT_SYMBOL ( ns87303_lock ) ;
/* for solaris compat module */
EXPORT_SYMBOL_GPL ( sys_call_table ) ;
EXPORT_SYMBOL ( tick_ops ) ;
EXPORT_SYMBOL ( xor_vis_2 ) ;
EXPORT_SYMBOL ( xor_vis_3 ) ;
EXPORT_SYMBOL ( xor_vis_4 ) ;
EXPORT_SYMBOL ( xor_vis_5 ) ;
2006-02-26 04:16:29 +03:00
EXPORT_SYMBOL ( xor_niagara_2 ) ;
EXPORT_SYMBOL ( xor_niagara_3 ) ;
EXPORT_SYMBOL ( xor_niagara_4 ) ;
EXPORT_SYMBOL ( xor_niagara_5 ) ;
2005-04-17 02:20:36 +04:00
EXPORT_SYMBOL ( prom_palette ) ;