diff options
Diffstat (limited to 'include/asm-s390/system.h')
| -rw-r--r-- | include/asm-s390/system.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/asm-s390/system.h b/include/asm-s390/system.h index 92098df4d6e3..c819ae25a842 100644 --- a/include/asm-s390/system.h +++ b/include/asm-s390/system.h | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | #include <asm/ptrace.h> | 16 | #include <asm/ptrace.h> |
| 17 | #include <asm/setup.h> | 17 | #include <asm/setup.h> |
| 18 | #include <asm/processor.h> | 18 | #include <asm/processor.h> |
| 19 | #include <asm/lowcore.h> | ||
| 19 | 20 | ||
| 20 | #ifdef __KERNEL__ | 21 | #ifdef __KERNEL__ |
| 21 | 22 | ||
| @@ -422,6 +423,23 @@ extern void smp_ctl_clear_bit(int cr, int bit); | |||
| 422 | 423 | ||
| 423 | #endif /* CONFIG_SMP */ | 424 | #endif /* CONFIG_SMP */ |
| 424 | 425 | ||
| 426 | static inline unsigned int stfl(void) | ||
| 427 | { | ||
| 428 | asm volatile( | ||
| 429 | " .insn s,0xb2b10000,0(0)\n" /* stfl */ | ||
| 430 | "0:\n" | ||
| 431 | EX_TABLE(0b,0b)); | ||
| 432 | return S390_lowcore.stfl_fac_list; | ||
| 433 | } | ||
| 434 | |||
| 435 | static inline unsigned short stap(void) | ||
| 436 | { | ||
| 437 | unsigned short cpu_address; | ||
| 438 | |||
| 439 | asm volatile("stap %0" : "=m" (cpu_address)); | ||
| 440 | return cpu_address; | ||
| 441 | } | ||
| 442 | |||
| 425 | extern void (*_machine_restart)(char *command); | 443 | extern void (*_machine_restart)(char *command); |
| 426 | extern void (*_machine_halt)(void); | 444 | extern void (*_machine_halt)(void); |
| 427 | extern void (*_machine_power_off)(void); | 445 | extern void (*_machine_power_off)(void); |
