probes.h (cc9b94029e9ef51787af908e9856b1eed314bc00) probes.h (c2249707ee53b5dd696f0fae8543a754684ea04a)
1/*
2 * arch/arm64/include/asm/probes.h
3 *
4 * Copyright (C) 2013 Linaro Limited
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 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 */
15#ifndef _ARM_PROBES_H
16#define _ARM_PROBES_H
17
18#include <asm/opcodes.h>
19
1/*
2 * arch/arm64/include/asm/probes.h
3 *
4 * Copyright (C) 2013 Linaro Limited
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 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
14 */
15#ifndef _ARM_PROBES_H
16#define _ARM_PROBES_H
17
18#include <asm/opcodes.h>
19
20struct kprobe;
21struct arch_specific_insn;
20typedef u32 probe_opcode_t;
21typedef void (probes_handler_t) (u32 opcode, long addr, struct pt_regs *);
22
22
23typedef u32 kprobe_opcode_t;
24typedef void (kprobes_handler_t) (u32 opcode, long addr, struct pt_regs *);
25
26/* architecture specific copy of original instruction */
23/* architecture specific copy of original instruction */
27struct arch_specific_insn {
28 kprobe_opcode_t *insn;
24struct arch_probe_insn {
25 probe_opcode_t *insn;
29 pstate_check_t *pstate_cc;
26 pstate_check_t *pstate_cc;
30 kprobes_handler_t *handler;
27 probes_handler_t *handler;
31 /* restore address after step xol */
32 unsigned long restore;
33};
28 /* restore address after step xol */
29 unsigned long restore;
30};
31#ifdef CONFIG_KPROBES
32typedef u32 kprobe_opcode_t;
33struct arch_specific_insn {
34 struct arch_probe_insn api;
35};
36#endif
34
35#endif
37
38#endif