diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-04-09 12:32:51 +0200 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-04-09 12:32:51 +0200 |
commit | 67a09295447f16176256db37233235164a23c7fc (patch) | |
tree | b7b0d9112c9c8ccd8845d7b8876d829cd55a765b /debian | |
parent | b421d7ad794a170ad452aca25c735319954cff35 (diff) |
rm notify-fix-receiver-lookups.patch
Diffstat (limited to 'debian')
-rw-r--r-- | debian/patches/notify-fix-receiver-lookups.patch | 408 | ||||
-rw-r--r-- | debian/patches/series | 1 |
2 files changed, 0 insertions, 409 deletions
diff --git a/debian/patches/notify-fix-receiver-lookups.patch b/debian/patches/notify-fix-receiver-lookups.patch deleted file mode 100644 index 1632be39..00000000 --- a/debian/patches/notify-fix-receiver-lookups.patch +++ /dev/null @@ -1,408 +0,0 @@ -commit e9687ec4ff525ae4a88314ba4ae97da770bd012f -Author: Justus Winter <4winter@informatik.uni-hamburg.de> -Date: Sat Apr 5 17:40:24 2014 +0200 - - libports: fix notify_port_t receiver lookups - - * libports/Makefile (MIGSFLAGS): Include mig-mutate.h. - * libports/mig-decls.h: New file. - * libports/mig-mutate.h: Likewise. - * libports/notify-dead-name.c: Fix receiver lookups. - * libports/notify-no-senders.c: Likewise. - * libports/notify-msg-accepted.c: Adjust function declaration. - * libports/notify-port-deleted.c: Likewise. - * libports/notify-port-destroyed.c: Likewise. - * libports/notify-send-once.c: Likewise. - * libports/ports.h: Likewise. - * proc/Makefile (MIGSFLAGS): Include mig-mutate.h, move PROCESS mutators... - * proc/mig-mutate.h: ... into a new file, add NOTIFY mutators. - * proc/notify.c: Fix receiver lookups, adjust function declarations. - * term/devio.c (ports_do_mach_notify_send_once): Adjust accordingly. - -diff --git a/libports/Makefile b/libports/Makefile -index 767ee73..30da1c1 100644 ---- a/libports/Makefile -+++ b/libports/Makefile -@@ -45,5 +45,6 @@ LDLIBS += -lpthread - OBJS = $(SRCS:.c=.o) notifyServer.o interruptServer.o - - MIGCOMSFLAGS = -prefix ports_ -+MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h - - include ../Makeconf -diff --git a/libports/mig-decls.h b/libports/mig-decls.h -new file mode 100644 -index 0000000..f8c4f15 ---- /dev/null -+++ b/libports/mig-decls.h -@@ -0,0 +1,40 @@ -+/* -+ Copyright (C) 2014 Free Software Foundation, Inc. -+ Written by Justus Winter. -+ -+ This file is part of the GNU Hurd. -+ -+ The GNU Hurd is free software; you can redistribute it and/or -+ modify it under the terms of the GNU General Public License as -+ published by the Free Software Foundation; either version 2, or (at -+ your option) any later version. -+ -+ The GNU Hurd is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with the GNU Hurd. If not, see <http://www.gnu.org/licenses/>. */ -+ -+#ifndef __LIBPORTS_MIG_DECLS_H__ -+#define __LIBPORTS_MIG_DECLS_H__ -+ -+#include "ports.h" -+ -+/* Called by server stub functions. */ -+ -+static inline struct port_info * __attribute__ ((unused)) -+begin_using_port_info_port (mach_port_t port) -+{ -+ return ports_lookup_port (0, port, 0); -+} -+ -+static inline void __attribute__ ((unused)) -+end_using_port_info (struct port_info *p) -+{ -+ if (p) -+ ports_port_deref (p); -+} -+ -+#endif /* __LIBPORTS_MIG_DECLS_H__ */ -diff --git a/libports/mig-mutate.h b/libports/mig-mutate.h -new file mode 100644 -index 0000000..f692236 ---- /dev/null -+++ b/libports/mig-mutate.h -@@ -0,0 +1,25 @@ -+/* -+ Copyright (C) 2014 Free Software Foundation, Inc. -+ Written by Justus Winter. -+ -+ This file is part of the GNU Hurd. -+ -+ The GNU Hurd is free software; you can redistribute it and/or -+ modify it under the terms of the GNU General Public License as -+ published by the Free Software Foundation; either version 2, or (at -+ your option) any later version. -+ -+ The GNU Hurd is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with the GNU Hurd. If not, see <http://www.gnu.org/licenses/>. */ -+ -+#define NOTIFY_INTRAN \ -+ port_info_t begin_using_port_info_port (mach_port_t) -+#define NOTIFY_DESTRUCTOR \ -+ end_using_port_info (port_info_t) -+#define NOTIFY_IMPORTS \ -+ import "libports/mig-decls.h"; -diff --git a/libports/notify-dead-name.c b/libports/notify-dead-name.c -index c67145d..f974e33 100644 ---- a/libports/notify-dead-name.c -+++ b/libports/notify-dead-name.c -@@ -22,13 +22,12 @@ - #include "notify_S.h" - - error_t --ports_do_mach_notify_dead_name (mach_port_t notify, mach_port_t dead_name) -+ports_do_mach_notify_dead_name (struct port_info *pi, -+ mach_port_t dead_name) - { -- void *pi = ports_lookup_port (0, notify, 0); - if (!pi) - return EOPNOTSUPP; - ports_dead_name (pi, dead_name); -- ports_port_deref (pi); - - /* Drop gratuitous extra reference that the notification creates. */ - mach_port_deallocate (mach_task_self (), dead_name); -diff --git a/libports/notify-msg-accepted.c b/libports/notify-msg-accepted.c -index c975083..0e49715 100644 ---- a/libports/notify-msg-accepted.c -+++ b/libports/notify-msg-accepted.c -@@ -22,7 +22,8 @@ - #include "notify_S.h" - - error_t --ports_do_mach_notify_msg_accepted (mach_port_t notify, mach_port_t name) -+ports_do_mach_notify_msg_accepted (struct port_info *pi, -+ mach_port_t name) - { - return 0; - } -diff --git a/libports/notify-no-senders.c b/libports/notify-no-senders.c -index dc9b316..55aa853 100644 ---- a/libports/notify-no-senders.c -+++ b/libports/notify-no-senders.c -@@ -22,12 +22,11 @@ - #include "notify_S.h" - - error_t --ports_do_mach_notify_no_senders (mach_port_t port, mach_port_mscount_t count) -+ports_do_mach_notify_no_senders (struct port_info *pi, -+ mach_port_mscount_t count) - { -- void *pi = ports_lookup_port (0, port, 0); - if (!pi) - return EOPNOTSUPP; - ports_no_senders (pi, count); -- ports_port_deref (pi); - return 0; - } -diff --git a/libports/notify-port-deleted.c b/libports/notify-port-deleted.c -index 85012af..cfd3379 100644 ---- a/libports/notify-port-deleted.c -+++ b/libports/notify-port-deleted.c -@@ -22,7 +22,8 @@ - #include "notify_S.h" - - error_t --ports_do_mach_notify_port_deleted (mach_port_t notify, mach_port_t name) -+ports_do_mach_notify_port_deleted (struct port_info *pi, -+ mach_port_t name) - { - return 0; - } -diff --git a/libports/notify-port-destroyed.c b/libports/notify-port-destroyed.c -index 78eaf21..b8ece2a 100644 ---- a/libports/notify-port-destroyed.c -+++ b/libports/notify-port-destroyed.c -@@ -22,7 +22,8 @@ - #include "notify_S.h" - - error_t --ports_do_mach_notify_port_destroyed (mach_port_t notify, mach_port_t name) -+ports_do_mach_notify_port_destroyed (struct port_info *pi, -+ mach_port_t name) - { - return 0; - } -diff --git a/libports/notify-send-once.c b/libports/notify-send-once.c -index 09ffcf2..ad0ba33 100644 ---- a/libports/notify-send-once.c -+++ b/libports/notify-send-once.c -@@ -22,7 +22,7 @@ - #include "notify_S.h" - - error_t --ports_do_mach_notify_send_once (mach_port_t notify) -+ports_do_mach_notify_send_once (struct port_info *pi) - { - return 0; - } -diff --git a/libports/ports.h b/libports/ports.h -index 0791841..47d4607 100644 ---- a/libports/ports.h -+++ b/libports/ports.h -@@ -50,6 +50,8 @@ struct port_info - hurd_ihash_locp_t hentry; - struct port_info *next, **prevp; /* links on port_class list */ - }; -+typedef struct port_info *port_info_t; -+ - /* FLAGS above are the following: */ - #define PORT_HAS_SENDRIGHTS 0x0001 /* send rights extant */ - #define PORT_INHIBITED PORTS_INHIBITED -@@ -383,13 +385,19 @@ void ports_interrupt_notified_rpcs (void *object, mach_port_t port, - int ports_notify_server (mach_msg_header_t *, mach_msg_header_t *); - - /* Notification server routines called by ports_notify_server. */ --extern kern_return_t ports_do_mach_notify_dead_name (mach_port_t notify, mach_port_t deadport); --extern kern_return_t ports_do_mach_notify_msg_accepted (mach_port_t notify, mach_port_t name); --extern kern_return_t ports_do_mach_notify_no_senders (mach_port_t port, mach_port_mscount_t count); --extern kern_return_t ports_do_mach_notify_port_deleted (mach_port_t notify, mach_port_t name); --extern kern_return_t ports_do_mach_notify_port_destroyed (mach_port_t notify, mach_port_t name); - extern kern_return_t -- ports_do_mach_notify_send_once (mach_port_t notify); -+ ports_do_mach_notify_dead_name (struct port_info *pi, mach_port_t deadport); -+extern kern_return_t -+ ports_do_mach_notify_msg_accepted (struct port_info *pi, mach_port_t name); -+extern kern_return_t -+ ports_do_mach_notify_no_senders (struct port_info *pi, -+ mach_port_mscount_t count); -+extern kern_return_t -+ ports_do_mach_notify_port_deleted (struct port_info *pi, mach_port_t name); -+extern kern_return_t -+ ports_do_mach_notify_port_destroyed (struct port_info *pi, mach_port_t name); -+extern kern_return_t -+ ports_do_mach_notify_send_once (struct port_info *pi); - - /* A default interrupt server */ - int ports_interrupt_server (mach_msg_header_t *, mach_msg_header_t *); -diff --git a/proc/Makefile b/proc/Makefile -index 2eed13c..aa31ffb 100644 ---- a/proc/Makefile -+++ b/proc/Makefile -@@ -24,9 +24,7 @@ target = proc - SRCS = wait.c hash.c host.c info.c main.c mgt.c notify.c pgrp.c msg.c \ - cpu-types.c stubs.c - --MIGSFLAGS="-DPROCESS_INTRAN=pstruct_t reqport_find (process_t)" \ -- "-DPROCESS_DESTRUCTOR=process_drop (pstruct_t)" \ -- "-DPROCESS_IMPORTS=import \"proc.h\";" -+MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h - - MIGSTUBS = processServer.o notifyServer.o \ - ourmsgUser.o proc_excUser.o proc_excServer.o -diff --git a/proc/mig-mutate.h b/proc/mig-mutate.h -new file mode 100644 -index 0000000..ad6eb32 ---- /dev/null -+++ b/proc/mig-mutate.h -@@ -0,0 +1,33 @@ -+/* -+ Copyright (C) 2014 Free Software Foundation, Inc. -+ Written by Justus Winter. -+ -+ This file is part of the GNU Hurd. -+ -+ The GNU Hurd is free software; you can redistribute it and/or -+ modify it under the terms of the GNU General Public License as -+ published by the Free Software Foundation; either version 2, or (at -+ your option) any later version. -+ -+ The GNU Hurd is distributed in the hope that it will be useful, but -+ WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with the GNU Hurd. If not, see <http://www.gnu.org/licenses/>. */ -+ -+ -+#define PROCESS_INTRAN \ -+ pstruct_t reqport_find (process_t) -+#define PROCESS_DESTRUCTOR \ -+ process_drop (pstruct_t) -+#define PROCESS_IMPORTS \ -+ import "proc.h"; -+ -+#define NOTIFY_INTRAN \ -+ port_info_t begin_using_port_info_port (mach_port_t) -+#define NOTIFY_DESTRUCTOR \ -+ end_using_port_info (port_info_t) -+#define NOTIFY_IMPORTS \ -+ import "libports/mig-decls.h"; -diff --git a/proc/notify.c b/proc/notify.c -index 5a112b0..b6731ae 100644 ---- a/proc/notify.c -+++ b/proc/notify.c -@@ -36,33 +36,33 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ - message ports die. Both notifications get sent to the process - port. */ - kern_return_t --do_mach_notify_dead_name (mach_port_t notify, -+do_mach_notify_dead_name (struct port_info *pi, - mach_port_t deadport) - { - struct proc *p; - -- if (notify == generic_port) -+ if (pi->port_right == generic_port) - { - check_dead_execdata_notify (deadport); - mach_port_deallocate (mach_task_self (), deadport); - return 0; - } - -- p = ports_lookup_port (proc_bucket, notify, proc_class); -+ p = (struct proc *) pi; - -- if (!p) -+ if (!p -+ || p->p_pi.bucket != proc_bucket -+ || p->p_pi.class != proc_class) - return EOPNOTSUPP; - - if (p->p_task == deadport) - { - process_has_exited (p); -- ports_port_deref (p); - mach_port_deallocate (mach_task_self (), deadport); - return 0; - } - else - { -- ports_port_deref (p); - return EINVAL; - } - } -@@ -70,35 +70,35 @@ do_mach_notify_dead_name (mach_port_t notify, - /* We get no-senders notifications on exception ports that we - handle through proc_handle_exceptions. */ - kern_return_t --do_mach_notify_no_senders (mach_port_t notify, -+do_mach_notify_no_senders (struct port_info *pi, - mach_port_mscount_t mscount) - { -- return ports_do_mach_notify_no_senders (notify, mscount); -+ return ports_do_mach_notify_no_senders (pi, mscount); - } - - kern_return_t --do_mach_notify_port_deleted (mach_port_t notify, -+do_mach_notify_port_deleted (struct port_info *pi, - mach_port_t name) - { - return 0; - } - - kern_return_t --do_mach_notify_msg_accepted (mach_port_t notify, -+do_mach_notify_msg_accepted (struct port_info *pi, - mach_port_t name) - { - return 0; - } - - kern_return_t --do_mach_notify_port_destroyed (mach_port_t notify, -+do_mach_notify_port_destroyed (struct port_info *pi, - mach_port_t name) - { - return 0; - } - - kern_return_t --do_mach_notify_send_once (mach_port_t notify) -+do_mach_notify_send_once (struct port_info *pi) - { - return 0; - } -diff --git a/term/devio.c b/term/devio.c -index 7c7d8fd..eedd7b8 100644 ---- a/term/devio.c -+++ b/term/devio.c -@@ -731,18 +731,18 @@ device_write_reply (mach_port_t replyport, - } - - error_t --ports_do_mach_notify_send_once (mach_port_t notify) -+ports_do_mach_notify_send_once (struct port_info *pi) - { - error_t err; - - pthread_mutex_lock (&global_lock); - -- if (notify == phys_reply_writes) -+ if (pi->port_right == phys_reply_writes) - { - err = 0; - devio_start_output (); - } -- else if (notify == phys_reply) -+ else if (pi->port_right == phys_reply) - { - if (input_pending) - { diff --git a/debian/patches/series b/debian/patches/series index 403c8cc2..b1195786 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -43,5 +43,4 @@ xxx-fix-build.patch mach-defpager-protected-payload.patch #ext2fs-skip-unallocated-blocks.patch -notify-fix-receiver-lookups.patch init_drop_setbuf.patch |