1#include <linux/config.h> 2#include <linux/module.h> 3#include <linux/smp.h> 4#include <linux/user.h> 5#include <linux/mca.h> 6#include <linux/sched.h> 7#include <linux/in6.h> 8#include <linux/interrupt.h> 9#include <linux/smp_lock.h> 10#include <linux/pm.h> 11#include <linux/pci.h> 12#include <linux/kernel.h> 13#include <linux/string.h> 14#include <linux/tty.h> 15#include <linux/string.h> 16 17#include <asm/semaphore.h> 18#include <asm/processor.h> 19#include <asm/i387.h> 20#include <asm/uaccess.h> 21#include <asm/checksum.h> 22#include <asm/io.h> 23#include <asm/hardirq.h> 24#include <asm/delay.h> 25#include <asm/irq.h> 26#include <asm/mmx.h> 27#include <asm/desc.h> 28#include <asm/pgtable.h> 29#include <asm/pgalloc.h> 30#include <asm/kdebug.h> 31#include <asm/pgtable.h> 32#include <asm/proto.h> 33#define __KERNEL_SYSCALLS__ 1 34#include <asm/unistd.h> 35 36extern spinlock_t rtc_lock; 37 38#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_HD) || defined(CONFIG_BLK_DEV_IDE_MODULE) || defined(CONFIG_BLK_DEV_HD_MODULE) 39extern struct drive_info_struct drive_info; 40EXPORT_SYMBOL(drive_info); 41#endif 42 43/* platform dependent support */ 44EXPORT_SYMBOL(boot_cpu_data); 45EXPORT_SYMBOL(dump_fpu); 46EXPORT_SYMBOL(__ioremap); 47EXPORT_SYMBOL(iounmap); 48EXPORT_SYMBOL(enable_irq); 49EXPORT_SYMBOL(disable_irq); 50EXPORT_SYMBOL(disable_irq_nosync); 51EXPORT_SYMBOL(probe_irq_mask); 52EXPORT_SYMBOL(kernel_thread); 53EXPORT_SYMBOL(pm_idle); 54EXPORT_SYMBOL(pm_power_off); 55 56#ifdef CONFIG_IO_DEBUG 57EXPORT_SYMBOL(__io_virt_debug); 58#endif 59 60EXPORT_SYMBOL_NOVERS(__down_failed); 61EXPORT_SYMBOL_NOVERS(__down_failed_interruptible); 62EXPORT_SYMBOL_NOVERS(__down_failed_trylock); 63EXPORT_SYMBOL_NOVERS(__up_wakeup); 64/* Networking helper routines. */ 65EXPORT_SYMBOL(csum_partial_copy_nocheck); 66/* Delay loops */ 67EXPORT_SYMBOL(__udelay); 68EXPORT_SYMBOL(__delay); 69EXPORT_SYMBOL(__const_udelay); 70 71EXPORT_SYMBOL_NOVERS(__get_user_1); 72EXPORT_SYMBOL_NOVERS(__get_user_2); 73EXPORT_SYMBOL_NOVERS(__get_user_4); 74EXPORT_SYMBOL_NOVERS(__get_user_8); 75EXPORT_SYMBOL_NOVERS(__put_user_1); 76EXPORT_SYMBOL_NOVERS(__put_user_2); 77EXPORT_SYMBOL_NOVERS(__put_user_4); 78EXPORT_SYMBOL_NOVERS(__put_user_8); 79 80EXPORT_SYMBOL_NOVERS(clear_page); 81 82EXPORT_SYMBOL(strtok); 83EXPORT_SYMBOL(strpbrk); 84EXPORT_SYMBOL(strstr); 85 86EXPORT_SYMBOL(strncpy_from_user); 87EXPORT_SYMBOL(__strncpy_from_user); 88EXPORT_SYMBOL(clear_user); 89EXPORT_SYMBOL(__clear_user); 90EXPORT_SYMBOL(strnlen_user); 91 92EXPORT_SYMBOL(pci_alloc_consistent); 93EXPORT_SYMBOL(pci_free_consistent); 94 95EXPORT_SYMBOL(pci_map_sg); 96EXPORT_SYMBOL(pci_unmap_sg); 97 98#ifdef CONFIG_PCI 99EXPORT_SYMBOL(pcibios_penalize_isa_irq); 100EXPORT_SYMBOL(pci_mem_start); 101#endif 102 103#ifdef CONFIG_SMP 104EXPORT_SYMBOL(cpu_data); 105EXPORT_SYMBOL(kernel_flag_cacheline); 106EXPORT_SYMBOL(smp_num_cpus); 107EXPORT_SYMBOL(cpu_online_map); 108extern void __read_lock_failed(void); 109extern void __write_lock_failed(void); 110EXPORT_SYMBOL_NOVERS(__write_lock_failed); 111EXPORT_SYMBOL_NOVERS(__read_lock_failed); 112 113/* Global SMP irq stuff */ 114EXPORT_SYMBOL(synchronize_irq); 115EXPORT_SYMBOL(global_irq_holder); 116EXPORT_SYMBOL(__global_cli); 117EXPORT_SYMBOL(__global_sti); 118EXPORT_SYMBOL(__global_save_flags); 119EXPORT_SYMBOL(__global_restore_flags); 120EXPORT_SYMBOL(smp_call_function); 121 122/* TLB flushing */ 123EXPORT_SYMBOL(flush_tlb_page); 124#endif 125 126#ifdef CONFIG_MCA 127EXPORT_SYMBOL(machine_id); 128#endif 129 130#ifdef CONFIG_VT 131EXPORT_SYMBOL(screen_info); 132#endif 133 134EXPORT_SYMBOL(get_wchan); 135 136EXPORT_SYMBOL(rtc_lock); 137 138/* Export string functions. We normally rely on gcc builtin for most of these, 139 but gcc sometimes decides not to inline them. */ 140#undef memcpy 141#undef memset 142#undef memmove 143#undef strlen 144#undef strcpy 145#undef strcmp 146#undef strncmp 147#undef strncpy 148#undef strchr 149#undef strcmp 150#undef bcopy 151extern void * memcpy(void *,const void *,__kernel_size_t); 152extern void * memset(void *,int,__kernel_size_t); 153extern __kernel_size_t strlen(const char *); 154extern int strcmp(const char *,const char *); 155extern char * strcpy(char *,const char *); 156extern char * bcopy(const char * src, char * dest, int count); 157 158EXPORT_SYMBOL_NOVERS(memcpy); 159EXPORT_SYMBOL_NOVERS(__memcpy); 160EXPORT_SYMBOL_NOVERS(memset); 161EXPORT_SYMBOL_NOVERS(strlen); 162EXPORT_SYMBOL_NOVERS(strcpy); 163EXPORT_SYMBOL_NOVERS(memmove); 164EXPORT_SYMBOL_NOVERS(strncmp); 165EXPORT_SYMBOL_NOVERS(strncpy); 166EXPORT_SYMBOL_NOVERS(strchr); 167EXPORT_SYMBOL_NOVERS(strcat); 168EXPORT_SYMBOL_NOVERS(strcmp); 169EXPORT_SYMBOL_NOVERS(strncat); 170EXPORT_SYMBOL_NOVERS(memchr); 171EXPORT_SYMBOL_NOVERS(strrchr); 172EXPORT_SYMBOL_NOVERS(strnlen); 173EXPORT_SYMBOL_NOVERS(memcmp); 174EXPORT_SYMBOL_NOVERS(memscan); 175EXPORT_SYMBOL_NOVERS(bcopy); 176 177EXPORT_SYMBOL(empty_zero_page); 178 179#ifdef CONFIG_HAVE_DEC_LOCK 180EXPORT_SYMBOL(atomic_dec_and_lock); 181#endif 182 183EXPORT_SYMBOL(die_chain); 184 185extern void do_softirq_thunk(void); 186EXPORT_SYMBOL_NOVERS(do_softirq_thunk); 187 188extern unsigned long __supported_pte_mask; 189EXPORT_SYMBOL(__supported_pte_mask); 190 191EXPORT_SYMBOL(init_level4_pgt); 192 193EXPORT_SYMBOL(copy_from_user); 194EXPORT_SYMBOL(copy_to_user); 195EXPORT_SYMBOL(copy_user_generic); 196 197/* Export kernel syscalls */ 198EXPORT_SYMBOL(sys_wait4); 199EXPORT_SYMBOL(sys_exit); 200EXPORT_SYMBOL(sys_write); 201EXPORT_SYMBOL(sys_read); 202EXPORT_SYMBOL(sys_open); 203EXPORT_SYMBOL(sys_lseek); 204EXPORT_SYMBOL(sys_dup); 205EXPORT_SYMBOL(sys_delete_module); 206EXPORT_SYMBOL(sys_sync); 207EXPORT_SYMBOL(sys_pause); 208EXPORT_SYMBOL(sys_setsid); /* Rather dubious */ 209 210 211EXPORT_SYMBOL(memcpy_fromio); 212EXPORT_SYMBOL(memcpy_toio); 213 214EXPORT_SYMBOL(ip_compute_csum); 215 216 217#ifdef CONFIG_DISCONTIGMEM 218EXPORT_SYMBOL(memnode_shift); 219EXPORT_SYMBOL(memnodemap); 220EXPORT_SYMBOL(plat_node_data); 221EXPORT_SYMBOL(fake_node); 222#endif 223