| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 1 | #include <linux/module.h> | 
|  | 2 | #include <linux/threads.h> | 
|  | 3 | #include <linux/smp.h> | 
|  | 4 | #include <linux/sched.h> | 
|  | 5 | #include <linux/elfcore.h> | 
|  | 6 | #include <linux/string.h> | 
|  | 7 | #include <linux/interrupt.h> | 
| Jon Smirl | 894673e | 2006-07-10 04:44:13 -0700 | [diff] [blame] | 8 | #include <linux/screen_info.h> | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 9 | #include <linux/vt_kern.h> | 
|  | 10 | #include <linux/nvram.h> | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 11 | #include <linux/irq.h> | 
|  | 12 | #include <linux/pci.h> | 
|  | 13 | #include <linux/delay.h> | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 14 | #include <linux/bitops.h> | 
|  | 15 |  | 
|  | 16 | #include <asm/page.h> | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 17 | #include <asm/processor.h> | 
| Emil Medve | 576e393 | 2007-09-20 12:25:17 +1000 | [diff] [blame] | 18 | #include <asm/cacheflush.h> | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 19 | #include <asm/uaccess.h> | 
|  | 20 | #include <asm/io.h> | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 21 | #include <asm/atomic.h> | 
|  | 22 | #include <asm/checksum.h> | 
|  | 23 | #include <asm/pgtable.h> | 
|  | 24 | #include <asm/tlbflush.h> | 
|  | 25 | #include <linux/adb.h> | 
|  | 26 | #include <linux/cuda.h> | 
|  | 27 | #include <linux/pmu.h> | 
|  | 28 | #include <asm/prom.h> | 
|  | 29 | #include <asm/system.h> | 
|  | 30 | #include <asm/pci-bridge.h> | 
|  | 31 | #include <asm/irq.h> | 
|  | 32 | #include <asm/pmac_feature.h> | 
|  | 33 | #include <asm/dma.h> | 
|  | 34 | #include <asm/machdep.h> | 
|  | 35 | #include <asm/hw_irq.h> | 
|  | 36 | #include <asm/nvram.h> | 
|  | 37 | #include <asm/mmu_context.h> | 
|  | 38 | #include <asm/backlight.h> | 
|  | 39 | #include <asm/time.h> | 
|  | 40 | #include <asm/cputable.h> | 
|  | 41 | #include <asm/btext.h> | 
|  | 42 | #include <asm/div64.h> | 
| David Gibson | c5ff700 | 2005-11-09 11:21:07 +1100 | [diff] [blame] | 43 | #include <asm/signal.h> | 
| David Gibson | a2c7021 | 2007-02-06 11:48:28 +1100 | [diff] [blame] | 44 | #include <asm/dcr.h> | 
| Steven Rostedt | ccbfac2 | 2008-05-22 14:31:07 -0400 | [diff] [blame] | 45 | #include <asm/ftrace.h> | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 46 |  | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 47 | #ifdef CONFIG_PPC32 | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 48 | extern void transfer_to_handler(void); | 
|  | 49 | extern void do_IRQ(struct pt_regs *regs); | 
| Stephen Rothwell | dc1c1ca | 2005-10-01 18:43:42 +1000 | [diff] [blame] | 50 | extern void machine_check_exception(struct pt_regs *regs); | 
|  | 51 | extern void alignment_exception(struct pt_regs *regs); | 
|  | 52 | extern void program_check_exception(struct pt_regs *regs); | 
|  | 53 | extern void single_step_exception(struct pt_regs *regs); | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 54 | extern int sys_sigreturn(struct pt_regs *regs); | 
|  | 55 |  | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 56 | EXPORT_SYMBOL(clear_pages); | 
| Joseph Fannin | ab1f89b | 2008-01-02 02:36:07 +1100 | [diff] [blame] | 57 | EXPORT_SYMBOL(copy_page); | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 58 | EXPORT_SYMBOL(ISA_DMA_THRESHOLD); | 
|  | 59 | EXPORT_SYMBOL(DMA_MODE_READ); | 
|  | 60 | EXPORT_SYMBOL(DMA_MODE_WRITE); | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 61 |  | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 62 | EXPORT_SYMBOL(transfer_to_handler); | 
|  | 63 | EXPORT_SYMBOL(do_IRQ); | 
| Stephen Rothwell | dc1c1ca | 2005-10-01 18:43:42 +1000 | [diff] [blame] | 64 | EXPORT_SYMBOL(machine_check_exception); | 
|  | 65 | EXPORT_SYMBOL(alignment_exception); | 
|  | 66 | EXPORT_SYMBOL(program_check_exception); | 
|  | 67 | EXPORT_SYMBOL(single_step_exception); | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 68 | EXPORT_SYMBOL(sys_sigreturn); | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 69 | #endif | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 70 |  | 
| Steven Rostedt | 606576c | 2008-10-06 19:06:12 -0400 | [diff] [blame] | 71 | #ifdef CONFIG_FUNCTION_TRACER | 
| Steven Rostedt | ccbfac2 | 2008-05-22 14:31:07 -0400 | [diff] [blame] | 72 | EXPORT_SYMBOL(_mcount); | 
|  | 73 | #endif | 
|  | 74 |  | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 75 | EXPORT_SYMBOL(strcpy); | 
|  | 76 | EXPORT_SYMBOL(strncpy); | 
|  | 77 | EXPORT_SYMBOL(strcat); | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 78 | EXPORT_SYMBOL(strlen); | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 79 | EXPORT_SYMBOL(strcmp); | 
| Steven Rostedt | 0119536 | 2008-03-01 03:04:57 +1100 | [diff] [blame] | 80 | EXPORT_SYMBOL(strncmp); | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 81 |  | 
|  | 82 | EXPORT_SYMBOL(csum_partial); | 
|  | 83 | EXPORT_SYMBOL(csum_partial_copy_generic); | 
|  | 84 | EXPORT_SYMBOL(ip_fast_csum); | 
|  | 85 | EXPORT_SYMBOL(csum_tcpudp_magic); | 
|  | 86 |  | 
|  | 87 | EXPORT_SYMBOL(__copy_tofrom_user); | 
|  | 88 | EXPORT_SYMBOL(__clear_user); | 
|  | 89 | EXPORT_SYMBOL(__strncpy_from_user); | 
|  | 90 | EXPORT_SYMBOL(__strnlen_user); | 
| David Howells | 3dd836a | 2006-09-12 16:04:25 +0100 | [diff] [blame] | 91 | #ifdef CONFIG_PPC64 | 
|  | 92 | EXPORT_SYMBOL(copy_4K_page); | 
|  | 93 | #endif | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 94 |  | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 95 | #if defined(CONFIG_PCI) && defined(CONFIG_PPC32) | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 96 | EXPORT_SYMBOL(isa_io_base); | 
|  | 97 | EXPORT_SYMBOL(isa_mem_base); | 
|  | 98 | EXPORT_SYMBOL(pci_dram_offset); | 
|  | 99 | EXPORT_SYMBOL(pci_alloc_consistent); | 
|  | 100 | EXPORT_SYMBOL(pci_free_consistent); | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 101 | #endif /* CONFIG_PCI */ | 
|  | 102 |  | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 103 | EXPORT_SYMBOL(start_thread); | 
|  | 104 | EXPORT_SYMBOL(kernel_thread); | 
|  | 105 |  | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 106 | EXPORT_SYMBOL(giveup_fpu); | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 107 | #ifdef CONFIG_ALTIVEC | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 108 | EXPORT_SYMBOL(giveup_altivec); | 
|  | 109 | #endif /* CONFIG_ALTIVEC */ | 
| Michael Neuling | ce48b21 | 2008-06-25 14:07:18 +1000 | [diff] [blame] | 110 | #ifdef CONFIG_VSX | 
|  | 111 | EXPORT_SYMBOL(giveup_vsx); | 
|  | 112 | #endif /* CONFIG_VSX */ | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 113 | #ifdef CONFIG_SPE | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 114 | EXPORT_SYMBOL(giveup_spe); | 
|  | 115 | #endif /* CONFIG_SPE */ | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 116 |  | 
| Paul Mackerras | 666acb9 | 2005-11-29 15:50:58 +1100 | [diff] [blame] | 117 | #ifndef CONFIG_PPC64 | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 118 | EXPORT_SYMBOL(flush_instruction_cache); | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 119 | EXPORT_SYMBOL(flush_tlb_kernel_range); | 
|  | 120 | EXPORT_SYMBOL(flush_tlb_page); | 
|  | 121 | EXPORT_SYMBOL(_tlbie); | 
| Kumar Gala | 0ba3418 | 2008-07-15 16:12:25 -0500 | [diff] [blame] | 122 | #if defined(CONFIG_4xx) || defined(CONFIG_8xx) || defined(CONFIG_FSL_BOOKE) | 
|  | 123 | EXPORT_SYMBOL(_tlbil_va); | 
|  | 124 | #endif | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 125 | #endif | 
| Paul Mackerras | 666acb9 | 2005-11-29 15:50:58 +1100 | [diff] [blame] | 126 | EXPORT_SYMBOL(__flush_icache_range); | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 127 | EXPORT_SYMBOL(flush_dcache_range); | 
|  | 128 |  | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 129 | #ifdef CONFIG_SMP | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 130 | #ifdef CONFIG_PPC32 | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 131 | EXPORT_SYMBOL(smp_hw_index); | 
|  | 132 | #endif | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 133 | #endif | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 134 |  | 
|  | 135 | #ifdef CONFIG_ADB | 
|  | 136 | EXPORT_SYMBOL(adb_request); | 
|  | 137 | EXPORT_SYMBOL(adb_register); | 
|  | 138 | EXPORT_SYMBOL(adb_unregister); | 
|  | 139 | EXPORT_SYMBOL(adb_poll); | 
|  | 140 | EXPORT_SYMBOL(adb_try_handler_change); | 
|  | 141 | #endif /* CONFIG_ADB */ | 
|  | 142 | #ifdef CONFIG_ADB_CUDA | 
|  | 143 | EXPORT_SYMBOL(cuda_request); | 
|  | 144 | EXPORT_SYMBOL(cuda_poll); | 
|  | 145 | #endif /* CONFIG_ADB_CUDA */ | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 146 | EXPORT_SYMBOL(to_tm); | 
|  | 147 |  | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 148 | #ifdef CONFIG_PPC32 | 
|  | 149 | long long __ashrdi3(long long, int); | 
|  | 150 | long long __ashldi3(long long, int); | 
|  | 151 | long long __lshrdi3(long long, int); | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 152 | EXPORT_SYMBOL(__ashrdi3); | 
|  | 153 | EXPORT_SYMBOL(__ashldi3); | 
|  | 154 | EXPORT_SYMBOL(__lshrdi3); | 
| Paul Mackerras | 95ff54f | 2008-03-13 09:39:55 +1100 | [diff] [blame] | 155 | int __ucmpdi2(unsigned long long, unsigned long long); | 
|  | 156 | EXPORT_SYMBOL(__ucmpdi2); | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 157 | #endif | 
|  | 158 |  | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 159 | EXPORT_SYMBOL(memcpy); | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 160 | EXPORT_SYMBOL(memset); | 
|  | 161 | EXPORT_SYMBOL(memmove); | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 162 | EXPORT_SYMBOL(memcmp); | 
|  | 163 | EXPORT_SYMBOL(memchr); | 
|  | 164 |  | 
|  | 165 | #if defined(CONFIG_FB_VGA16_MODULE) | 
|  | 166 | EXPORT_SYMBOL(screen_info); | 
|  | 167 | #endif | 
|  | 168 |  | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 169 | #ifdef CONFIG_PPC32 | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 170 | EXPORT_SYMBOL(timer_interrupt); | 
|  | 171 | EXPORT_SYMBOL(irq_desc); | 
|  | 172 | EXPORT_SYMBOL(tb_ticks_per_jiffy); | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 173 | EXPORT_SYMBOL(cacheable_memcpy); | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 174 | #endif | 
|  | 175 |  | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 176 | #ifdef CONFIG_PPC32 | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 177 | EXPORT_SYMBOL(next_mmu_context); | 
|  | 178 | EXPORT_SYMBOL(set_context); | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 179 | #endif | 
|  | 180 |  | 
|  | 181 | #ifdef CONFIG_PPC_STD_MMU_32 | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 182 | extern long mol_trampoline; | 
|  | 183 | EXPORT_SYMBOL(mol_trampoline); /* For MOL */ | 
|  | 184 | EXPORT_SYMBOL(flush_hash_pages); /* For MOL */ | 
|  | 185 | #ifdef CONFIG_SMP | 
|  | 186 | extern int mmu_hash_lock; | 
|  | 187 | EXPORT_SYMBOL(mmu_hash_lock); /* For MOL */ | 
|  | 188 | #endif /* CONFIG_SMP */ | 
|  | 189 | extern long *intercept_table; | 
|  | 190 | EXPORT_SYMBOL(intercept_table); | 
| Paul Mackerras | 40ef8cb | 2005-10-10 22:50:37 +1000 | [diff] [blame] | 191 | #endif /* CONFIG_PPC_STD_MMU_32 */ | 
| Kumar Gala | 45d8e7a | 2006-12-10 23:15:47 -0600 | [diff] [blame] | 192 | #ifdef CONFIG_PPC_DCR_NATIVE | 
| Paul Mackerras | 20c8c21 | 2005-09-28 20:28:14 +1000 | [diff] [blame] | 193 | EXPORT_SYMBOL(__mtdcr); | 
|  | 194 | EXPORT_SYMBOL(__mfdcr); | 
|  | 195 | #endif | 
| Stephen Rothwell | bceabd1 | 2008-03-13 16:20:31 +1100 | [diff] [blame] | 196 | EXPORT_SYMBOL(empty_zero_page); |