diff options
author | Chuck Ebbert <76306.1226@compuserve.com> | 2005-07-26 21:57:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-26 22:25:01 -0400 |
commit | ae6578fe9b65208dee8eda40629984efd23740c4 (patch) | |
tree | 6b3c5fdb78864ef276e0d6bb4bb1eeecfe17587d /include/asm-i386/ptrace.h | |
parent | 4d7de66e2cc508761f050d1d4eaca88a6e6f711e (diff) |
[PATCH] i386: clean up user_mode macros
- make the new user_mode() return 0 or 1 (same as x86_64)
- remove conditional jump from user_mode_vm() it's called every timer
tick on each CPU on SMP)
Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-i386/ptrace.h')
-rw-r--r-- | include/asm-i386/ptrace.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/include/asm-i386/ptrace.h b/include/asm-i386/ptrace.h index eef9f93870d4..b926cb4f4cfd 100644 --- a/include/asm-i386/ptrace.h +++ b/include/asm-i386/ptrace.h | |||
@@ -57,14 +57,21 @@ struct pt_regs { | |||
57 | #ifdef __KERNEL__ | 57 | #ifdef __KERNEL__ |
58 | struct task_struct; | 58 | struct task_struct; |
59 | extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, int error_code); | 59 | extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, int error_code); |
60 | #define user_mode(regs) (3 & (regs)->xcs) | 60 | |
61 | #define user_mode_vm(regs) ((VM_MASK & (regs)->eflags) || user_mode(regs)) | 61 | static inline int user_mode(struct pt_regs *regs) |
62 | { | ||
63 | return (regs->xcs & 3) != 0; | ||
64 | } | ||
65 | static inline int user_mode_vm(struct pt_regs *regs) | ||
66 | { | ||
67 | return ((regs->xcs & 3) | (regs->eflags & VM_MASK)) != 0; | ||
68 | } | ||
62 | #define instruction_pointer(regs) ((regs)->eip) | 69 | #define instruction_pointer(regs) ((regs)->eip) |
63 | #if defined(CONFIG_SMP) && defined(CONFIG_FRAME_POINTER) | 70 | #if defined(CONFIG_SMP) && defined(CONFIG_FRAME_POINTER) |
64 | extern unsigned long profile_pc(struct pt_regs *regs); | 71 | extern unsigned long profile_pc(struct pt_regs *regs); |
65 | #else | 72 | #else |
66 | #define profile_pc(regs) instruction_pointer(regs) | 73 | #define profile_pc(regs) instruction_pointer(regs) |
67 | #endif | 74 | #endif |
68 | #endif | 75 | #endif /* __KERNEL__ */ |
69 | 76 | ||
70 | #endif | 77 | #endif |