diff options
Diffstat (limited to 'arch/x86/include/asm')
| -rw-r--r-- | arch/x86/include/asm/compat.h | 9 | ||||
| -rw-r--r-- | arch/x86/include/asm/processor.h | 2 | ||||
| -rw-r--r-- | arch/x86/include/asm/thread_info.h | 12 | ||||
| -rw-r--r-- | arch/x86/include/asm/traps.h | 25 |
4 files changed, 38 insertions, 10 deletions
diff --git a/arch/x86/include/asm/compat.h b/arch/x86/include/asm/compat.h index 355edc091604..d6805798d6fc 100644 --- a/arch/x86/include/asm/compat.h +++ b/arch/x86/include/asm/compat.h | |||
| @@ -235,15 +235,6 @@ static inline void __user *arch_compat_alloc_user_space(long len) | |||
| 235 | return (void __user *)round_down(sp - len, 16); | 235 | return (void __user *)round_down(sp - len, 16); |
| 236 | } | 236 | } |
| 237 | 237 | ||
| 238 | static inline bool is_ia32_task(void) | ||
| 239 | { | ||
| 240 | #ifdef CONFIG_IA32_EMULATION | ||
| 241 | if (current_thread_info()->status & TS_COMPAT) | ||
| 242 | return true; | ||
| 243 | #endif | ||
| 244 | return false; | ||
| 245 | } | ||
| 246 | |||
| 247 | static inline bool is_x32_task(void) | 238 | static inline bool is_x32_task(void) |
| 248 | { | 239 | { |
| 249 | #ifdef CONFIG_X86_X32_ABI | 240 | #ifdef CONFIG_X86_X32_ABI |
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h index f302ef6bb200..7284c9a6a0b5 100644 --- a/arch/x86/include/asm/processor.h +++ b/arch/x86/include/asm/processor.h | |||
| @@ -463,7 +463,7 @@ struct thread_struct { | |||
| 463 | unsigned long ptrace_dr7; | 463 | unsigned long ptrace_dr7; |
| 464 | /* Fault info: */ | 464 | /* Fault info: */ |
| 465 | unsigned long cr2; | 465 | unsigned long cr2; |
| 466 | unsigned long trap_no; | 466 | unsigned long trap_nr; |
| 467 | unsigned long error_code; | 467 | unsigned long error_code; |
| 468 | /* floating point and extended processor state */ | 468 | /* floating point and extended processor state */ |
| 469 | struct fpu fpu; | 469 | struct fpu fpu; |
diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h index af1db7e722f4..ad6df8ccd715 100644 --- a/arch/x86/include/asm/thread_info.h +++ b/arch/x86/include/asm/thread_info.h | |||
| @@ -266,6 +266,18 @@ static inline void set_restore_sigmask(void) | |||
| 266 | ti->status |= TS_RESTORE_SIGMASK; | 266 | ti->status |= TS_RESTORE_SIGMASK; |
| 267 | set_bit(TIF_SIGPENDING, (unsigned long *)&ti->flags); | 267 | set_bit(TIF_SIGPENDING, (unsigned long *)&ti->flags); |
| 268 | } | 268 | } |
| 269 | |||
| 270 | static inline bool is_ia32_task(void) | ||
| 271 | { | ||
| 272 | #ifdef CONFIG_X86_32 | ||
| 273 | return true; | ||
| 274 | #endif | ||
| 275 | #ifdef CONFIG_IA32_EMULATION | ||
| 276 | if (current_thread_info()->status & TS_COMPAT) | ||
| 277 | return true; | ||
| 278 | #endif | ||
| 279 | return false; | ||
| 280 | } | ||
| 269 | #endif /* !__ASSEMBLY__ */ | 281 | #endif /* !__ASSEMBLY__ */ |
| 270 | 282 | ||
| 271 | #ifndef __ASSEMBLY__ | 283 | #ifndef __ASSEMBLY__ |
diff --git a/arch/x86/include/asm/traps.h b/arch/x86/include/asm/traps.h index 0012d0902c5f..88eae2aec619 100644 --- a/arch/x86/include/asm/traps.h +++ b/arch/x86/include/asm/traps.h | |||
| @@ -89,4 +89,29 @@ asmlinkage void smp_thermal_interrupt(void); | |||
| 89 | asmlinkage void mce_threshold_interrupt(void); | 89 | asmlinkage void mce_threshold_interrupt(void); |
| 90 | #endif | 90 | #endif |
| 91 | 91 | ||
| 92 | /* Interrupts/Exceptions */ | ||
| 93 | enum { | ||
| 94 | X86_TRAP_DE = 0, /* 0, Divide-by-zero */ | ||
| 95 | X86_TRAP_DB, /* 1, Debug */ | ||
| 96 | X86_TRAP_NMI, /* 2, Non-maskable Interrupt */ | ||
| 97 | X86_TRAP_BP, /* 3, Breakpoint */ | ||
| 98 | X86_TRAP_OF, /* 4, Overflow */ | ||
| 99 | X86_TRAP_BR, /* 5, Bound Range Exceeded */ | ||
| 100 | X86_TRAP_UD, /* 6, Invalid Opcode */ | ||
| 101 | X86_TRAP_NM, /* 7, Device Not Available */ | ||
| 102 | X86_TRAP_DF, /* 8, Double Fault */ | ||
| 103 | X86_TRAP_OLD_MF, /* 9, Coprocessor Segment Overrun */ | ||
| 104 | X86_TRAP_TS, /* 10, Invalid TSS */ | ||
| 105 | X86_TRAP_NP, /* 11, Segment Not Present */ | ||
| 106 | X86_TRAP_SS, /* 12, Stack Segment Fault */ | ||
| 107 | X86_TRAP_GP, /* 13, General Protection Fault */ | ||
| 108 | X86_TRAP_PF, /* 14, Page Fault */ | ||
| 109 | X86_TRAP_SPURIOUS, /* 15, Spurious Interrupt */ | ||
| 110 | X86_TRAP_MF, /* 16, x87 Floating-Point Exception */ | ||
| 111 | X86_TRAP_AC, /* 17, Alignment Check */ | ||
| 112 | X86_TRAP_MC, /* 18, Machine Check */ | ||
| 113 | X86_TRAP_XF, /* 19, SIMD Floating-Point Exception */ | ||
| 114 | X86_TRAP_IRET = 32, /* 32, IRET Exception */ | ||
| 115 | }; | ||
| 116 | |||
| 92 | #endif /* _ASM_X86_TRAPS_H */ | 117 | #endif /* _ASM_X86_TRAPS_H */ |
