libata: clear drvdata in ata_host_release(), take#2
[powerpc.git] / include / asm-s390 / smp.h
index 9fb02e9..b957e4c 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <asm/lowcore.h>
 #include <asm/sigp.h>
+#include <asm/ptrace.h>
 
 /*
   s390 specific smp.c headers
@@ -30,6 +31,10 @@ typedef struct
        __u16      cpu;
 } sigp_info;
 
+extern void machine_restart_smp(char *);
+extern void machine_halt_smp(void);
+extern void machine_power_off_smp(void);
+
 extern void smp_setup_cpu_possible_map(void);
 extern int smp_call_function_on(void (*func) (void *info), void *info,
                                int nonatomic, int wait, int cpu);
@@ -56,7 +61,7 @@ static inline __u16 hard_smp_processor_id(void)
 {
         __u16 cpu_address;
  
-        __asm__ ("stap %0\n" : "=m" (cpu_address));
+       asm volatile("stap %0" : "=m" (cpu_address));
         return cpu_address;
 }
 
@@ -101,6 +106,13 @@ smp_call_function_on(void (*func) (void *info), void *info,
        func(info);
        return 0;
 }
+
+static inline void smp_send_stop(void)
+{
+       /* Disable all interrupts/machine checks */
+       __load_psw_mask(psw_kernel_bits & ~PSW_MASK_MCHECK);
+}
+
 #define smp_cpu_not_running(cpu)       1
 #define smp_get_cpu(cpu) ({ 0; })
 #define smp_put_cpu(cpu) ({ 0; })