OSDN Git Service

s390/ptrace: make all psw related defines also available for asm
authorHeiko Carstens <hca@linux.ibm.com>
Wed, 21 Jun 2023 11:35:43 +0000 (13:35 +0200)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Mon, 3 Jul 2023 09:19:39 +0000 (11:19 +0200)
Use the _AC() macro to make all psw related defines also available for
assembler files.

Acked-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
arch/s390/include/asm/ptrace.h
arch/s390/include/uapi/asm/ptrace.h

index 4ad4deb..d28bf8f 100644 (file)
 #define _PIF_GUEST_FAULT               BIT(PIF_GUEST_FAULT)
 #define _PIF_FTRACE_FULL_REGS          BIT(PIF_FTRACE_FULL_REGS)
 
-#define PSW_DEFAULT_KEY                        ((PAGE_DEFAULT_ACC) << 52)
+#define PSW32_MASK_PER         _AC(0x40000000, UL)
+#define PSW32_MASK_DAT         _AC(0x04000000, UL)
+#define PSW32_MASK_IO          _AC(0x02000000, UL)
+#define PSW32_MASK_EXT         _AC(0x01000000, UL)
+#define PSW32_MASK_KEY         _AC(0x00F00000, UL)
+#define PSW32_MASK_BASE                _AC(0x00080000, UL)     /* Always one */
+#define PSW32_MASK_MCHECK      _AC(0x00040000, UL)
+#define PSW32_MASK_WAIT                _AC(0x00020000, UL)
+#define PSW32_MASK_PSTATE      _AC(0x00010000, UL)
+#define PSW32_MASK_ASC         _AC(0x0000C000, UL)
+#define PSW32_MASK_CC          _AC(0x00003000, UL)
+#define PSW32_MASK_PM          _AC(0x00000f00, UL)
+#define PSW32_MASK_RI          _AC(0x00000080, UL)
+
+#define PSW32_ADDR_AMODE       _AC(0x80000000, UL)
+#define PSW32_ADDR_INSN                _AC(0x7FFFFFFF, UL)
+
+#define PSW32_DEFAULT_KEY      ((PAGE_DEFAULT_ACC) << 20)
+
+#define PSW32_ASC_PRIMARY      _AC(0x00000000, UL)
+#define PSW32_ASC_ACCREG       _AC(0x00004000, UL)
+#define PSW32_ASC_SECONDARY    _AC(0x00008000, UL)
+#define PSW32_ASC_HOME         _AC(0x0000C000, UL)
 
-#ifndef __ASSEMBLY__
+#define PSW_DEFAULT_KEY                        ((PAGE_DEFAULT_ACC) << 52)
 
 #define PSW_KERNEL_BITS        (PSW_DEFAULT_KEY | PSW_MASK_BASE | PSW_ASC_HOME | \
                         PSW_MASK_EA | PSW_MASK_BA | PSW_MASK_DAT)
@@ -33,6 +55,8 @@
                         PSW_DEFAULT_KEY | PSW_MASK_BASE | PSW_MASK_MCHECK | \
                         PSW_MASK_PSTATE | PSW_ASC_PRIMARY)
 
+#ifndef __ASSEMBLY__
+
 struct psw_bits {
        unsigned long        :  1;
        unsigned long per    :  1; /* PER-Mask */
@@ -73,30 +97,6 @@ enum {
        &(*(struct psw_bits *)(&(__psw)));      \
 }))
 
-#define PSW32_MASK_PER         0x40000000UL
-#define PSW32_MASK_DAT         0x04000000UL
-#define PSW32_MASK_IO          0x02000000UL
-#define PSW32_MASK_EXT         0x01000000UL
-#define PSW32_MASK_KEY         0x00F00000UL
-#define PSW32_MASK_BASE                0x00080000UL    /* Always one */
-#define PSW32_MASK_MCHECK      0x00040000UL
-#define PSW32_MASK_WAIT                0x00020000UL
-#define PSW32_MASK_PSTATE      0x00010000UL
-#define PSW32_MASK_ASC         0x0000C000UL
-#define PSW32_MASK_CC          0x00003000UL
-#define PSW32_MASK_PM          0x00000f00UL
-#define PSW32_MASK_RI          0x00000080UL
-
-#define PSW32_ADDR_AMODE       0x80000000UL
-#define PSW32_ADDR_INSN                0x7FFFFFFFUL
-
-#define PSW32_DEFAULT_KEY      (((u32)PAGE_DEFAULT_ACC) << 20)
-
-#define PSW32_ASC_PRIMARY      0x00000000UL
-#define PSW32_ASC_ACCREG       0x00004000UL
-#define PSW32_ASC_SECONDARY    0x00008000UL
-#define PSW32_ASC_HOME         0x0000C000UL
-
 typedef struct {
        unsigned int mask;
        unsigned int addr;
index cc9437b..f0fe3bc 100644 (file)
 
 #endif /* __s390x__ */
 
+#ifndef __s390x__
+
+#define PSW_MASK_PER           _AC(0x40000000, UL)
+#define PSW_MASK_DAT           _AC(0x04000000, UL)
+#define PSW_MASK_IO            _AC(0x02000000, UL)
+#define PSW_MASK_EXT           _AC(0x01000000, UL)
+#define PSW_MASK_KEY           _AC(0x00F00000, UL)
+#define PSW_MASK_BASE          _AC(0x00080000, UL)     /* always one */
+#define PSW_MASK_MCHECK                _AC(0x00040000, UL)
+#define PSW_MASK_WAIT          _AC(0x00020000, UL)
+#define PSW_MASK_PSTATE                _AC(0x00010000, UL)
+#define PSW_MASK_ASC           _AC(0x0000C000, UL)
+#define PSW_MASK_CC            _AC(0x00003000, UL)
+#define PSW_MASK_PM            _AC(0x00000F00, UL)
+#define PSW_MASK_RI            _AC(0x00000000, UL)
+#define PSW_MASK_EA            _AC(0x00000000, UL)
+#define PSW_MASK_BA            _AC(0x00000000, UL)
+
+#define PSW_MASK_USER          _AC(0x0000FF00, UL)
+
+#define PSW_ADDR_AMODE         _AC(0x80000000, UL)
+#define PSW_ADDR_INSN          _AC(0x7FFFFFFF, UL)
+
+#define PSW_ASC_PRIMARY                _AC(0x00000000, UL)
+#define PSW_ASC_ACCREG         _AC(0x00004000, UL)
+#define PSW_ASC_SECONDARY      _AC(0x00008000, UL)
+#define PSW_ASC_HOME           _AC(0x0000C000, UL)
+
+#else /* __s390x__ */
+
+#define PSW_MASK_PER           _AC(0x4000000000000000, UL)
+#define PSW_MASK_DAT           _AC(0x0400000000000000, UL)
+#define PSW_MASK_IO            _AC(0x0200000000000000, UL)
+#define PSW_MASK_EXT           _AC(0x0100000000000000, UL)
+#define PSW_MASK_BASE          _AC(0x0000000000000000, UL)
+#define PSW_MASK_KEY           _AC(0x00F0000000000000, UL)
+#define PSW_MASK_MCHECK                _AC(0x0004000000000000, UL)
+#define PSW_MASK_WAIT          _AC(0x0002000000000000, UL)
+#define PSW_MASK_PSTATE                _AC(0x0001000000000000, UL)
+#define PSW_MASK_ASC           _AC(0x0000C00000000000, UL)
+#define PSW_MASK_CC            _AC(0x0000300000000000, UL)
+#define PSW_MASK_PM            _AC(0x00000F0000000000, UL)
+#define PSW_MASK_RI            _AC(0x0000008000000000, UL)
+#define PSW_MASK_EA            _AC(0x0000000100000000, UL)
+#define PSW_MASK_BA            _AC(0x0000000080000000, UL)
+
+#define PSW_MASK_USER          _AC(0x0000FF0180000000, UL)
+
+#define PSW_ADDR_AMODE         _AC(0x0000000000000000, UL)
+#define PSW_ADDR_INSN          _AC(0xFFFFFFFFFFFFFFFF, UL)
+
+#define PSW_ASC_PRIMARY                _AC(0x0000000000000000, UL)
+#define PSW_ASC_ACCREG         _AC(0x0000400000000000, UL)
+#define PSW_ASC_SECONDARY      _AC(0x0000800000000000, UL)
+#define PSW_ASC_HOME           _AC(0x0000C00000000000, UL)
+
+#endif /* __s390x__ */
+
 #define NUM_GPRS       16
 #define NUM_FPRS       16
 #define NUM_CRS                16
@@ -214,65 +272,6 @@ typedef struct {
        unsigned long addr;
 } __attribute__ ((aligned(8))) psw_t;
 
-#ifndef __s390x__
-
-#define PSW_MASK_PER           0x40000000UL
-#define PSW_MASK_DAT           0x04000000UL
-#define PSW_MASK_IO            0x02000000UL
-#define PSW_MASK_EXT           0x01000000UL
-#define PSW_MASK_KEY           0x00F00000UL
-#define PSW_MASK_BASE          0x00080000UL    /* always one */
-#define PSW_MASK_MCHECK                0x00040000UL
-#define PSW_MASK_WAIT          0x00020000UL
-#define PSW_MASK_PSTATE                0x00010000UL
-#define PSW_MASK_ASC           0x0000C000UL
-#define PSW_MASK_CC            0x00003000UL
-#define PSW_MASK_PM            0x00000F00UL
-#define PSW_MASK_RI            0x00000000UL
-#define PSW_MASK_EA            0x00000000UL
-#define PSW_MASK_BA            0x00000000UL
-
-#define PSW_MASK_USER          0x0000FF00UL
-
-#define PSW_ADDR_AMODE         0x80000000UL
-#define PSW_ADDR_INSN          0x7FFFFFFFUL
-
-#define PSW_ASC_PRIMARY                0x00000000UL
-#define PSW_ASC_ACCREG         0x00004000UL
-#define PSW_ASC_SECONDARY      0x00008000UL
-#define PSW_ASC_HOME           0x0000C000UL
-
-#else /* __s390x__ */
-
-#define PSW_MASK_PER           0x4000000000000000UL
-#define PSW_MASK_DAT           0x0400000000000000UL
-#define PSW_MASK_IO            0x0200000000000000UL
-#define PSW_MASK_EXT           0x0100000000000000UL
-#define PSW_MASK_BASE          0x0000000000000000UL
-#define PSW_MASK_KEY           0x00F0000000000000UL
-#define PSW_MASK_MCHECK                0x0004000000000000UL
-#define PSW_MASK_WAIT          0x0002000000000000UL
-#define PSW_MASK_PSTATE                0x0001000000000000UL
-#define PSW_MASK_ASC           0x0000C00000000000UL
-#define PSW_MASK_CC            0x0000300000000000UL
-#define PSW_MASK_PM            0x00000F0000000000UL
-#define PSW_MASK_RI            0x0000008000000000UL
-#define PSW_MASK_EA            0x0000000100000000UL
-#define PSW_MASK_BA            0x0000000080000000UL
-
-#define PSW_MASK_USER          0x0000FF0180000000UL
-
-#define PSW_ADDR_AMODE         0x0000000000000000UL
-#define PSW_ADDR_INSN          0xFFFFFFFFFFFFFFFFUL
-
-#define PSW_ASC_PRIMARY                0x0000000000000000UL
-#define PSW_ASC_ACCREG         0x0000400000000000UL
-#define PSW_ASC_SECONDARY      0x0000800000000000UL
-#define PSW_ASC_HOME           0x0000C00000000000UL
-
-#endif /* __s390x__ */
-
-
 /*
  * The s390_regs structure is used to define the elf_gregset_t.
  */