···227227/* flag bit 8 is available */228228#define TIF_SECCOMP 9 /* secure computing */229229#define TIF_SYSCALL_AUDIT 10 /* syscall auditing active */230230+#define TIF_SYSCALL_TRACEPOINT 11 /* syscall tracepoint instrumentation */230231/* flag bit 11 is available */231232/* NOTE: Thread flags >= 12 should be ones we have no interest232233 * in using in assembly, else we can't use the mask as···247246#define _TIF_32BIT (1<<TIF_32BIT)248247#define _TIF_SECCOMP (1<<TIF_SECCOMP)249248#define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)249249+#define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)250250#define _TIF_ABI_PENDING (1<<TIF_ABI_PENDING)251251#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)252252#define _TIF_FREEZE (1<<TIF_FREEZE)
+1-1
arch/sparc/include/asm/unistd.h
···398398#define __NR_perf_event_open 327399399#define __NR_recvmmsg 328400400401401-#define NR_SYSCALLS 329401401+#define NR_syscalls 329402402403403#ifdef __32bit_syscall_numbers__404404/* Sparc 32-bit only has the "setresuid32", "getresuid32" variants,
+1-1
arch/sparc/kernel/entry.S
···12941294 sethi %hi(PSR_SYSCALL), %l412951295 or %l0, %l4, %l012961296 /* Direct access to user regs, must faster. */12971297- cmp %g1, NR_SYSCALLS12971297+ cmp %g1, NR_syscalls12981298 bgeu linux_sparc_ni_syscall12991299 sll %g1, 2, %l413001300 ld [%l7 + %l4], %l7
+11
arch/sparc/kernel/ftrace.c
···44#include <linux/percpu.h>55#include <linux/init.h>66#include <linux/list.h>77+#include <trace/syscall.h>7889#include <asm/ftrace.h>910···9291}9392#endif94939494+#ifdef CONFIG_FTRACE_SYSCALLS9595+9696+extern unsigned int sys_call_table[];9797+9898+unsigned long __init arch_syscall_addr(int nr)9999+{100100+ return (unsigned long)sys_call_table[nr];101101+}102102+103103+#endif
+10
arch/sparc/kernel/ptrace_64.c
···2323#include <linux/signal.h>2424#include <linux/regset.h>2525#include <linux/tracehook.h>2626+#include <trace/syscall.h>2627#include <linux/compat.h>2728#include <linux/elf.h>2829···3736#include <asm/page.h>3837#include <asm/cpudata.h>3938#include <asm/cacheflush.h>3939+4040+#define CREATE_TRACE_POINTS4141+#include <trace/events/syscalls.h>40424143#include "entry.h"4244···10631059 if (test_thread_flag(TIF_SYSCALL_TRACE))10641060 ret = tracehook_report_syscall_entry(regs);1065106110621062+ if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))10631063+ trace_sys_enter(regs, regs->u_regs[UREG_G1]);10641064+10661065 if (unlikely(current->audit_context) && !ret)10671066 audit_syscall_entry((test_thread_flag(TIF_32BIT) ?10681067 AUDIT_ARCH_SPARC :···1090108310911084 audit_syscall_exit(result, regs->u_regs[UREG_I0]);10921085 }10861086+10871087+ if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))10881088+ trace_sys_exit(regs, regs->u_regs[UREG_G1]);1093108910941090 if (test_thread_flag(TIF_SYSCALL_TRACE))10951091 tracehook_report_syscall_exit(regs, 0);