diff options
author | Justus Winter <justus@gnupg.org> | 2016-04-24 02:11:24 +0200 |
---|---|---|
committer | Justus Winter <justus@gnupg.org> | 2016-04-24 02:11:24 +0200 |
commit | 5d1a1d7e371cf7649de85b711619c78f2f03e7ac (patch) | |
tree | ac0e4673af77052fbaf793bd59467670e1e4d89a /debian | |
parent | b6598b0370f1402639313888bd252a0887c535e5 (diff) |
Diffstat (limited to 'debian')
-rw-r--r-- | debian/patches/series | 1 | ||||
-rw-r--r-- | debian/patches/ttr20001-ttr2.diff.patch | 104 |
2 files changed, 105 insertions, 0 deletions
diff --git a/debian/patches/series b/debian/patches/series index cfe9db5..57c8f9a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -11,3 +11,4 @@ sysenter0001-yyy-sysenter-prototype.patch 700001-70_new_dde.patch.patch 700002-Port-Samuels-fix.patch +ttr20001-ttr2.diff.patch diff --git a/debian/patches/ttr20001-ttr2.diff.patch b/debian/patches/ttr20001-ttr2.diff.patch new file mode 100644 index 0000000..bd5424d --- /dev/null +++ b/debian/patches/ttr20001-ttr2.diff.patch @@ -0,0 +1,104 @@ +From 0ee124fa2288f4bb98436d340fa380a09a142834 Mon Sep 17 00:00:00 2001 +From: Justus Winter <justus@gnupg.org> +Date: Sun, 24 Apr 2016 02:09:40 +0200 +Subject: [PATCH gnumach] ttr2.diff + +--- + include/mach/gnumach.defs | 9 +++++++++ + kern/thread.c | 24 +++++++++++++++++++++--- + kern/thread.h | 8 ++++++++ + 3 files changed, 38 insertions(+), 3 deletions(-) + +diff --git a/include/mach/gnumach.defs b/include/mach/gnumach.defs +index 5235df6..37cb54b 100644 +--- a/include/mach/gnumach.defs ++++ b/include/mach/gnumach.defs +@@ -136,3 +136,12 @@ simpleroutine gsync_requeue( + wake_one : boolean_t; + flags : int); + ++/* XXX */ ++simpleroutine thread_terminate_release2( ++ thread : thread_t; ++ task : task_t; ++ thread_name : mach_port_name_t; ++ reply_port : mach_port_name_t; ++ address : vm_address_t; ++ size : vm_size_t; ++ death_event : vm_offset_t); +diff --git a/kern/thread.c b/kern/thread.c +index ce44ed1..d5f52ea 100644 +--- a/kern/thread.c ++++ b/kern/thread.c +@@ -43,6 +43,7 @@ + #include <kern/counters.h> + #include <kern/debug.h> + #include <kern/eventcount.h> ++#include <kern/gsync.h> + #include <kern/ipc_mig.h> + #include <kern/ipc_tt.h> + #include <kern/processor.h> +@@ -848,13 +849,14 @@ kern_return_t thread_terminate( + return KERN_SUCCESS; + } + +-kern_return_t thread_terminate_release( ++kern_return_t thread_terminate_release2( + thread_t thread, + task_t task, + mach_port_t thread_name, + mach_port_t reply_port, + vm_offset_t address, +- vm_size_t size) ++ vm_size_t size, ++ vm_offset_t death_event) + { + if (task == NULL) + return KERN_INVALID_ARGUMENT; +@@ -867,7 +869,23 @@ kern_return_t thread_terminate_release( + if ((address != 0) || (size != 0)) + vm_deallocate(task->map, address, size); + +- return thread_terminate(thread); ++ kern_return_t ret = thread_terminate (thread); ++ if (death_event != 0) ++ gsync_wake (task, death_event, 0, GSYNC_MUTATE); ++ ++ return (ret); ++} ++ ++kern_return_t thread_terminate_release( ++ thread_t thread, ++ task_t task, ++ mach_port_t thread_name, ++ mach_port_t reply_port, ++ vm_offset_t address, ++ vm_size_t size) ++{ ++ return (thread_terminate_release2 (thread, ++ task, thread_name, reply_port, address, size, 0)); + } + + /* +diff --git a/kern/thread.h b/kern/thread.h +index 7106fd2..b04bd75 100644 +--- a/kern/thread.h ++++ b/kern/thread.h +@@ -285,6 +285,14 @@ extern kern_return_t thread_terminate_release( + mach_port_t reply_port, + vm_offset_t address, + vm_size_t size); ++extern kern_return_t thread_terminate_release2( ++ thread_t thread, ++ task_t task, ++ mach_port_t thread_name, ++ mach_port_t reply_port, ++ vm_offset_t address, ++ vm_size_t size, ++ vm_offset_t death_event); + extern kern_return_t thread_suspend( + thread_t thread); + extern kern_return_t thread_resume( +-- +2.1.4 + |