2005-04-16 16:20:36 -06:00
|
|
|
#include <linux/module.h>
|
|
|
|
#include <linux/threads.h>
|
|
|
|
#include <linux/smp.h>
|
|
|
|
#include <linux/sched.h>
|
|
|
|
#include <linux/elfcore.h>
|
|
|
|
#include <linux/string.h>
|
|
|
|
#include <linux/interrupt.h>
|
2006-07-10 05:44:13 -06:00
|
|
|
#include <linux/screen_info.h>
|
2005-04-16 16:20:36 -06:00
|
|
|
#include <linux/vt_kern.h>
|
|
|
|
#include <linux/nvram.h>
|
|
|
|
#include <linux/console.h>
|
|
|
|
#include <linux/irq.h>
|
|
|
|
#include <linux/pci.h>
|
|
|
|
#include <linux/delay.h>
|
|
|
|
#include <linux/ide.h>
|
|
|
|
#include <linux/pm.h>
|
|
|
|
#include <linux/bitops.h>
|
|
|
|
|
|
|
|
#include <asm/page.h>
|
|
|
|
#include <asm/processor.h>
|
|
|
|
#include <asm/uaccess.h>
|
|
|
|
#include <asm/io.h>
|
|
|
|
#include <asm/ide.h>
|
|
|
|
#include <asm/atomic.h>
|
|
|
|
#include <asm/checksum.h>
|
|
|
|
#include <asm/pgtable.h>
|
|
|
|
#include <asm/tlbflush.h>
|
|
|
|
#include <linux/adb.h>
|
|
|
|
#include <linux/cuda.h>
|
|
|
|
#include <linux/pmu.h>
|
|
|
|
#include <asm/system.h>
|
|
|
|
#include <asm/pci-bridge.h>
|
|
|
|
#include <asm/irq.h>
|
|
|
|
#include <asm/dma.h>
|
|
|
|
#include <asm/machdep.h>
|
|
|
|
#include <asm/hw_irq.h>
|
|
|
|
#include <asm/nvram.h>
|
|
|
|
#include <asm/mmu_context.h>
|
|
|
|
#include <asm/backlight.h>
|
|
|
|
#include <asm/time.h>
|
|
|
|
#include <asm/cputable.h>
|
|
|
|
#include <asm/btext.h>
|
|
|
|
#include <asm/div64.h>
|
|
|
|
#include <asm/xmon.h>
|
2005-11-08 17:21:07 -07:00
|
|
|
#include <asm/signal.h>
|
2005-04-16 16:20:36 -06:00
|
|
|
|
|
|
|
#ifdef CONFIG_8xx
|
|
|
|
#include <asm/commproc.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
extern void transfer_to_handler(void);
|
|
|
|
extern void do_IRQ(struct pt_regs *regs);
|
2005-10-01 02:43:42 -06:00
|
|
|
extern void machine_check_exception(struct pt_regs *regs);
|
|
|
|
extern void alignment_exception(struct pt_regs *regs);
|
|
|
|
extern void program_check_exception(struct pt_regs *regs);
|
|
|
|
extern void single_step_exception(struct pt_regs *regs);
|
2005-04-16 16:20:36 -06:00
|
|
|
extern int sys_sigreturn(struct pt_regs *regs);
|
|
|
|
|
|
|
|
long long __ashrdi3(long long, int);
|
|
|
|
long long __ashldi3(long long, int);
|
|
|
|
long long __lshrdi3(long long, int);
|
|
|
|
|
|
|
|
extern unsigned long mm_ptov (unsigned long paddr);
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(clear_pages);
|
|
|
|
EXPORT_SYMBOL(clear_user_page);
|
|
|
|
EXPORT_SYMBOL(do_signal);
|
|
|
|
EXPORT_SYMBOL(transfer_to_handler);
|
|
|
|
EXPORT_SYMBOL(do_IRQ);
|
2005-10-01 02:43:42 -06:00
|
|
|
EXPORT_SYMBOL(machine_check_exception);
|
|
|
|
EXPORT_SYMBOL(alignment_exception);
|
|
|
|
EXPORT_SYMBOL(program_check_exception);
|
|
|
|
EXPORT_SYMBOL(single_step_exception);
|
2005-04-16 16:20:36 -06:00
|
|
|
EXPORT_SYMBOL(sys_sigreturn);
|
|
|
|
EXPORT_SYMBOL(ppc_n_lost_interrupts);
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(ISA_DMA_THRESHOLD);
|
|
|
|
EXPORT_SYMBOL(DMA_MODE_READ);
|
|
|
|
EXPORT_SYMBOL(DMA_MODE_WRITE);
|
|
|
|
|
|
|
|
#if !defined(__INLINE_BITOPS)
|
|
|
|
EXPORT_SYMBOL(set_bit);
|
|
|
|
EXPORT_SYMBOL(clear_bit);
|
|
|
|
EXPORT_SYMBOL(change_bit);
|
|
|
|
EXPORT_SYMBOL(test_and_set_bit);
|
|
|
|
EXPORT_SYMBOL(test_and_clear_bit);
|
|
|
|
EXPORT_SYMBOL(test_and_change_bit);
|
|
|
|
#endif /* __INLINE_BITOPS */
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(strcpy);
|
|
|
|
EXPORT_SYMBOL(strncpy);
|
|
|
|
EXPORT_SYMBOL(strcat);
|
|
|
|
EXPORT_SYMBOL(strlen);
|
|
|
|
EXPORT_SYMBOL(strcmp);
|
|
|
|
EXPORT_SYMBOL(strcasecmp);
|
2006-04-02 15:01:58 -06:00
|
|
|
EXPORT_SYMBOL(strncasecmp);
|
2005-04-16 16:20:36 -06:00
|
|
|
EXPORT_SYMBOL(__div64_32);
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(csum_partial);
|
|
|
|
EXPORT_SYMBOL(csum_partial_copy_generic);
|
|
|
|
EXPORT_SYMBOL(ip_fast_csum);
|
|
|
|
EXPORT_SYMBOL(csum_tcpudp_magic);
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(__copy_tofrom_user);
|
|
|
|
EXPORT_SYMBOL(__clear_user);
|
|
|
|
EXPORT_SYMBOL(__strncpy_from_user);
|
|
|
|
EXPORT_SYMBOL(__strnlen_user);
|
|
|
|
|
|
|
|
/*
|
|
|
|
EXPORT_SYMBOL(inb);
|
|
|
|
EXPORT_SYMBOL(inw);
|
|
|
|
EXPORT_SYMBOL(inl);
|
|
|
|
EXPORT_SYMBOL(outb);
|
|
|
|
EXPORT_SYMBOL(outw);
|
|
|
|
EXPORT_SYMBOL(outl);
|
|
|
|
EXPORT_SYMBOL(outsl);*/
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(_insb);
|
|
|
|
EXPORT_SYMBOL(_outsb);
|
|
|
|
EXPORT_SYMBOL(_insw_ns);
|
|
|
|
EXPORT_SYMBOL(_outsw_ns);
|
|
|
|
EXPORT_SYMBOL(_insl_ns);
|
|
|
|
EXPORT_SYMBOL(_outsl_ns);
|
|
|
|
EXPORT_SYMBOL(iopa);
|
|
|
|
EXPORT_SYMBOL(mm_ptov);
|
|
|
|
EXPORT_SYMBOL(ioremap);
|
|
|
|
#ifdef CONFIG_44x
|
|
|
|
EXPORT_SYMBOL(ioremap64);
|
|
|
|
#endif
|
|
|
|
EXPORT_SYMBOL(__ioremap);
|
|
|
|
EXPORT_SYMBOL(iounmap);
|
|
|
|
EXPORT_SYMBOL(ioremap_bot); /* aka VMALLOC_END */
|
|
|
|
|
|
|
|
#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
|
|
|
|
EXPORT_SYMBOL(ppc_ide_md);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_PCI
|
|
|
|
EXPORT_SYMBOL(isa_io_base);
|
|
|
|
EXPORT_SYMBOL(isa_mem_base);
|
|
|
|
EXPORT_SYMBOL(pci_dram_offset);
|
|
|
|
EXPORT_SYMBOL(pci_alloc_consistent);
|
|
|
|
EXPORT_SYMBOL(pci_free_consistent);
|
|
|
|
EXPORT_SYMBOL(pci_bus_io_base);
|
|
|
|
EXPORT_SYMBOL(pci_bus_io_base_phys);
|
|
|
|
EXPORT_SYMBOL(pci_bus_mem_base_phys);
|
|
|
|
EXPORT_SYMBOL(pci_bus_to_hose);
|
|
|
|
EXPORT_SYMBOL(pci_resource_to_bus);
|
|
|
|
EXPORT_SYMBOL(pci_phys_to_bus);
|
|
|
|
EXPORT_SYMBOL(pci_bus_to_phys);
|
|
|
|
#endif /* CONFIG_PCI */
|
|
|
|
|
|
|
|
#ifdef CONFIG_NOT_COHERENT_CACHE
|
[PATCH] powerpc: Merge cacheflush.h and cache.h
The ppc32 and ppc64 versions of cacheflush.h were almost identical.
The two versions of cache.h are fairly similar, except for a bunch of
register definitions in the ppc32 version which probably belong better
elsewhere. This patch, therefore, merges both headers. Notable
points:
- there are several functions in cacheflush.h which exist only
on ppc32 or only on ppc64. These are handled by #ifdef for now, but
these should probably be consolidated, along with the actual code
behind them later.
- Confusingly, both ppc32 and ppc64 have a
flush_dcache_range(), but they're subtly different: it uses dcbf on
ppc32 and dcbst on ppc64, ppc64 has a flush_inval_dcache_range() which
uses dcbf. These too should be merged and consolidated later.
- Also flush_dcache_range() was defined in cacheflush.h on
ppc64, and in cache.h on ppc32. In the merged version it's in
cacheflush.h
- On ppc32 flush_icache_range() is a normal function from
misc.S. On ppc64, it was wrapper, testing a feature bit before
calling __flush_icache_range() which does the actual flush. This
patch takes the ppc64 approach, which amounts to no change on ppc32,
since CPU_FTR_COHERENT_ICACHE will never be set there, but does mean
renaming flush_icache_range() to __flush_icache_range() in
arch/ppc/kernel/misc.S and arch/powerpc/kernel/misc_32.S
- The PReP register info from asm-ppc/cache.h has moved to
arch/ppc/platforms/prep_setup.c
- The 8xx register info from asm-ppc/cache.h has moved to a
new asm-powerpc/reg_8xx.h, included from reg.h
- flush_dcache_all() was defined on ppc32 (only), but was
never called (although it was exported). Thus this patch removes it
from cacheflush.h and from ARCH=powerpc (misc_32.S) entirely. It's
left in ARCH=ppc for now, with the prototype moved to ppc_ksyms.c.
Built for Walnut (ARCH=ppc), 32-bit multiplatform (pmac, CHRP and PReP
ARCH=ppc, pmac and CHRP ARCH=powerpc). Built and booted on POWER5
LPAR (ARCH=powerpc and ARCH=ppc64).
Built for 32-bit powermac (ARCH=ppc and ARCH=powerpc). Built and
booted on POWER5 LPAR (ARCH=powerpc and ARCH=ppc64). Built and booted
on G5 (ARCH=powerpc)
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-09 17:50:16 -07:00
|
|
|
extern void flush_dcache_all(void);
|
2005-04-16 16:20:36 -06:00
|
|
|
EXPORT_SYMBOL(flush_dcache_all);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(start_thread);
|
|
|
|
EXPORT_SYMBOL(kernel_thread);
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(flush_instruction_cache);
|
|
|
|
EXPORT_SYMBOL(giveup_fpu);
|
2005-11-28 14:02:24 -07:00
|
|
|
EXPORT_SYMBOL(__flush_icache_range);
|
2005-04-16 16:20:36 -06:00
|
|
|
EXPORT_SYMBOL(flush_dcache_range);
|
|
|
|
EXPORT_SYMBOL(flush_icache_user_range);
|
|
|
|
EXPORT_SYMBOL(flush_dcache_page);
|
|
|
|
EXPORT_SYMBOL(flush_tlb_kernel_range);
|
|
|
|
EXPORT_SYMBOL(flush_tlb_page);
|
|
|
|
EXPORT_SYMBOL(_tlbie);
|
|
|
|
#ifdef CONFIG_ALTIVEC
|
2006-01-18 20:34:20 -07:00
|
|
|
#ifndef CONFIG_SMP
|
2005-04-16 16:20:36 -06:00
|
|
|
EXPORT_SYMBOL(last_task_used_altivec);
|
2006-01-18 20:34:20 -07:00
|
|
|
#endif
|
2005-04-16 16:20:36 -06:00
|
|
|
EXPORT_SYMBOL(giveup_altivec);
|
|
|
|
#endif /* CONFIG_ALTIVEC */
|
|
|
|
#ifdef CONFIG_SPE
|
2006-01-18 20:34:20 -07:00
|
|
|
#ifndef CONFIG_SMP
|
2005-04-16 16:20:36 -06:00
|
|
|
EXPORT_SYMBOL(last_task_used_spe);
|
2006-01-18 20:34:20 -07:00
|
|
|
#endif
|
2005-04-16 16:20:36 -06:00
|
|
|
EXPORT_SYMBOL(giveup_spe);
|
|
|
|
#endif /* CONFIG_SPE */
|
|
|
|
#ifdef CONFIG_SMP
|
|
|
|
EXPORT_SYMBOL(smp_call_function);
|
|
|
|
EXPORT_SYMBOL(smp_hw_index);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(ppc_md);
|
|
|
|
|
|
|
|
#ifdef CONFIG_ADB
|
|
|
|
EXPORT_SYMBOL(adb_request);
|
|
|
|
EXPORT_SYMBOL(adb_register);
|
|
|
|
EXPORT_SYMBOL(adb_unregister);
|
|
|
|
EXPORT_SYMBOL(adb_poll);
|
|
|
|
EXPORT_SYMBOL(adb_try_handler_change);
|
|
|
|
#endif /* CONFIG_ADB */
|
|
|
|
#ifdef CONFIG_ADB_CUDA
|
|
|
|
EXPORT_SYMBOL(cuda_request);
|
|
|
|
EXPORT_SYMBOL(cuda_poll);
|
|
|
|
#endif /* CONFIG_ADB_CUDA */
|
|
|
|
#if defined(CONFIG_BOOTX_TEXT)
|
|
|
|
EXPORT_SYMBOL(btext_update_display);
|
|
|
|
#endif
|
|
|
|
#ifdef CONFIG_VT
|
|
|
|
EXPORT_SYMBOL(kd_mksound);
|
|
|
|
#endif
|
|
|
|
EXPORT_SYMBOL(to_tm);
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(pm_power_off);
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(__ashrdi3);
|
|
|
|
EXPORT_SYMBOL(__ashldi3);
|
|
|
|
EXPORT_SYMBOL(__lshrdi3);
|
|
|
|
EXPORT_SYMBOL(memcpy);
|
2005-09-03 16:55:54 -06:00
|
|
|
EXPORT_SYMBOL(cacheable_memcpy);
|
2005-04-16 16:20:36 -06:00
|
|
|
EXPORT_SYMBOL(memset);
|
|
|
|
EXPORT_SYMBOL(memmove);
|
|
|
|
EXPORT_SYMBOL(memcmp);
|
|
|
|
EXPORT_SYMBOL(memchr);
|
|
|
|
|
|
|
|
#if defined(CONFIG_FB_VGA16_MODULE)
|
|
|
|
EXPORT_SYMBOL(screen_info);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(__delay);
|
|
|
|
EXPORT_SYMBOL(timer_interrupt);
|
|
|
|
EXPORT_SYMBOL(irq_desc);
|
|
|
|
EXPORT_SYMBOL(tb_ticks_per_jiffy);
|
|
|
|
EXPORT_SYMBOL(console_drivers);
|
|
|
|
#ifdef CONFIG_XMON
|
|
|
|
EXPORT_SYMBOL(xmon);
|
|
|
|
EXPORT_SYMBOL(xmon_printf);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(CONFIG_KGDB) || defined(CONFIG_XMON)
|
|
|
|
extern void (*debugger)(struct pt_regs *regs);
|
|
|
|
extern int (*debugger_bpt)(struct pt_regs *regs);
|
|
|
|
extern int (*debugger_sstep)(struct pt_regs *regs);
|
|
|
|
extern int (*debugger_iabr_match)(struct pt_regs *regs);
|
|
|
|
extern int (*debugger_dabr_match)(struct pt_regs *regs);
|
|
|
|
extern void (*debugger_fault_handler)(struct pt_regs *regs);
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(debugger);
|
|
|
|
EXPORT_SYMBOL(debugger_bpt);
|
|
|
|
EXPORT_SYMBOL(debugger_sstep);
|
|
|
|
EXPORT_SYMBOL(debugger_iabr_match);
|
|
|
|
EXPORT_SYMBOL(debugger_dabr_match);
|
|
|
|
EXPORT_SYMBOL(debugger_fault_handler);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_8xx
|
|
|
|
EXPORT_SYMBOL(cpm_install_handler);
|
|
|
|
EXPORT_SYMBOL(cpm_free_handler);
|
|
|
|
#endif /* CONFIG_8xx */
|
|
|
|
#if defined(CONFIG_8xx) || defined(CONFIG_40x) || defined(CONFIG_85xx) ||\
|
|
|
|
defined(CONFIG_83xx)
|
|
|
|
EXPORT_SYMBOL(__res);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
EXPORT_SYMBOL(next_mmu_context);
|
|
|
|
EXPORT_SYMBOL(set_context);
|
|
|
|
EXPORT_SYMBOL(disarm_decr);
|
|
|
|
#ifdef CONFIG_PPC_STD_MMU
|
|
|
|
extern long mol_trampoline;
|
|
|
|
EXPORT_SYMBOL(mol_trampoline); /* For MOL */
|
|
|
|
EXPORT_SYMBOL(flush_hash_pages); /* For MOL */
|
|
|
|
#ifdef CONFIG_SMP
|
|
|
|
extern int mmu_hash_lock;
|
|
|
|
EXPORT_SYMBOL(mmu_hash_lock); /* For MOL */
|
|
|
|
#endif /* CONFIG_SMP */
|
|
|
|
extern long *intercept_table;
|
|
|
|
EXPORT_SYMBOL(intercept_table);
|
|
|
|
#endif /* CONFIG_PPC_STD_MMU */
|
|
|
|
#if defined(CONFIG_40x) || defined(CONFIG_BOOKE)
|
|
|
|
EXPORT_SYMBOL(__mtdcr);
|
|
|
|
EXPORT_SYMBOL(__mfdcr);
|
|
|
|
#endif
|