~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/s390/include/asm/smp.h

Version: ~ [ linux-5.1-rc1 ] ~ [ linux-5.0.2 ] ~ [ linux-4.20.16 ] ~ [ linux-4.19.29 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.106 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.163 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.176 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.136 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.63 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.39.4 ] ~ [ linux-2.6.38.8 ] ~ [ linux-2.6.37.6 ] ~ [ linux-2.6.36.4 ] ~ [ linux-2.6.35.14 ] ~ [ linux-2.6.34.15 ] ~ [ linux-2.6.33.20 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  *    Copyright IBM Corp. 1999,2009
  3  *    Author(s): Denis Joseph Barrow,
  4  *               Martin Schwidefsky <schwidefsky@de.ibm.com>,
  5  *               Heiko Carstens <heiko.carstens@de.ibm.com>,
  6  */
  7 #ifndef __ASM_SMP_H
  8 #define __ASM_SMP_H
  9 
 10 #ifdef CONFIG_SMP
 11 
 12 #include <asm/system.h>
 13 #include <asm/sigp.h>
 14 
 15 extern void machine_restart_smp(char *);
 16 extern void machine_halt_smp(void);
 17 extern void machine_power_off_smp(void);
 18 
 19 #define raw_smp_processor_id()  (S390_lowcore.cpu_nr)
 20 
 21 extern int __cpu_disable (void);
 22 extern void __cpu_die (unsigned int cpu);
 23 extern int __cpu_up (unsigned int cpu);
 24 
 25 extern struct mutex smp_cpu_state_mutex;
 26 extern int smp_cpu_polarization[];
 27 
 28 extern void arch_send_call_function_single_ipi(int cpu);
 29 extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
 30 
 31 extern struct save_area *zfcpdump_save_areas[NR_CPUS + 1];
 32 
 33 extern void smp_switch_to_ipl_cpu(void (*func)(void *), void *);
 34 extern void smp_switch_to_cpu(void (*)(void *), void *, unsigned long sp,
 35                               int from, int to);
 36 extern void smp_restart_cpu(void);
 37 
 38 /*
 39  * returns 1 if (virtual) cpu is scheduled
 40  * returns 0 otherwise
 41  */
 42 static inline int smp_vcpu_scheduled(int cpu)
 43 {
 44         u32 status;
 45 
 46         switch (sigp_ps(&status, 0, cpu, sigp_sense_running)) {
 47         case sigp_status_stored:
 48                 /* Check for running status */
 49                 if (status & 0x400)
 50                         return 0;
 51                 break;
 52         case sigp_not_operational:
 53                 return 0;
 54         default:
 55                 break;
 56         }
 57         return 1;
 58 }
 59 
 60 #else /* CONFIG_SMP */
 61 
 62 static inline void smp_switch_to_ipl_cpu(void (*func)(void *), void *data)
 63 {
 64         func(data);
 65 }
 66 
 67 #define smp_vcpu_scheduled      (1)
 68 
 69 #endif /* CONFIG_SMP */
 70 
 71 #ifdef CONFIG_HOTPLUG_CPU
 72 extern int smp_rescan_cpus(void);
 73 extern void __noreturn cpu_die(void);
 74 #else
 75 static inline int smp_rescan_cpus(void) { return 0; }
 76 static inline void cpu_die(void) { }
 77 #endif
 78 
 79 #endif /* __ASM_SMP_H */
 80 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp