Let's decrease the number of magic numbers. Signed-off-by: Janosch Frank <fran...@linux.ibm.com> Reviewed-by: Pierre Morel <pmo...@linux.ibm.com> --- pc-bios/s390-ccw/s390-arch.h | 25 +++++++++++++++---------- pc-bios/s390-ccw/start.S | 9 +++++---- 2 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/pc-bios/s390-ccw/s390-arch.h b/pc-bios/s390-ccw/s390-arch.h index 6da44d4436..d450c096d0 100644 --- a/pc-bios/s390-ccw/s390-arch.h +++ b/pc-bios/s390-ccw/s390-arch.h @@ -11,6 +11,20 @@ #ifndef S390_ARCH_H #define S390_ARCH_H +/* s390 psw bit masks */ +#define PSW_MASK_EXT 0x0100000000000000UL +#define PSW_MASK_IOINT 0x0200000000000000ULL +#define PSW_MASK_SHORTPSW 0x0008000000000000ULL +#define PSW_MASK_WAIT 0x0002000000000000ULL +#define PSW_MASK_EAMODE 0x0000000100000000ULL +#define PSW_MASK_BAMODE 0x0000000080000000ULL +#define PSW_MASK_SHORT_ADDR 0x000000007fffffffULL +#define PSW_MASK_64 (PSW_MASK_EAMODE | PSW_MASK_BAMODE) +#define PSW_MASK_DWAIT (PSW_MASK_64 | PSW_MASK_WAIT) +#define PSW_MASK_EWAIT (PSW_MASK_DWAIT | PSW_MASK_IOINT | PSW_MASK_EXT) + +#ifndef __ASSEMBLER__ + typedef struct PSW { uint64_t mask; uint64_t addr; @@ -24,15 +38,6 @@ typedef struct PSWLegacy { } __attribute__ ((aligned(8))) PSWLegacy; _Static_assert(sizeof(struct PSWLegacy) == 8, "PSWLegacy size incorrect"); -/* s390 psw bit masks */ -#define PSW_MASK_IOINT 0x0200000000000000ULL -#define PSW_MASK_SHORTPSW 0x0008000000000000ULL -#define PSW_MASK_WAIT 0x0002000000000000ULL -#define PSW_MASK_EAMODE 0x0000000100000000ULL -#define PSW_MASK_BAMODE 0x0000000080000000ULL -#define PSW_MASK_SHORT_ADDR 0x000000007fffffffULL -#define PSW_MASK_64 (PSW_MASK_EAMODE | PSW_MASK_BAMODE) - /* Low core mapping */ typedef struct LowCore { /* prefix area: defined by architecture */ @@ -107,5 +112,5 @@ static inline uint32_t store_prefix(void) asm volatile("stpx %0" : "=m" (address)); return address; } - +#endif /* !__ASSEMBLER__ */ #endif diff --git a/pc-bios/s390-ccw/start.S b/pc-bios/s390-ccw/start.S index ce519300a1..01c4c21b26 100644 --- a/pc-bios/s390-ccw/start.S +++ b/pc-bios/s390-ccw/start.S @@ -9,6 +9,7 @@ * your option) any later version. See the COPYING file in the top-level * directory. */ +#include "s390-arch.h" .globl _start _start: @@ -108,10 +109,10 @@ io_new_code: .align 8 disabled_wait_psw: - .quad 0x0002000180000000,0x0000000000000000 + .quad PSW_MASK_DWAIT, 0x0000000000000000 enabled_wait_psw: - .quad 0x0302000180000000,0x0000000000000000 + .quad PSW_MASK_EWAIT, 0x0000000000000000 external_new_mask: - .quad 0x0000000180000000 + .quad PSW_MASK_64 io_new_mask: - .quad 0x0000000180000000 + .quad PSW_MASK_64 -- 2.25.1