Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
hw_breakpoint.c File Reference
#include <linux/errno.h>
#include <linux/hw_breakpoint.h>
#include <linux/perf_event.h>
#include <linux/ptrace.h>
#include <linux/smp.h>
#include <asm/compat.h>
#include <asm/current.h>
#include <asm/debug-monitors.h>
#include <asm/hw_breakpoint.h>
#include <asm/kdebug.h>
#include <asm/traps.h>
#include <asm/cputype.h>
#include <asm/system_misc.h>

Go to the source code of this file.

Macros

#define pr_fmt(fmt)   "hw-breakpoint: " fmt
 
#define READ_WB_REG_CASE(OFF, N, REG, VAL)
 
#define WRITE_WB_REG_CASE(OFF, N, REG, VAL)
 
#define GEN_READ_WB_REG_CASES(OFF, REG, VAL)
 
#define GEN_WRITE_WB_REG_CASES(OFF, REG, VAL)
 

Functions

int hw_breakpoint_slots (int type)
 
int arch_install_hw_breakpoint (struct perf_event *bp)
 
void arch_uninstall_hw_breakpoint (struct perf_event *bp)
 
int arch_check_bp_in_kernelspace (struct perf_event *bp)
 
int arch_bp_generic_fields (struct arch_hw_breakpoint_ctrl ctrl, int *gen_len, int *gen_type)
 
int arch_validate_hwbkpt_settings (struct perf_event *bp)
 
int reinstall_suspended_bps (struct pt_regs *regs)
 
void hw_breakpoint_thread_switch (struct task_struct *next)
 
 arch_initcall (arch_hw_breakpoint_init)
 
void hw_breakpoint_pmu_read (struct perf_event *bp)
 
int hw_breakpoint_exceptions_notify (struct notifier_block *unused, unsigned long val, void *data)
 

Macro Definition Documentation

#define GEN_READ_WB_REG_CASES (   OFF,
  REG,
  VAL 
)
Value:
READ_WB_REG_CASE(OFF, 1, REG, VAL); \
READ_WB_REG_CASE(OFF, 2, REG, VAL); \
READ_WB_REG_CASE(OFF, 3, REG, VAL); \
READ_WB_REG_CASE(OFF, 4, REG, VAL); \
READ_WB_REG_CASE(OFF, 5, REG, VAL); \
READ_WB_REG_CASE(OFF, 6, REG, VAL); \
READ_WB_REG_CASE(OFF, 7, REG, VAL); \
READ_WB_REG_CASE(OFF, 8, REG, VAL); \
READ_WB_REG_CASE(OFF, 9, REG, VAL); \
READ_WB_REG_CASE(OFF, 10, REG, VAL); \
READ_WB_REG_CASE(OFF, 11, REG, VAL); \
READ_WB_REG_CASE(OFF, 12, REG, VAL); \
READ_WB_REG_CASE(OFF, 13, REG, VAL); \
READ_WB_REG_CASE(OFF, 14, REG, VAL); \
READ_WB_REG_CASE(OFF, 15, REG, VAL)

Definition at line 90 of file hw_breakpoint.c.

#define GEN_WRITE_WB_REG_CASES (   OFF,
  REG,
  VAL 
)
Value:
WRITE_WB_REG_CASE(OFF, 1, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 2, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 3, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 4, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 5, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 6, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 7, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 8, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 9, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 10, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 11, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 12, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 13, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 14, REG, VAL); \
WRITE_WB_REG_CASE(OFF, 15, REG, VAL)

Definition at line 108 of file hw_breakpoint.c.

#define pr_fmt (   fmt)    "hw-breakpoint: " fmt

Definition at line 21 of file hw_breakpoint.c.

#define READ_WB_REG_CASE (   OFF,
  N,
  REG,
  VAL 
)
Value:
case (OFF + N): \
AARCH64_DBG_READ(N, REG, VAL); \
break

Definition at line 80 of file hw_breakpoint.c.

#define WRITE_WB_REG_CASE (   OFF,
  N,
  REG,
  VAL 
)
Value:
case (OFF + N): \
AARCH64_DBG_WRITE(N, REG, VAL); \
break

Definition at line 85 of file hw_breakpoint.c.

Function Documentation

int arch_bp_generic_fields ( struct arch_hw_breakpoint_ctrl  ctrl,
int gen_len,
int gen_type 
)

Definition at line 304 of file hw_breakpoint.c.

int arch_check_bp_in_kernelspace ( struct perf_event bp)

Definition at line 287 of file hw_breakpoint.c.

arch_initcall ( arch_hw_breakpoint_init  )
int arch_install_hw_breakpoint ( struct perf_event bp)

Definition at line 175 of file hw_breakpoint.c.

void arch_uninstall_hw_breakpoint ( struct perf_event bp)

Definition at line 224 of file hw_breakpoint.c.

int arch_validate_hwbkpt_settings ( struct perf_event bp)

Definition at line 432 of file hw_breakpoint.c.

int hw_breakpoint_exceptions_notify ( struct notifier_block unused,
unsigned long  val,
void data 
)

Definition at line 876 of file hw_breakpoint.c.

void hw_breakpoint_pmu_read ( struct perf_event bp)

Definition at line 869 of file hw_breakpoint.c.

int hw_breakpoint_slots ( int  type)

Definition at line 63 of file hw_breakpoint.c.

void hw_breakpoint_thread_switch ( struct task_struct next)

Definition at line 777 of file hw_breakpoint.c.

int reinstall_suspended_bps ( struct pt_regs regs)

Definition at line 720 of file hw_breakpoint.c.