/
usr
/
share
/
systemtap
/
runtime
/
/usr/share/systemtap/runtime
mkdir
upload
Name
Size
Mode
Actions
dyninst/
-
0755
rm
linux/
-
0755
rm
softfloat/
-
0755
rm
transport/
-
0755
rm
unwind/
-
0755
rm
addr-map.c
523
0644
edit
dl
rm
addr-map.h
1156
0644
edit
dl
rm
alloc.c
498
0644
edit
dl
rm
arith.c
483
0644
edit
dl
rm
common_probe_context.h
6576
0644
edit
dl
rm
common_session_state.h
415
0644
edit
dl
rm
compatdefs.h
3682
0644
edit
dl
rm
copy.c
585
0644
edit
dl
rm
debug.h
485
0644
edit
dl
rm
io.c
508
0644
edit
dl
rm
k_syms.h
182
0644
edit
dl
rm
loc2c-runtime.h
17937
0644
edit
dl
rm
map-gen.c
25977
0644
edit
dl
rm
map-stat.c
3589
0644
edit
dl
rm
map.c
14660
0644
edit
dl
rm
map.h
5918
0644
edit
dl
rm
mempool.c
2644
0644
edit
dl
rm
namespaces.h
487
0644
edit
dl
rm
pmap-gen.c
8710
0644
edit
dl
rm
print.c
486
0644
edit
dl
rm
print.h
872
0644
edit
dl
rm
print_flush.c
3073
0644
edit
dl
rm
probe_lock.h
498
0644
edit
dl
rm
procfs-probes.c
4673
0644
edit
dl
rm
procfs-probes.h
674
0644
edit
dl
rm
procfs.c
4021
0644
edit
dl
rm
proc_fs_compatibility.h
2316
0644
edit
dl
rm
ptrace_compatibility.h
1512
0644
edit
dl
rm
regs.c
4280
0644
edit
dl
rm
regs.h
2352
0644
edit
dl
rm
runtime.h
928
0644
edit
dl
rm
runtime_context.h
669
0644
edit
dl
rm
runtime_defines.h
3582
0644
edit
dl
rm
softfloat.c
77159
0644
edit
dl
rm
softfloat.h
5125
0644
edit
dl
rm
stack-arm.c
1688
0644
edit
dl
rm
stack-ia64.c
1083
0644
edit
dl
rm
stack-mips.c
125
0644
edit
dl
rm
stack-s390.c
2362
0644
edit
dl
rm
stack.c
21790
0644
edit
dl
rm
stat-common.c
8486
0644
edit
dl
rm
stat.c
7421
0644
edit
dl
rm
stat.h
1964
0644
edit
dl
rm
stp_helper_lock.h
3669
0644
edit
dl
rm
stp_string.c
8632
0644
edit
dl
rm
stp_string.h
598
0644
edit
dl
rm
stp_task_work.c
3511
0644
edit
dl
rm
stp_utrace.c
94735
0644
edit
dl
rm
stp_utrace.h
14010
0644
edit
dl
rm
sym.c
39757
0644
edit
dl
rm
sym.h
6539
0644
edit
dl
rm
syscall.h
17408
0644
edit
dl
rm
task_finder_vma.c
13290
0644
edit
dl
rm
time.c
14887
0644
edit
dl
rm
timer.c
481
0644
edit
dl
rm
timer.h
482
0644
edit
dl
rm
uidgid_compatibility.h
603
0644
edit
dl
rm
unwind.c
47890
0644
edit
dl
rm
utrace_compatibility.h
3148
0644
edit
dl
rm
vma.c
9545
0644
edit
dl
rm
vsprintf.c
24058
0644
edit
dl
rm
vsprintf.h
1502
0644
edit
dl
rm
Edit:
/usr/share/systemtap/runtime/compatdefs.h
(3682B)
/* Compatibility definitions for older kernels. * Copyright (C) 2010 Red Hat Inc. * * This file is part of systemtap, and is free software. You can * redistribute it and/or modify it under the terms of the GNU General * Public License (GPL); either version 2, or (at your option) any * later version. */ #ifndef _STP_COMPAT_H_ /* -*- linux-c -*- */ #define _STP_COMPAT_H_ #if defined(CONFIG_COMPAT) #include <linux/thread_info.h> /* _stp_is_compat_task - returns true if this is a 32-on-64 bit user task. Note that some kernels/architectures define a function called is_compat_task(), but that just tests for being inside a 32bit compat syscall. We want to test whether the current task is a 32 bit compat task itself.*/ static inline int _stp_is_compat_task2(struct task_struct* tsk) { /* x86_64 has a different flag name from all other arches and s390... */ #if defined (__x86_64__) && defined(TIF_IA32) return test_tsk_thread_flag(tsk, TIF_IA32); #elif defined (__x86_64__) /* post TIF_IA32 */ return (tsk->mm && (tsk->mm->context.flags & MM_CONTEXT_UPROBE_IA32)); #elif defined(__s390__) || defined(__s390x__) return test_tsk_thread_flag(tsk, TIF_31BIT); #elif defined (__mips__) && !defined(TIF_32BIT) #ifdef CONFIG_MIPS32_O32 return test_tsk_thread_flag(tsk, TIF_32BIT_REGS); #elif defined(CONFIG_MIPS32_N32) return test_tsk_thread_flag(tsk, TIF_32BIT_ADDR); #endif #elif defined (__aarch64__) || defined(__powerpc__) || defined (__riscv) return test_tsk_thread_flag(tsk, TIF_32BIT); #else #error architecture not supported, no TIF_32BIT flag? #endif } #else static inline int _stp_is_compat_task2(struct task_struct* tsk) { return 0; } #endif /* CONFIG_COMPAT */ static inline int _stp_is_compat_task(void) { return _stp_is_compat_task2(current); } /* task_pt_regs is used in some core tapset functions, so try to make * sure something sensible is defined. task_pt_regs is required for * the tracehook interface api so is normally defined already. */ #include <asm/processor.h> #include <asm/ptrace.h> #include <linux/sched.h> #if defined(STAPCONF_LINUX_SCHED_HEADERS) #include <linux/sched/task_stack.h> #endif #if !defined(task_pt_regs) #if defined(__powerpc__) #define task_pt_regs(tsk) ((struct pt_regs *)(tsk)->thread.regs) #endif #if defined(__x86_64__) #define task_pt_regs(tsk) ((struct pt_regs *)(tsk)->thread.rsp0 - 1) #endif #if defined(__ia64__) /* pre-commit 6450578f32 */ #define task_pt_regs(tsk) ia64_task_regs(tsk) #endif #endif /* Always use _stp_current_pt_regs() in tapset/runtime code to make sure the returned user pt_regs are sane. */ #define _stp_current_pt_regs() (current->mm ? task_pt_regs(current) : NULL) /* Whether all user registers are valid. If not the pt_regs needs, * architecture specific, scrubbing before usage (in the unwinder). * XXX Currently very simple heuristics, just check arch. Should * user task and user pt_regs state. * * See arch specific "scrubbing" code in runtime/unwind/<arch>.h */ static inline int _stp_task_pt_regs_valid(struct task_struct *task, struct pt_regs *uregs) { /* It would be nice to just use syscall_get_nr(task, uregs) < 0 * but that might trigger false negatives or false positives * (bad syscall numbers or syscall tracing being in effect). */ #if defined(__i386__) return 1; /* i386 has so little registers, all are saved. */ #elif defined(__x86_64__) return 0; #endif return 0; } #ifndef STAPCONF_GET_KRETPROBE /* prior to linux commit d741bf41d7c7db4898 */ static inline struct kretprobe* get_kretprobe(struct kretprobe_instance *inst) { return inst->rp; } #endif #endif /* _STP_COMPAT_H_ */
Save
cmd:
run