summaryrefslogtreecommitdiff
path: root/debian/patches/random-fixes0003-i386-improve-syscall-tracing.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/random-fixes0003-i386-improve-syscall-tracing.patch')
-rw-r--r--debian/patches/random-fixes0003-i386-improve-syscall-tracing.patch72
1 files changed, 0 insertions, 72 deletions
diff --git a/debian/patches/random-fixes0003-i386-improve-syscall-tracing.patch b/debian/patches/random-fixes0003-i386-improve-syscall-tracing.patch
deleted file mode 100644
index 41aa5f4..0000000
--- a/debian/patches/random-fixes0003-i386-improve-syscall-tracing.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 625801e5ada58af77861c72514ebc5521a67398f Mon Sep 17 00:00:00 2001
-From: Justus Winter <4winter@informatik.uni-hamburg.de>
-Date: Sun, 27 Sep 2015 15:34:36 +0200
-Subject: [PATCH gnumach 3/4] i386: improve syscall tracing
-
-* kern/syscall_sw.h (mach_trap_t): Turn unused field into `mach_trap_name'.
-(MACH_TRAP, MACH_TRAP_STACK): Record name.
-* i386/i386/debug_i386.c (syscall_trace_print): Use the name and
-format the arguments to look like c.
----
- i386/i386/debug_i386.c | 21 ++++++++++++++++-----
- kern/syscall_sw.h | 6 +++---
- 2 files changed, 19 insertions(+), 8 deletions(-)
-
-diff --git a/i386/i386/debug_i386.c b/i386/i386/debug_i386.c
-index f0fe2ae..7a33350 100644
---- a/i386/i386/debug_i386.c
-+++ b/i386/i386/debug_i386.c
-@@ -137,11 +137,22 @@ syscall_trace_print(int syscallvec, ...)
- {
- int syscallnum = syscallvec >> 4;
- int i;
--
-- printf("syscall -%d:", syscallnum);
-- for (i = 0; i < mach_trap_table[syscallnum].mach_trap_arg_count; i++)
-- printf(" %08x", (&syscallvec)[1+i]);
-- printf("\n");
-+ const mach_trap_t *trap = &mach_trap_table[syscallnum];
-+
-+ printf("0x%08x:0x%08x:%s(",
-+ current_task(), current_thread(), trap->mach_trap_name);
-+ for (i = 0; i < trap->mach_trap_arg_count; i++) {
-+ unsigned long value = (&syscallvec)[1+i];
-+ /* Use a crude heuristic to format pointers. */
-+ if (value > 1024)
-+ printf("0x%08x", value);
-+ else
-+ printf("%d", value);
-+
-+ if (i + 1 < trap->mach_trap_arg_count)
-+ printf(", ");
-+ }
-+ printf(")\n");
-
- return syscallvec;
- }
-diff --git a/kern/syscall_sw.h b/kern/syscall_sw.h
-index 87fc1bb..1edf1c7 100644
---- a/kern/syscall_sw.h
-+++ b/kern/syscall_sw.h
-@@ -37,15 +37,15 @@ typedef struct {
- int mach_trap_arg_count;
- int (*mach_trap_function)();
- boolean_t mach_trap_stack;
-- int mach_trap_unused;
-+ const char *mach_trap_name;
- } mach_trap_t;
-
- extern mach_trap_t mach_trap_table[];
- extern int mach_trap_count;
-
- #define MACH_TRAP(name, arg_count) \
-- { (arg_count), (int (*)()) (name), FALSE, 0 }
-+ { (arg_count), (int (*)()) (name), FALSE, #name }
- #define MACH_TRAP_STACK(name, arg_count) \
-- { (arg_count), (int (*)()) (name), TRUE, 0 }
-+ { (arg_count), (int (*)()) (name), TRUE, #name }
-
- #endif /* _KERN_SYSCALL_SW_H_ */
---
-2.1.4
-