diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-06-14 02:16:53 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-06-14 02:16:53 -0400 |
commit | eaaaeef392cb245e415c31d480ed2d5a466fd88f (patch) | |
tree | 483761495ceb9cc3a277769f52d0ec8abeed1ac0 /arch/sh/kernel/ptrace_64.c | |
parent | 9973e38575070b70c68bad177fb5056548fea349 (diff) |
sh: Add kprobe-based event tracer.
This follows the x86/ppc changes for kprobe-based event tracing on sh.
While kprobes is only supported on 32-bit sh, we provide the API for
HAVE_REGS_AND_STACK_ACCESS_API for both 32 and 64-bit.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/ptrace_64.c')
-rw-r--r-- | arch/sh/kernel/ptrace_64.c | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/arch/sh/kernel/ptrace_64.c b/arch/sh/kernel/ptrace_64.c index 5fd644da7f02..b97817016b6a 100644 --- a/arch/sh/kernel/ptrace_64.c +++ b/arch/sh/kernel/ptrace_64.c | |||
@@ -252,6 +252,85 @@ static int fpregs_active(struct task_struct *target, | |||
252 | } | 252 | } |
253 | #endif | 253 | #endif |
254 | 254 | ||
255 | const struct pt_regs_offset regoffset_table[] = { | ||
256 | REG_OFFSET_NAME(pc), | ||
257 | REG_OFFSET_NAME(sr), | ||
258 | REG_OFFSET_NAME(syscall_nr), | ||
259 | REGS_OFFSET_NAME(0), | ||
260 | REGS_OFFSET_NAME(1), | ||
261 | REGS_OFFSET_NAME(2), | ||
262 | REGS_OFFSET_NAME(3), | ||
263 | REGS_OFFSET_NAME(4), | ||
264 | REGS_OFFSET_NAME(5), | ||
265 | REGS_OFFSET_NAME(6), | ||
266 | REGS_OFFSET_NAME(7), | ||
267 | REGS_OFFSET_NAME(8), | ||
268 | REGS_OFFSET_NAME(9), | ||
269 | REGS_OFFSET_NAME(10), | ||
270 | REGS_OFFSET_NAME(11), | ||
271 | REGS_OFFSET_NAME(12), | ||
272 | REGS_OFFSET_NAME(13), | ||
273 | REGS_OFFSET_NAME(14), | ||
274 | REGS_OFFSET_NAME(15), | ||
275 | REGS_OFFSET_NAME(16), | ||
276 | REGS_OFFSET_NAME(17), | ||
277 | REGS_OFFSET_NAME(18), | ||
278 | REGS_OFFSET_NAME(19), | ||
279 | REGS_OFFSET_NAME(20), | ||
280 | REGS_OFFSET_NAME(21), | ||
281 | REGS_OFFSET_NAME(22), | ||
282 | REGS_OFFSET_NAME(23), | ||
283 | REGS_OFFSET_NAME(24), | ||
284 | REGS_OFFSET_NAME(25), | ||
285 | REGS_OFFSET_NAME(26), | ||
286 | REGS_OFFSET_NAME(27), | ||
287 | REGS_OFFSET_NAME(28), | ||
288 | REGS_OFFSET_NAME(29), | ||
289 | REGS_OFFSET_NAME(30), | ||
290 | REGS_OFFSET_NAME(31), | ||
291 | REGS_OFFSET_NAME(32), | ||
292 | REGS_OFFSET_NAME(33), | ||
293 | REGS_OFFSET_NAME(34), | ||
294 | REGS_OFFSET_NAME(35), | ||
295 | REGS_OFFSET_NAME(36), | ||
296 | REGS_OFFSET_NAME(37), | ||
297 | REGS_OFFSET_NAME(38), | ||
298 | REGS_OFFSET_NAME(39), | ||
299 | REGS_OFFSET_NAME(40), | ||
300 | REGS_OFFSET_NAME(41), | ||
301 | REGS_OFFSET_NAME(42), | ||
302 | REGS_OFFSET_NAME(43), | ||
303 | REGS_OFFSET_NAME(44), | ||
304 | REGS_OFFSET_NAME(45), | ||
305 | REGS_OFFSET_NAME(46), | ||
306 | REGS_OFFSET_NAME(47), | ||
307 | REGS_OFFSET_NAME(48), | ||
308 | REGS_OFFSET_NAME(49), | ||
309 | REGS_OFFSET_NAME(50), | ||
310 | REGS_OFFSET_NAME(51), | ||
311 | REGS_OFFSET_NAME(52), | ||
312 | REGS_OFFSET_NAME(53), | ||
313 | REGS_OFFSET_NAME(54), | ||
314 | REGS_OFFSET_NAME(55), | ||
315 | REGS_OFFSET_NAME(56), | ||
316 | REGS_OFFSET_NAME(57), | ||
317 | REGS_OFFSET_NAME(58), | ||
318 | REGS_OFFSET_NAME(59), | ||
319 | REGS_OFFSET_NAME(60), | ||
320 | REGS_OFFSET_NAME(61), | ||
321 | REGS_OFFSET_NAME(62), | ||
322 | REGS_OFFSET_NAME(63), | ||
323 | TREGS_OFFSET_NAME(0), | ||
324 | TREGS_OFFSET_NAME(1), | ||
325 | TREGS_OFFSET_NAME(2), | ||
326 | TREGS_OFFSET_NAME(3), | ||
327 | TREGS_OFFSET_NAME(4), | ||
328 | TREGS_OFFSET_NAME(5), | ||
329 | TREGS_OFFSET_NAME(6), | ||
330 | TREGS_OFFSET_NAME(7), | ||
331 | REG_OFFSET_END, | ||
332 | }; | ||
333 | |||
255 | /* | 334 | /* |
256 | * These are our native regset flavours. | 335 | * These are our native regset flavours. |
257 | */ | 336 | */ |