Commit b8af5999 authored by Heiko Carstens's avatar Heiko Carstens Committed by Alexander Gordeev

s390/ptrace: make all psw related defines also available for asm

Use the _AC() macro to make all psw related defines also available for
assembler files.
Acked-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
parent 63764028
......@@ -23,9 +23,31 @@
#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;
......
......@@ -166,6 +166,64 @@
#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.
*/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment