From 6044b22ddbbd0c9fa164050e5519f0d0c0e9f277 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 14 Mar 2008 21:58:17 +0000 Subject: [PATCH] Added new macro SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT to disable tracing for the _kern_ktrace_output() syscall. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24392 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/kernel/tracing_config.h | 1 + src/system/kernel/syscalls.cpp | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/headers/private/kernel/tracing_config.h b/headers/private/kernel/tracing_config.h index d8c622d37d..6d894b8528 100644 --- a/headers/private/kernel/tracing_config.h +++ b/headers/private/kernel/tracing_config.h @@ -22,6 +22,7 @@ //#define RUNTIME_LOADER_TRACING //#define SIGNAL_TRACING //#define SYSCALL_TRACING +//#define SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT //#define TEAM_TRACING //#define USER_MALLOC_TRACING diff --git a/src/system/kernel/syscalls.cpp b/src/system/kernel/syscalls.cpp index a9afb5941e..4e4a542b69 100644 --- a/src/system/kernel/syscalls.cpp +++ b/src/system/kernel/syscalls.cpp @@ -1,4 +1,5 @@ /* + * Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de. * Copyright 2004-2006, Haiku Inc. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -447,7 +448,12 @@ extern "C" void trace_pre_syscall(uint32 syscallNumber, const void* parameters); void trace_pre_syscall(uint32 syscallNumber, const void* parameters) { - new(std::nothrow) SyscallTracing::PreSyscall(syscallNumber, parameters); +#ifdef SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT + if (syscallNumber != SYSCALL_KTRACE_OUTPUT) +#endif + { + new(std::nothrow) SyscallTracing::PreSyscall(syscallNumber, parameters); + } } @@ -456,7 +462,13 @@ extern "C" void trace_post_syscall(int syscallNumber, uint64 returnValue); void trace_post_syscall(int syscallNumber, uint64 returnValue) { - new(std::nothrow) SyscallTracing::PostSyscall(syscallNumber, returnValue); +#ifdef SYSCALL_TRACING_IGNORE_KTRACE_OUTPUT + if (syscallNumber != SYSCALL_KTRACE_OUTPUT) +#endif + { + new(std::nothrow) SyscallTracing::PostSyscall(syscallNumber, + returnValue); + } }