diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-04-06 17:51:59 +0200 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-04-06 17:51:59 +0200 |
commit | 7f4740e43afa956178df852ef2dfb1892ed53997 (patch) | |
tree | 4cabe42630dbf2638c3811a44a9a496639e5384e /debian | |
parent | 5500926fee36eda95752e01ccddf8de76e95e1b9 (diff) |
rm fix-receiver-lookups.patch
Diffstat (limited to 'debian')
-rw-r--r-- | debian/patches/fix-receiver-lookups.patch | 314 | ||||
-rw-r--r-- | debian/patches/series | 1 |
2 files changed, 0 insertions, 315 deletions
diff --git a/debian/patches/fix-receiver-lookups.patch b/debian/patches/fix-receiver-lookups.patch deleted file mode 100644 index d6c15b0d..00000000 --- a/debian/patches/fix-receiver-lookups.patch +++ /dev/null @@ -1,314 +0,0 @@ -diff --git a/exec/Makefile b/exec/Makefile -index 3ef742d..d332f36 100644 ---- a/exec/Makefile -+++ b/exec/Makefile -@@ -30,7 +30,8 @@ HURDLIBS = trivfs fshelp iohelp ports ihash shouldbeinlibc - OTHERLIBS = -lpthread - - exec-MIGSFLAGS = -imacros $(srcdir)/execmutations.h - exec_experimental-MIGSFLAGS = -imacros $(srcdir)/execmutations.h -+exec_startup-MIGSFLAGS = -imacros $(srcdir)/execmutations.h - - include ../Makeconf - -diff --git a/exec/exec.c b/exec/exec.c -index e693f63..935762e 100644 ---- a/exec/exec.c -+++ b/exec/exec.c -@@ -1457,7 +1457,7 @@ S_exec_setexecdata (struct trivfs_protid *protid, - /* RPC sent on the bootstrap port. */ - - kern_return_t --S_exec_startup_get_info (mach_port_t port, -+S_exec_startup_get_info (struct bootinfo *boot, - vm_address_t *user_entry, - vm_address_t *phdr_data, vm_size_t *phdr_size, - vm_address_t *stack_base, vm_size_t *stack_size, -@@ -1472,11 +1472,8 @@ S_exec_startup_get_info (mach_port_t port, - mach_msg_type_number_t *nports, - int **intarray, mach_msg_type_number_t *nints) - { -- struct bootinfo *boot = ports_lookup_port (port_bucket, port, -- execboot_portclass); - if (! boot) - return EOPNOTSUPP; -- ports_port_deref (boot); - - /* Pass back all the information we are storing. */ - -diff --git a/exec/execmutations.h b/exec/execmutations.h -index ffcba9c..2acca7a 100644 ---- a/exec/execmutations.h -+++ b/exec/execmutations.h -@@ -7,4 +7,12 @@ - import "priv.h"; \ - import "../libtrivfs/mig-decls.h"; \ - -+#define EXEC_STARTUP_INTRAN \ -+ bootinfo_t begin_using_bootinfo_port (exec_startup_t) -+#define EXEC_STARTUP_DESTRUCTOR \ -+ end_using_bootinfo (bootinfo_t) -+#define EXEC_STARTUP_IMPORTS \ -+ import "priv.h"; \ -+ import "mig-decls.h"; -+ - #define SERVERCOPY 1 -diff --git a/exec/mig-decls.h b/exec/mig-decls.h -new file mode 100644 -index 0000000..0437414 ---- /dev/null -+++ b/exec/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 __EXEC_MIG_DECLS_H__ -+#define __EXEC_MIG_DECLS_H__ -+ -+#include "priv.h" -+ -+/* Called by server stub functions. */ -+ -+static inline struct bootinfo * __attribute__ ((unused)) -+begin_using_bootinfo_port (mach_port_t port) -+{ -+ return ports_lookup_port (port_bucket, port, execboot_portclass); -+} -+ -+static inline void __attribute__ ((unused)) -+end_using_bootinfo (struct bootinfo *b) -+{ -+ if (b) -+ ports_port_deref (b); -+} -+ -+#endif /* __EXEC_MIG_DECLS_H__ */ -diff --git a/exec/priv.h b/exec/priv.h -index 85e03ae..733f35c 100644 ---- a/exec/priv.h -+++ b/exec/priv.h -@@ -52,6 +52,7 @@ struct bootinfo - vm_address_t phdr_addr, user_entry; - vm_size_t phdr_size; - }; -+typedef struct bootinfo *bootinfo_t; - - - /* Where to put the service ports. */ -@@ -151,5 +152,4 @@ extern int *std_ints; - extern size_t std_nports, std_nints; - extern pthread_rwlock_t std_lock; - -- - #endif /* exec_priv_h */ -diff --git a/hurd/exec_startup.defs b/hurd/exec_startup.defs -index 9dfb79a..697f6b2 100644 ---- a/hurd/exec_startup.defs -+++ b/hurd/exec_startup.defs -@@ -23,11 +23,15 @@ subsystem exec_startup 30500; - - #include <hurd/hurd_types.defs> - -+#ifdef EXEC_STARTUP_IMPORTS -+EXEC_STARTUP_IMPORTS -+#endif -+ - /* This call is made by a new task to its bootstrap port to get its - startup ports and information. */ - - routine exec_startup_get_info ( -- bootstrap: mach_port_t; -+ bootstrap: exec_startup_t; - /* These describe the entry point and program header data - of the user program loaded into the task. */ - out user_entry: vm_address_t; -diff --git a/hurd/hurd_types.defs b/hurd/hurd_types.defs -index 4b32504..6060fa4 100644 ---- a/hurd/hurd_types.defs -+++ b/hurd/hurd_types.defs -@@ -156,6 +156,18 @@ destructor: FS_NOTIFY_DESTRUCTOR - #endif - ; - -+type exec_startup_t = mach_port_copy_send_t -+#ifdef EXEC_STARTUP_INTRAN -+intran: EXEC_STARTUP_INTRAN -+#endif -+#ifdef EXEC_STARTUP_OUTTRAN -+outtran: EXEC_STARTUP_OUTTRAN -+#endif -+#ifdef EXEC_STARTUP_DESTRUCTOR -+destructor: EXEC_STARTUP_DESTRUCTOR -+#endif -+; -+ - - type proccoll_t = mach_port_copy_send_t; - -diff --git a/hurd/hurd_types.h b/hurd/hurd_types.h -index 7d1bb73..d569454 100644 ---- a/hurd/hurd_types.h -+++ b/hurd/hurd_types.h -@@ -46,6 +46,7 @@ typedef mach_port_t pf_t; /* Protocol family */ - typedef mach_port_t addr_port_t; - typedef mach_port_t startup_t; - typedef mach_port_t fs_notify_t; -+typedef mach_port_t exec_startup_t; - typedef mach_port_t proccoll_t; - - #include <errno.h> /* Defines `error_t'. */ -diff --git a/libdiskfs/Makefile b/libdiskfs/Makefile -index aeebe4e..996e86a 100644 ---- a/libdiskfs/Makefile -+++ b/libdiskfs/Makefile -@@ -68,6 +68,7 @@ fsys-MIGSFLAGS = -imacros $(srcdir)/fsmutations.h -DREPLY_PORTS - fs-MIGSFLAGS = -imacros $(srcdir)/fsmutations.h - io-MIGSFLAGS = -imacros $(srcdir)/fsmutations.h - ifsock-MIGSFLAGS = -imacros $(srcdir)/fsmutations.h -+exec_startup-MIGSFLAGS = -imacros $(srcdir)/fsmutations.h - MIGCOMSFLAGS = -prefix diskfs_ - - include ../Makeconf -diff --git a/libdiskfs/boot-start.c b/libdiskfs/boot-start.c -index 7b8a84f..9dd2751 100644 ---- a/libdiskfs/boot-start.c -+++ b/libdiskfs/boot-start.c -@@ -299,7 +299,7 @@ diskfs_start_bootstrap () - call (as does any task) to get its state. We can't give it all of - its ports (we'll provide those with a later call to exec_init). */ - kern_return_t --diskfs_S_exec_startup_get_info (mach_port_t port, -+diskfs_S_exec_startup_get_info (struct bootinfo *upt, - vm_address_t *user_entry, - vm_address_t *phdr_data, - vm_size_t *phdr_size, -@@ -322,12 +322,10 @@ diskfs_S_exec_startup_get_info (mach_port_t port, - error_t err; - mach_port_t *portarray, *dtable; - mach_port_t rootport; -- struct ufsport *upt; - struct protid *rootpi; - struct peropen *rootpo; - -- if (!(upt = ports_lookup_port (diskfs_port_bucket, port, -- diskfs_execboot_class))) -+ if (! upt) - return EOPNOTSUPP; - - *user_entry = 0; -@@ -368,13 +366,12 @@ diskfs_S_exec_startup_get_info (mach_port_t port, - portarray[INIT_PORT_AUTH] = MACH_PORT_NULL; - portarray[INIT_PORT_PROC] = MACH_PORT_NULL; - portarray[INIT_PORT_CTTYID] = MACH_PORT_NULL; -- portarray[INIT_PORT_BOOTSTRAP] = port; /* use the same port */ -+ portarray[INIT_PORT_BOOTSTRAP] = upt->pi.port_right; /* use the same port */ - - *portarraypoly = MACH_MSG_TYPE_MAKE_SEND; - - *dtablepoly = MACH_MSG_TYPE_COPY_SEND; - -- ports_port_deref (upt); - return 0; - } - -diff --git a/libdiskfs/diskfs.h b/libdiskfs/diskfs.h -index 359b11b..2a58bda 100644 ---- a/libdiskfs/diskfs.h -+++ b/libdiskfs/diskfs.h -@@ -126,6 +126,11 @@ struct diskfs_control - struct port_info pi; - }; - -+struct bootinfo -+{ -+ struct port_info pi; -+}; -+ - /* Possibly lookup types for diskfs_lookup call */ - enum lookup_type - { -@@ -801,9 +806,11 @@ void diskfs_finish_protid (struct protid *cred, struct iouser *user); - - extern struct protid * diskfs_begin_using_protid_port (file_t port); - extern struct diskfs_control * diskfs_begin_using_control_port (fsys_t port); -+extern struct bootinfo *diskfs_begin_using_bootinfo_port (exec_startup_t port); - - extern void diskfs_end_using_protid_port (struct protid *cred); - extern void diskfs_end_using_control_port (struct diskfs_control *cred); -+extern void diskfs_end_using_bootinfo (struct bootinfo *upt); - - #if defined(__USE_EXTERN_INLINES) || defined(DISKFS_DEFINE_EXTERN_INLINE) - -@@ -823,6 +830,14 @@ diskfs_begin_using_control_port (fsys_t port) - return ports_lookup_port (diskfs_port_bucket, port, NULL); - } - -+/* And for the exec_startup interface. */ -+DISKFS_EXTERN_INLINE struct bootinfo * -+diskfs_begin_using_bootinfo_port (exec_startup_t port) -+{ -+ return ports_lookup_port (diskfs_port_bucket, port, diskfs_execboot_class); -+} -+ -+ - /* Called by MiG after server routines have been run; this - balances begin_using_protid_port, and is arranged for the io - and fs interfaces by fsmutations.h. */ -@@ -841,6 +856,14 @@ diskfs_end_using_control_port (struct diskfs_control *cred) - ports_port_deref (cred); - } - -+/* And for the exec_startup interface. */ -+DISKFS_EXTERN_INLINE void -+diskfs_end_using_bootinfo (struct bootinfo *upt) -+{ -+ if (upt) -+ ports_port_deref (upt); -+} -+ - #endif /* Use extern inlines. */ - - /* Called when a protid CRED has no more references. (Because references\ -diff --git a/libdiskfs/fsmutations.h b/libdiskfs/fsmutations.h -index 68b6ae3..6248708 100644 ---- a/libdiskfs/fsmutations.h -+++ b/libdiskfs/fsmutations.h -@@ -30,3 +30,10 @@ - #define IO_IMPORTS import "priv.h"; - #define FSYS_IMPORTS import "priv.h"; - #define IFSOCK_IMPORTS import "priv.h"; -+ -+#define EXEC_STARTUP_INTRAN \ -+ bootinfo_t diskfs_begin_using_bootinfo_port (exec_startup_t) -+#define EXEC_STARTUP_DESTRUCTOR \ -+ diskfs_end_using_bootinfo (bootinfo_t) -+#define EXEC_STARTUP_IMPORTS \ -+ import "priv.h"; -diff --git a/libdiskfs/priv.h b/libdiskfs/priv.h -index b41fa43..4363a00 100644 ---- a/libdiskfs/priv.h -+++ b/libdiskfs/priv.h -@@ -74,6 +74,7 @@ extern int _diskfs_diskdirty; - /* Needed for MiG. */ - typedef struct protid *protid_t; - typedef struct diskfs_control *control_t; -+typedef struct bootinfo *bootinfo_t; - - /* Actually read or write a file. The file size must already permit - the requested access. NP is the file to read/write. DATA is a buffer diff --git a/debian/patches/series b/debian/patches/series index fc462332..bef18f73 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -47,5 +47,4 @@ xxx-fix-build.patch mach-defpager-protected-payload.patch #ext2fs-skip-unallocated-blocks.patch -fix-receiver-lookups.patch notify-fix-receiver-lookups.patch |