summaryrefslogtreecommitdiff
path: root/debian/patches/0011-proc-register-for-new-task-notifications.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0011-proc-register-for-new-task-notifications.patch')
-rw-r--r--debian/patches/0011-proc-register-for-new-task-notifications.patch126
1 files changed, 0 insertions, 126 deletions
diff --git a/debian/patches/0011-proc-register-for-new-task-notifications.patch b/debian/patches/0011-proc-register-for-new-task-notifications.patch
deleted file mode 100644
index 02a7371c..00000000
--- a/debian/patches/0011-proc-register-for-new-task-notifications.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 672950d7b5402ed7d2a35a458b83598a60c7f73a Mon Sep 17 00:00:00 2001
-From: Justus Winter <4winter@informatik.uni-hamburg.de>
-Date: Mon, 16 Sep 2013 16:09:05 +0200
-Subject: [PATCH hurd 11/14] proc: register for new task notifications
-
-* proc/Makefile (MIGSTUBS): Add `gnumachServer.o'.
-* proc/main.c (message_demuxer): Handle the `task_notify' protocol.
-(main): Register for new task notificatinos.
-* proc/mgt.c (S_mach_notify_new_task): Add server function.
----
- proc/Makefile | 4 +++-
- proc/main.c | 11 ++++++++++-
- proc/mgt.c | 35 ++++++++++++++++++++++++++++++++++-
- 3 files changed, 47 insertions(+), 3 deletions(-)
-
-diff --git a/proc/Makefile b/proc/Makefile
-index aa31ffb..2275a66 100644
---- a/proc/Makefile
-+++ b/proc/Makefile
-@@ -27,9 +27,11 @@ SRCS = wait.c hash.c host.c info.c main.c mgt.c notify.c pgrp.c msg.c \
- MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
-
- MIGSTUBS = processServer.o notifyServer.o \
-- ourmsgUser.o proc_excUser.o proc_excServer.o
-+ ourmsgUser.o proc_excUser.o proc_excServer.o \
-+ task_notifyServer.o
- OBJS = $(SRCS:.c=.o) $(MIGSTUBS)
- HURDLIBS = ihash ports shouldbeinlibc
-+
- OTHERLIBS = -lpthread
-
- include ../Makeconf
-diff --git a/proc/main.c b/proc/main.c
-index 3419d44..b4288fb 100644
---- a/proc/main.c
-+++ b/proc/main.c
-@@ -31,6 +31,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
- #include <pids.h>
-
- #include "proc.h"
-+#include "gnumach_U.h"
-
- const char *argp_program_version = STANDARD_HURD_VERSION (proc);
-
-@@ -38,6 +39,7 @@ const char *argp_program_version = STANDARD_HURD_VERSION (proc);
- #include "notify_S.h"
- #include "../libports/interrupt_S.h"
- #include "proc_exc_S.h"
-+#include "task_notify_S.h"
-
- int
- message_demuxer (mach_msg_header_t *inp,
-@@ -47,7 +49,8 @@ message_demuxer (mach_msg_header_t *inp,
- if ((routine = process_server_routine (inp)) ||
- (routine = notify_server_routine (inp)) ||
- (routine = ports_interrupt_server_routine (inp)) ||
-- (routine = proc_exc_server_routine (inp)))
-+ (routine = proc_exc_server_routine (inp)) ||
-+ (routine = task_notify_server_routine (inp)))
- {
- pthread_mutex_lock (&global_lock);
- (*routine) (inp, outp);
-@@ -152,6 +155,12 @@ main (int argc, char **argv, char **envp)
- if (err)
- error (0, err, "Increasing priority failed");
-
-+ err = register_new_task_notification (_hurd_host_priv,
-+ generic_port,
-+ MACH_MSG_TYPE_MAKE_SEND);
-+ if (err)
-+ error (0, err, "Registering task notifications failed");
-+
- {
- /* Get our stderr set up to print on the console, in case we have
- to panic or something. */
-diff --git a/proc/mgt.c b/proc/mgt.c
-index 02d69db..32408ae 100644
---- a/proc/mgt.c
-+++ b/proc/mgt.c
-@@ -1,5 +1,5 @@
- /* Process management
-- Copyright (C) 1992,93,94,95,96,99,2000,01,02,13
-+ Copyright (C) 1992,93,94,95,96,99,2000,01,02,13,14
- Free Software Foundation, Inc.
-
- This file is part of the GNU Hurd.
-@@ -981,3 +981,36 @@ S_proc_get_code (struct proc *callerp,
-
- return 0;
- }
-+
-+/* Handle new task notifications from the kernel. */
-+error_t
-+S_mach_notify_new_task (mach_port_t notify,
-+ mach_port_t task,
-+ mach_port_t parent)
-+{
-+ struct proc *parentp, *childp;
-+
-+ if (notify != generic_port)
-+ return EOPNOTSUPP;
-+
-+ parentp = task_find_nocreate (parent);
-+ if (! parentp)
-+ {
-+ mach_port_deallocate (mach_task_self (), task);
-+ mach_port_deallocate (mach_task_self (), parent);
-+ return ESRCH;
-+ }
-+
-+ childp = task_find_nocreate (task);
-+ if (! childp)
-+ {
-+ mach_port_mod_refs (mach_task_self (), task, MACH_PORT_RIGHT_SEND, +1);
-+ childp = new_proc (task);
-+ }
-+
-+ /* XXX do something interesting */
-+
-+ mach_port_deallocate (mach_task_self (), task);
-+ mach_port_deallocate (mach_task_self (), parent);
-+ return 0;
-+}
---
-2.1.1
-