mirror of
https://github.com/adulau/aha.git
synced 2025-01-03 14:43:17 +00:00
powerpc: move more iSeries code
Move the iSeries specific parts of misc.S and ppc_ksyms.c into powerpc/platforms/iseries. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
This commit is contained in:
parent
7b875f4dc3
commit
c111d0bda8
5 changed files with 84 additions and 59 deletions
|
@ -1,6 +1,7 @@
|
|||
obj-y += hvlog.o hvlpconfig.o lpardata.o setup.o mf.o lpevents.o \
|
||||
hvcall.o proc.o htab.o iommu.o
|
||||
hvcall.o proc.o htab.o iommu.o misc.o
|
||||
obj-$(CONFIG_PCI) += pci.o irq.o vpdinfo.o
|
||||
obj-$(CONFIG_IBMVIO) += vio.o
|
||||
obj-$(CONFIG_SMP) += smp.o
|
||||
obj-$(CONFIG_VIOPATH) += viopath.o
|
||||
obj-$(CONFIG_MODULES) += ksyms.o
|
||||
|
|
27
arch/powerpc/platforms/iseries/ksyms.c
Normal file
27
arch/powerpc/platforms/iseries/ksyms.c
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* (C) 2001-2005 PPC 64 Team, IBM Corp
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
#include <linux/module.h>
|
||||
|
||||
#include <asm/hw_irq.h>
|
||||
#include <asm/iSeries/HvCallSc.h>
|
||||
|
||||
EXPORT_SYMBOL(HvCall0);
|
||||
EXPORT_SYMBOL(HvCall1);
|
||||
EXPORT_SYMBOL(HvCall2);
|
||||
EXPORT_SYMBOL(HvCall3);
|
||||
EXPORT_SYMBOL(HvCall4);
|
||||
EXPORT_SYMBOL(HvCall5);
|
||||
EXPORT_SYMBOL(HvCall6);
|
||||
EXPORT_SYMBOL(HvCall7);
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
EXPORT_SYMBOL(local_get_flags);
|
||||
EXPORT_SYMBOL(local_irq_disable);
|
||||
EXPORT_SYMBOL(local_irq_restore);
|
||||
#endif
|
55
arch/powerpc/platforms/iseries/misc.S
Normal file
55
arch/powerpc/platforms/iseries/misc.S
Normal file
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
* This file contains miscellaneous low-level functions.
|
||||
* Copyright (C) 1995-2005 IBM Corp
|
||||
*
|
||||
* Largely rewritten by Cort Dougan (cort@cs.nmt.edu)
|
||||
* and Paul Mackerras.
|
||||
* Adapted for iSeries by Mike Corrigan (mikejc@us.ibm.com)
|
||||
* PPC64 updates by Dave Engebretsen (engebret@us.ibm.com)
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#include <asm/processor.h>
|
||||
#include <asm/asm-offsets.h>
|
||||
|
||||
.text
|
||||
|
||||
/* unsigned long local_save_flags(void) */
|
||||
_GLOBAL(local_get_flags)
|
||||
lbz r3,PACAPROCENABLED(r13)
|
||||
blr
|
||||
|
||||
/* unsigned long local_irq_disable(void) */
|
||||
_GLOBAL(local_irq_disable)
|
||||
lbz r3,PACAPROCENABLED(r13)
|
||||
li r4,0
|
||||
stb r4,PACAPROCENABLED(r13)
|
||||
blr /* Done */
|
||||
|
||||
/* void local_irq_restore(unsigned long flags) */
|
||||
_GLOBAL(local_irq_restore)
|
||||
lbz r5,PACAPROCENABLED(r13)
|
||||
/* Check if things are setup the way we want _already_. */
|
||||
cmpw 0,r3,r5
|
||||
beqlr
|
||||
/* are we enabling interrupts? */
|
||||
cmpdi 0,r3,0
|
||||
stb r3,PACAPROCENABLED(r13)
|
||||
beqlr
|
||||
/* Check pending interrupts */
|
||||
/* A decrementer, IPI or PMC interrupt may have occurred
|
||||
* while we were in the hypervisor (which enables) */
|
||||
ld r4,PACALPPACA+LPPACAANYINT(r13)
|
||||
cmpdi r4,0
|
||||
beqlr
|
||||
|
||||
/*
|
||||
* Handle pending interrupts in interrupt context
|
||||
*/
|
||||
li r0,0x5555
|
||||
sc
|
||||
blr
|
|
@ -64,44 +64,6 @@ _GLOBAL(get_srr1)
|
|||
_GLOBAL(get_sp)
|
||||
mr r3,r1
|
||||
blr
|
||||
|
||||
#ifdef CONFIG_PPC_ISERIES
|
||||
/* unsigned long local_save_flags(void) */
|
||||
_GLOBAL(local_get_flags)
|
||||
lbz r3,PACAPROCENABLED(r13)
|
||||
blr
|
||||
|
||||
/* unsigned long local_irq_disable(void) */
|
||||
_GLOBAL(local_irq_disable)
|
||||
lbz r3,PACAPROCENABLED(r13)
|
||||
li r4,0
|
||||
stb r4,PACAPROCENABLED(r13)
|
||||
blr /* Done */
|
||||
|
||||
/* void local_irq_restore(unsigned long flags) */
|
||||
_GLOBAL(local_irq_restore)
|
||||
lbz r5,PACAPROCENABLED(r13)
|
||||
/* Check if things are setup the way we want _already_. */
|
||||
cmpw 0,r3,r5
|
||||
beqlr
|
||||
/* are we enabling interrupts? */
|
||||
cmpdi 0,r3,0
|
||||
stb r3,PACAPROCENABLED(r13)
|
||||
beqlr
|
||||
/* Check pending interrupts */
|
||||
/* A decrementer, IPI or PMC interrupt may have occurred
|
||||
* while we were in the hypervisor (which enables) */
|
||||
ld r4,PACALPPACA+LPPACAANYINT(r13)
|
||||
cmpdi r4,0
|
||||
beqlr
|
||||
|
||||
/*
|
||||
* Handle pending interrupts in interrupt context
|
||||
*/
|
||||
li r0,0x5555
|
||||
sc
|
||||
blr
|
||||
#endif /* CONFIG_PPC_ISERIES */
|
||||
|
||||
#ifdef CONFIG_IRQSTACKS
|
||||
_GLOBAL(call_do_softirq)
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
#include <asm/hw_irq.h>
|
||||
#include <asm/abs_addr.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/iSeries/HvCallSc.h>
|
||||
|
||||
EXPORT_SYMBOL(strcpy);
|
||||
EXPORT_SYMBOL(strncpy);
|
||||
|
@ -46,17 +45,6 @@ EXPORT_SYMBOL(__strnlen_user);
|
|||
|
||||
EXPORT_SYMBOL(reloc_offset);
|
||||
|
||||
#ifdef CONFIG_PPC_ISERIES
|
||||
EXPORT_SYMBOL(HvCall0);
|
||||
EXPORT_SYMBOL(HvCall1);
|
||||
EXPORT_SYMBOL(HvCall2);
|
||||
EXPORT_SYMBOL(HvCall3);
|
||||
EXPORT_SYMBOL(HvCall4);
|
||||
EXPORT_SYMBOL(HvCall5);
|
||||
EXPORT_SYMBOL(HvCall6);
|
||||
EXPORT_SYMBOL(HvCall7);
|
||||
#endif
|
||||
|
||||
EXPORT_SYMBOL(_insb);
|
||||
EXPORT_SYMBOL(_outsb);
|
||||
EXPORT_SYMBOL(_insw);
|
||||
|
@ -77,14 +65,6 @@ EXPORT_SYMBOL(giveup_altivec);
|
|||
EXPORT_SYMBOL(__flush_icache_range);
|
||||
EXPORT_SYMBOL(flush_dcache_range);
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
#ifdef CONFIG_PPC_ISERIES
|
||||
EXPORT_SYMBOL(local_get_flags);
|
||||
EXPORT_SYMBOL(local_irq_disable);
|
||||
EXPORT_SYMBOL(local_irq_restore);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
EXPORT_SYMBOL(memcpy);
|
||||
EXPORT_SYMBOL(memset);
|
||||
EXPORT_SYMBOL(memmove);
|
||||
|
|
Loading…
Reference in a new issue