Linux Kernel
3.7.1
|
Go to the source code of this file.
Data Structures | |
union | decode_item |
struct | decode_header |
struct | decode_table |
struct | decode_custom |
struct | decode_simulate |
struct | decode_emulate |
struct | decode_or |
struct | decode_reject |
Macros | |
#define | KPROBE_ARM_BREAKPOINT_INSTRUCTION 0x07f001f8 |
#define | KPROBE_THUMB16_BREAKPOINT_INSTRUCTION 0xde18 |
#define | KPROBE_THUMB32_BREAKPOINT_INSTRUCTION 0xf7f0a018 |
#define | alu_write_pc_interworks false |
#define | test_alu_write_pc_interworking() |
#define | is_writeback(insn) ((insn ^ 0x01000000) & 0x01200000) |
#define | DECODE_TYPE_BITS 4 |
#define | DECODE_TYPE_MASK ((1 << DECODE_TYPE_BITS) - 1) |
#define | REGS(r16, r12, r8, r4, r0) |
#define | DECODE_END {.bits = DECODE_TYPE_END} |
#define | DECODE_HEADER(_type, _mask, _value, _regs) |
#define | DECODE_TABLE(_mask, _value, _table) |
#define | DECODE_CUSTOM(_mask, _value, _decoder) |
#define | DECODE_SIMULATEX(_mask, _value, _handler, _regs) |
#define | DECODE_SIMULATE(_mask, _value, _handler) DECODE_SIMULATEX(_mask, _value, _handler, 0) |
#define | DECODE_EMULATEX(_mask, _value, _handler, _regs) |
#define | DECODE_EMULATE(_mask, _value, _handler) DECODE_EMULATEX(_mask, _value, _handler, 0) |
#define | DECODE_OR(_mask, _value) DECODE_HEADER(DECODE_TYPE_OR, _mask, _value, 0) |
#define | DECODE_REJECT(_mask, _value) DECODE_HEADER(DECODE_TYPE_REJECT, _mask, _value, 0) |
Enumerations | |
enum | kprobe_insn { INSN_REJECTED, INSN_GOOD, INSN_GOOD_NO_SLOT } |
enum | decode_type { DECODE_TYPE_END, DECODE_TYPE_TABLE, DECODE_TYPE_CUSTOM, DECODE_TYPE_SIMULATE, DECODE_TYPE_EMULATE, DECODE_TYPE_OR, DECODE_TYPE_REJECT, NUM_DECODE_TYPES } |
enum | decode_reg_type { REG_TYPE_NONE = 0, REG_TYPE_ANY, REG_TYPE_SAMEAS16, REG_TYPE_SP, REG_TYPE_PC, REG_TYPE_NOSP, REG_TYPE_NOSPPC, REG_TYPE_NOPC, REG_TYPE_NOPCWB, REG_TYPE_NOPCX, REG_TYPE_NOSPPCX, REG_TYPE_0 = REG_TYPE_NONE } |
Functions | |
enum kprobe_insn() | kprobe_decode_insn_t (kprobe_opcode_t, struct arch_specific_insn *) |
enum kprobe_insn | arm_kprobe_decode_insn (kprobe_opcode_t, struct arch_specific_insn *) |
void __init | arm_kprobe_decode_init (void) |
void __init | find_str_pc_offset (void) |
void __init | test_load_write_pc_interworking (void) |
void __kprobes | kprobe_simulate_nop (struct kprobe *p, struct pt_regs *regs) |
void __kprobes | kprobe_emulate_none (struct kprobe *p, struct pt_regs *regs) |
enum kprobe_insn __kprobes | kprobe_decode_ldmstm (kprobe_opcode_t insn, struct arch_specific_insn *asi) |
int | kprobe_decode_insn (kprobe_opcode_t insn, struct arch_specific_insn *asi, const union decode_item *table, bool thumb16) |
Variables | |
kprobe_check_cc *const | kprobe_condition_checks [16] |
int | str_pc_offset |
bool | load_write_pc_interworks |
union decode_item | kprobe_decode_arm_table [] |
#define DECODE_CUSTOM | ( | _mask, | |
_value, | |||
_decoder | |||
) |
#define DECODE_EMULATE | ( | _mask, | |
_value, | |||
_handler | |||
) | DECODE_EMULATEX(_mask, _value, _handler, 0) |
#define DECODE_EMULATEX | ( | _mask, | |
_value, | |||
_handler, | |||
_regs | |||
) |
#define DECODE_END {.bits = DECODE_TYPE_END} |
#define DECODE_HEADER | ( | _type, | |
_mask, | |||
_value, | |||
_regs | |||
) |
#define DECODE_OR | ( | _mask, | |
_value | |||
) | DECODE_HEADER(DECODE_TYPE_OR, _mask, _value, 0) |
#define DECODE_REJECT | ( | _mask, | |
_value | |||
) | DECODE_HEADER(DECODE_TYPE_REJECT, _mask, _value, 0) |
#define DECODE_SIMULATE | ( | _mask, | |
_value, | |||
_handler | |||
) | DECODE_SIMULATEX(_mask, _value, _handler, 0) |
#define DECODE_SIMULATEX | ( | _mask, | |
_value, | |||
_handler, | |||
_regs | |||
) |
#define DECODE_TABLE | ( | _mask, | |
_value, | |||
_table | |||
) |
#define DECODE_TYPE_MASK ((1 << DECODE_TYPE_BITS) - 1) |
enum decode_reg_type |
enum decode_type |
enum kprobe_insn |
Definition at line 77 of file kprobes-common.c.
enum kprobe_insn arm_kprobe_decode_insn | ( | kprobe_opcode_t | , |
struct arch_specific_insn * | |||
) |
Definition at line 1000 of file kprobes-arm.c.
Definition at line 32 of file kprobes-common.c.
int kprobe_decode_insn | ( | kprobe_opcode_t | insn, |
struct arch_specific_insn * | asi, | ||
const union decode_item * | table, | ||
bool | thumb16 | ||
) |
Definition at line 518 of file kprobes-common.c.
enum kprobe_insn() kprobe_decode_insn_t | ( | kprobe_opcode_t | , |
struct arch_specific_insn * | |||
) |
enum kprobe_insn __kprobes kprobe_decode_ldmstm | ( | kprobe_opcode_t | insn, |
struct arch_specific_insn * | asi | ||
) |
Definition at line 280 of file kprobes-common.c.
Definition at line 180 of file kprobes-common.c.
Definition at line 176 of file kprobes-common.c.
Definition at line 53 of file kprobes-common.c.
kprobe_check_cc* const kprobe_condition_checks[16] |
Definition at line 168 of file kprobes-common.c.
union decode_item kprobe_decode_arm_table[] |
Definition at line 887 of file kprobes-arm.c.
bool load_write_pc_interworks |
Definition at line 51 of file kprobes-common.c.
int str_pc_offset |
Definition at line 30 of file kprobes-common.c.