···70#define TIF_NOTIFY_RESUME 1 /* callback before returning to user */71#define TIF_SIGPENDING 2 /* signal pending */72#define TIF_NEED_RESCHED 3 /* rescheduling necessary */073#define TIF_DIE_IF_KERNEL 9 /* dik recursion lock */74#define TIF_MEMDIE 13 /* is terminating due to OOM killer */75···78#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)79#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)80#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)08182/* Work to do on interrupt/exception return. */83#define _TIF_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
···70#define TIF_NOTIFY_RESUME 1 /* callback before returning to user */71#define TIF_SIGPENDING 2 /* signal pending */72#define TIF_NEED_RESCHED 3 /* rescheduling necessary */73+#define TIF_SYSCALL_AUDIT 4 /* syscall audit active */74#define TIF_DIE_IF_KERNEL 9 /* dik recursion lock */75#define TIF_MEMDIE 13 /* is terminating due to OOM killer */76···77#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)78#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)79#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)80+#define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)8182/* Work to do on interrupt/exception return. */83#define _TIF_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
···14#include <linux/security.h>15#include <linux/signal.h>16#include <linux/tracehook.h>01718#include <asm/uaccess.h>19#include <asm/pgtable.h>···317asmlinkage unsigned long syscall_trace_enter(void)318{319 unsigned long ret = 0;0320 if (test_thread_flag(TIF_SYSCALL_TRACE) &&321 tracehook_report_syscall_entry(current_pt_regs()))322 ret = -1UL;0323 return ret ?: current_pt_regs()->r0;324}325326asmlinkage void327syscall_trace_leave(void)328{0329 if (test_thread_flag(TIF_SYSCALL_TRACE))330 tracehook_report_syscall_exit(current_pt_regs(), 0);331}
···14#include <linux/security.h>15#include <linux/signal.h>16#include <linux/tracehook.h>17+#include <linux/audit.h>1819#include <asm/uaccess.h>20#include <asm/pgtable.h>···316asmlinkage unsigned long syscall_trace_enter(void)317{318 unsigned long ret = 0;319+ struct pt_regs *regs = current_pt_regs();320 if (test_thread_flag(TIF_SYSCALL_TRACE) &&321 tracehook_report_syscall_entry(current_pt_regs()))322 ret = -1UL;323+ audit_syscall_entry(AUDIT_ARCH_ALPHA, regs->r0, regs->r16, regs->r17, regs->r18, regs->r19);324 return ret ?: current_pt_regs()->r0;325}326327asmlinkage void328syscall_trace_leave(void)329{330+ audit_syscall_exit(current_pt_regs());331 if (test_thread_flag(TIF_SYSCALL_TRACE))332 tracehook_report_syscall_exit(current_pt_regs(), 0);333}