VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / include / asm-s390 / sigp.h
index d5583c7..3979bc3 100644 (file)
@@ -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__ */
-
-