blob: 69dbf7cebdc8bca9f6e245aa50a12502b93340d3 [file] [log] [blame]
Sarang Joshi632d0122013-10-08 15:01:38 -07001/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
Pushkar Joshiabbb2662012-09-07 14:22:58 -07002 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#undef TRACE_SYSTEM
14#define TRACE_SYSTEM exception
15
16#if !defined(_TRACE_EXCEPTION_H) || defined(TRACE_HEADER_MULTI_READ)
17#define _TRACE_EXCEPTION_H
18
19#include <linux/tracepoint.h>
20
21struct task_struct;
22
23TRACE_EVENT(user_fault,
24
25 TP_PROTO(struct task_struct *tsk, unsigned long addr, unsigned int fsr),
26
27 TP_ARGS(tsk, addr, fsr),
28
29 TP_STRUCT__entry(
30 __string(task_name, tsk->comm)
31 __field(unsigned long, addr)
32 __field(unsigned int, fsr)
33 ),
34
35 TP_fast_assign(
36 __assign_str(task_name, tsk->comm)
37 __entry->addr = addr;
38 __entry->fsr = fsr;
39 ),
40
41 TP_printk("task_name:%s addr:%lu, fsr:%u", __get_str(task_name),\
42 __entry->addr, __entry->fsr)
43);
44
45struct pt_regs;
46
47TRACE_EVENT(undef_instr,
48
49 TP_PROTO(struct pt_regs *regs, void *prog_cnt),
50
51 TP_ARGS(regs, prog_cnt),
52
53 TP_STRUCT__entry(
54 __field(void *, prog_cnt)
55 __field(struct pt_regs *, regs)
56 ),
57
58 TP_fast_assign(
59 __entry->regs = regs;
60 __entry->prog_cnt = prog_cnt;
61 ),
62
63 TP_printk("pc:%p", __entry->prog_cnt)
64);
65
Sarang Joshi632d0122013-10-08 15:01:38 -070066TRACE_EVENT(unhandled_abort,
67
68 TP_PROTO(struct pt_regs *regs, unsigned long addr, unsigned int fsr),
69
70 TP_ARGS(regs, addr, fsr),
71
72 TP_STRUCT__entry(
73 __field(struct pt_regs *, regs)
74 __field(unsigned long, addr)
75 __field(unsigned int, fsr)
76 ),
77
78 TP_fast_assign(
79 __entry->regs = regs;
80 __entry->addr = addr;
81 __entry->fsr = fsr;
82 ),
83
84 TP_printk("addr:%lu, fsr:%u", __entry->addr, __entry->fsr)
85);
86
Pushkar Joshiabbb2662012-09-07 14:22:58 -070087#endif
88
89#include <trace/define_trace.h>