linux/arch/arm/kernel/ptrace.h
<<
>>
Prefs
   1/*
   2 *  linux/arch/arm/kernel/ptrace.h
   3 *
   4 *  Copyright (C) 2000-2003 Russell King
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License version 2 as
   8 * published by the Free Software Foundation.
   9 */
  10#include <linux/ptrace.h>
  11
  12extern void ptrace_cancel_bpt(struct task_struct *);
  13extern void ptrace_set_bpt(struct task_struct *);
  14extern void ptrace_break(struct task_struct *, struct pt_regs *);
  15
  16/*
  17 * make sure single-step breakpoint is gone.
  18 */
  19static inline void single_step_disable(struct task_struct *task)
  20{
  21        task->ptrace &= ~PT_SINGLESTEP;
  22        ptrace_cancel_bpt(task);
  23}
  24
  25static inline void single_step_enable(struct task_struct *task)
  26{
  27        task->ptrace |= PT_SINGLESTEP;
  28}
  29
  30/*
  31 * Send SIGTRAP if we're single-stepping
  32 */
  33static inline void single_step_trap(struct task_struct *task)
  34{
  35        if (task->ptrace & PT_SINGLESTEP) {
  36                ptrace_cancel_bpt(task);
  37                send_sig(SIGTRAP, task, 1);
  38        }
  39}
  40
  41static inline void single_step_clear(struct task_struct *task)
  42{
  43        if (task->ptrace & PT_SINGLESTEP)
  44                ptrace_cancel_bpt(task);
  45}
  46
  47static inline void single_step_set(struct task_struct *task)
  48{
  49        if (task->ptrace & PT_SINGLESTEP)
  50                ptrace_set_bpt(task);
  51}
  52