X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fasm-s390%2Fsigp.h;h=3979bc3858e2a4be93d6b5b6537ee7b2381c6866;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=d5583c78dc9b1858b7822d6c67aa64ac74983f3e;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/include/asm-s390/sigp.h b/include/asm-s390/sigp.h index d5583c78d..3979bc385 100644 --- a/include/asm-s390/sigp.h +++ b/include/asm-s390/sigp.h @@ -5,6 +5,7 @@ * Copyright (C) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation * Author(s): Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com), * Martin Schwidefsky (schwidefsky@de.ibm.com) + * Heiko Carstens (heiko.carstens@de.ibm.com) * * sigp.h by D.J. Barrow (c) IBM 1999 * contains routines / structures for signalling other S/390 processors in an @@ -72,17 +73,10 @@ signal_processor(__u16 cpu_addr, sigp_order_code order_code) sigp_ccode ccode; __asm__ __volatile__( -#ifndef __s390x__ " sr 1,1\n" /* parameter=0 in gpr 1 */ " sigp 1,%1,0(%2)\n" " ipm %0\n" " srl %0,28\n" -#else /* __s390x__ */ - " sgr 1,1\n" /* parameter=0 in gpr 1 */ - " sigp 1,%1,0(%2)\n" - " ipm %0\n" - " srl %0,28" -#endif /* __s390x__ */ : "=d" (ccode) : "d" (__cpu_logical_map[cpu_addr]), "a" (order_code) : "cc" , "memory", "1" ); @@ -93,23 +87,16 @@ signal_processor(__u16 cpu_addr, sigp_order_code order_code) * Signal processor with parameter */ extern __inline__ sigp_ccode -signal_processor_p(unsigned long parameter,__u16 cpu_addr, +signal_processor_p(__u32 parameter, __u16 cpu_addr, sigp_order_code order_code) { sigp_ccode ccode; __asm__ __volatile__( -#ifndef __s390x__ " lr 1,%1\n" /* parameter in gpr 1 */ " sigp 1,%2,0(%3)\n" " ipm %0\n" " srl %0,28\n" -#else /* __s390x__ */ - " lgr 1,%1\n" /* parameter in gpr 1 */ - " sigp 1,%2,0(%3)\n" - " ipm %0\n" - " srl %0,28\n" -#endif /* __s390x__ */ : "=d" (ccode) : "d" (parameter), "d" (__cpu_logical_map[cpu_addr]), "a" (order_code) @@ -121,27 +108,18 @@ signal_processor_p(unsigned long parameter,__u16 cpu_addr, * Signal processor with parameter and return status */ extern __inline__ sigp_ccode -signal_processor_ps(unsigned long *statusptr, unsigned long parameter, +signal_processor_ps(__u32 *statusptr, __u32 parameter, __u16 cpu_addr, sigp_order_code order_code) { sigp_ccode ccode; __asm__ __volatile__( -#ifndef __s390x__ - " sr 2,2\n" /* clear status so it doesn't contain rubbish if not saved. */ + " sr 2,2\n" /* clear status */ " lr 3,%2\n" /* parameter in gpr 3 */ " sigp 2,%3,0(%4)\n" " st 2,%1\n" " ipm %0\n" " srl %0,28\n" -#else /* __s390x__ */ - " sgr 2,2\n" /* clear status so it doesn't contain rubbish if not saved. */ - " lgr 3,%2\n" /* parameter in gpr 3 */ - " sigp 2,%3,0(%4)\n" - " stg 2,%1\n" - " ipm %0\n" - " srl %0,28\n" -#endif /* __s390x__ */ : "=d" (ccode), "=m" (*statusptr) : "d" (parameter), "d" (__cpu_logical_map[cpu_addr]), "a" (order_code) @@ -151,5 +129,3 @@ signal_processor_ps(unsigned long *statusptr, unsigned long parameter, } #endif /* __SIGP__ */ - -