Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 79867
b: refs/heads/master
c: 7f23234
h: refs/heads/master
i:
  79865: aed5f7c
  79863: c43e0ae
v: v3
  • Loading branch information
Roland McGrath authored and Ingo Molnar committed Jan 30, 2008
1 parent 194cf78 commit 6ed03a1
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 77c03dcd448aa4c7be45f4edb97381ef463e3911
refs/heads/master: 7f232343e0ea37ffc0a552cdbd4825482c949281
12 changes: 6 additions & 6 deletions trunk/arch/x86/kernel/ptrace_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ static inline int is_setting_trap_flag(struct task_struct *child, struct pt_regs
return 0;
}

static void set_singlestep(struct task_struct *child)
void user_enable_single_step(struct task_struct *child)
{
struct pt_regs *regs = get_child_regs(child);

Expand Down Expand Up @@ -249,7 +249,7 @@ static void set_singlestep(struct task_struct *child)
child->ptrace |= PT_DTRACE;
}

static void clear_singlestep(struct task_struct *child)
void user_disable_single_step(struct task_struct *child)
{
/* Always clear TIF_SINGLESTEP... */
clear_tsk_thread_flag(child, TIF_SINGLESTEP);
Expand All @@ -269,7 +269,7 @@ static void clear_singlestep(struct task_struct *child)
*/
void ptrace_disable(struct task_struct *child)
{
clear_singlestep(child);
user_disable_single_step(child);
clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);
}

Expand Down Expand Up @@ -403,7 +403,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
}
child->exit_code = data;
/* make sure the single step bit is not set. */
clear_singlestep(child);
user_disable_single_step(child);
wake_up_process(child);
ret = 0;
break;
Expand All @@ -419,7 +419,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
break;
child->exit_code = SIGKILL;
/* make sure the single step bit is not set. */
clear_singlestep(child);
user_disable_single_step(child);
wake_up_process(child);
break;

Expand All @@ -435,7 +435,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
clear_tsk_thread_flag(child, TIF_SYSCALL_EMU);

clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
set_singlestep(child);
user_enable_single_step(child);
child->exit_code = data;
/* give it a chance to run. */
wake_up_process(child);
Expand Down
12 changes: 6 additions & 6 deletions trunk/arch/x86/kernel/ptrace_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ static int is_setting_trap_flag(struct task_struct *child, struct pt_regs *regs)
return 0;
}

static void set_singlestep(struct task_struct *child)
void user_enable_single_step(struct task_struct *child)
{
struct pt_regs *regs = task_pt_regs(child);

Expand Down Expand Up @@ -201,7 +201,7 @@ static void set_singlestep(struct task_struct *child)
child->ptrace |= PT_DTRACE;
}

static void clear_singlestep(struct task_struct *child)
void user_disable_single_step(struct task_struct *child)
{
/* Always clear TIF_SINGLESTEP... */
clear_tsk_thread_flag(child, TIF_SINGLESTEP);
Expand All @@ -221,7 +221,7 @@ static void clear_singlestep(struct task_struct *child)
*/
void ptrace_disable(struct task_struct *child)
{
clear_singlestep(child);
user_disable_single_step(child);
}

static int putreg(struct task_struct *child,
Expand Down Expand Up @@ -461,7 +461,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
clear_tsk_thread_flag(child, TIF_SINGLESTEP);
child->exit_code = data;
/* make sure the single step bit is not set. */
clear_singlestep(child);
user_disable_single_step(child);
wake_up_process(child);
ret = 0;
break;
Expand Down Expand Up @@ -504,7 +504,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
clear_tsk_thread_flag(child, TIF_SINGLESTEP);
child->exit_code = SIGKILL;
/* make sure the single step bit is not set. */
clear_singlestep(child);
user_disable_single_step(child);
wake_up_process(child);
break;

Expand All @@ -513,7 +513,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
if (!valid_signal(data))
break;
clear_tsk_thread_flag(child,TIF_SYSCALL_TRACE);
set_singlestep(child);
user_enable_single_step(child);
child->exit_code = data;
/* give it a chance to run. */
wake_up_process(child);
Expand Down
7 changes: 7 additions & 0 deletions trunk/include/asm-x86/ptrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,13 @@ enum {

#ifdef __KERNEL__

/*
* These are defined as per linux/ptrace.h, which see.
*/
#define arch_has_single_step() (1)
extern void user_enable_single_step(struct task_struct *);
extern void user_disable_single_step(struct task_struct *);

struct user_desc;
extern int do_get_thread_area(struct task_struct *p, int idx,
struct user_desc __user *info);
Expand Down

0 comments on commit 6ed03a1

Please sign in to comment.