2005-04-16 15:20:36 -07:00
# include <linux/config.h>
# 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>
# include <linux/tty.h>
# 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-09 11:21:07 +11:00
# include <asm/signal.h>
2005-04-16 15:20:36 -07: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 18:43:42 +10: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 15:20:36 -07: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 18:43:42 +10:00
EXPORT_SYMBOL ( machine_check_exception ) ;
EXPORT_SYMBOL ( alignment_exception ) ;
EXPORT_SYMBOL ( program_check_exception ) ;
EXPORT_SYMBOL ( single_step_exception ) ;
2005-04-16 15:20:36 -07: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 16:01:58 -05:00
EXPORT_SYMBOL ( strncasecmp ) ;
2005-04-16 15:20:36 -07: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 ) ; */
2005-11-02 12:44:16 -02:00
EXPORT_SYMBOL ( __ide_mm_insl ) ;
EXPORT_SYMBOL ( __ide_mm_outsw ) ;
EXPORT_SYMBOL ( __ide_mm_insw ) ;
EXPORT_SYMBOL ( __ide_mm_outsl ) ;
2005-04-16 15:20:36 -07:00
EXPORT_SYMBOL ( _insb ) ;
EXPORT_SYMBOL ( _outsb ) ;
EXPORT_SYMBOL ( _insw ) ;
EXPORT_SYMBOL ( _outsw ) ;
EXPORT_SYMBOL ( _insl ) ;
EXPORT_SYMBOL ( _outsl ) ;
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-10 11:50:16 +11:00
extern void flush_dcache_all ( void ) ;
2005-04-16 15:20:36 -07: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-29 08:02:24 +11:00
EXPORT_SYMBOL ( __flush_icache_range ) ;
2005-04-16 15:20:36 -07: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 22:34:20 -05:00
# ifndef CONFIG_SMP
2005-04-16 15:20:36 -07:00
EXPORT_SYMBOL ( last_task_used_altivec ) ;
2006-01-18 22:34:20 -05:00
# endif
2005-04-16 15:20:36 -07:00
EXPORT_SYMBOL ( giveup_altivec ) ;
# endif /* CONFIG_ALTIVEC */
# ifdef CONFIG_SPE
2006-01-18 22:34:20 -05:00
# ifndef CONFIG_SMP
2005-04-16 15:20:36 -07:00
EXPORT_SYMBOL ( last_task_used_spe ) ;
2006-01-18 22:34:20 -05:00
# endif
2005-04-16 15:20:36 -07: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 15:55:54 -07:00
EXPORT_SYMBOL ( cacheable_memcpy ) ;
2005-04-16 15:20:36 -07: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