diff options
4 files changed, 134 insertions, 0 deletions
diff --git a/debian/patches/fixes0001-trans-improve-demuxers.patch b/debian/patches/fixes0001-trans-improve-demuxers.patch new file mode 100644 index 00000000..9e3b5c81 --- /dev/null +++ b/debian/patches/fixes0001-trans-improve-demuxers.patch @@ -0,0 +1,79 @@ +From 0437af60d3bbf09003f3fd1fdb9993958fcd430d Mon Sep 17 00:00:00 2001 +From: Justus Winter <4winter@informatik.uni-hamburg.de> +Date: Thu, 29 Oct 2015 15:43:28 +0100 +Subject: [PATCH hurd 1/3] trans: improve demuxers + +Handle multiple request types as recommended by the Mach Server +Writer's Guide section 4, subsection "Handling Multiple Request +Types". This avoids initializing the reply message in every X_server +function. + +* trans/proxy-defpager.c (proxy_defpager_demuxer): Improve the demuxer +function. +* trans/streamio.c (demuxer): Likewise. +--- + trans/proxy-defpager.c | 14 ++++++++++---- + trans/streamio.c | 15 +++++++++++---- + 2 files changed, 21 insertions(+), 8 deletions(-) + +diff --git a/trans/proxy-defpager.c b/trans/proxy-defpager.c +index 662f269..4fdeb35 100644 +--- a/trans/proxy-defpager.c ++++ b/trans/proxy-defpager.c +@@ -236,10 +236,16 @@ int + proxy_defpager_demuxer (mach_msg_header_t *inp, + mach_msg_header_t *outp) + { +- extern int default_pager_server (mach_msg_header_t *, mach_msg_header_t *); +- +- return default_pager_server (inp, outp) +- || trivfs_demuxer (inp, outp); ++ mig_routine_t routine; ++ if ((routine = default_pager_server_routine (inp)) || ++ (routine = NULL, trivfs_demuxer (inp, outp))) ++ { ++ if (routine) ++ (*routine) (inp, outp); ++ return TRUE; ++ } ++ else ++ return FALSE; + } + + int +diff --git a/trans/streamio.c b/trans/streamio.c +index 54627b7..507250b 100644 +--- a/trans/streamio.c ++++ b/trans/streamio.c +@@ -36,6 +36,7 @@ + + #include "libtrivfs/trivfs_fs_S.h" + #include "libtrivfs/trivfs_io_S.h" ++#include "device_reply_S.h" + + /* The global lock */ + pthread_mutex_t global_lock; +@@ -273,10 +274,16 @@ static const struct argp argp = { options, parse_opt, args_doc, doc }; + int + demuxer (mach_msg_header_t *inp, mach_msg_header_t *outp) + { +- extern int device_reply_server (mach_msg_header_t *, mach_msg_header_t *); +- +- return (trivfs_demuxer (inp, outp) +- || device_reply_server (inp, outp)); ++ mig_routine_t routine; ++ if ((routine = NULL, trivfs_demuxer (inp, outp)) || ++ (routine = device_reply_server_routine (inp))) ++ { ++ if (routine) ++ (*routine) (inp, outp); ++ return TRUE; ++ } ++ else ++ return FALSE; + } + + int +-- +2.1.4 + diff --git a/debian/patches/fixes0002-hurd-fix-type-of-in-translation-function.patch b/debian/patches/fixes0002-hurd-fix-type-of-in-translation-function.patch new file mode 100644 index 00000000..8bffb655 --- /dev/null +++ b/debian/patches/fixes0002-hurd-fix-type-of-in-translation-function.patch @@ -0,0 +1,27 @@ +From c3c6b55517d7d1e217e88d08f3265a5a7d77565a Mon Sep 17 00:00:00 2001 +From: Justus Winter <4winter@informatik.uni-hamburg.de> +Date: Thu, 29 Oct 2015 16:38:17 +0100 +Subject: [PATCH hurd 2/3] hurd: fix type of in-translation function + +* hurd/hurd_types.defs (interrupt_t): Fix type of in-translation +function. +--- + hurd/hurd_types.defs | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/hurd/hurd_types.defs b/hurd/hurd_types.defs +index 5fa59f3..1837500 100644 +--- a/hurd/hurd_types.defs ++++ b/hurd/hurd_types.defs +@@ -285,7 +285,7 @@ intran: INTERRUPT_INTRAN + intranpayload: INTERRUPT_INTRAN_PAYLOAD + #else + #ifdef HURD_DEFAULT_PAYLOAD_TO_PORT +-intranpayload: exec_startup_t HURD_DEFAULT_PAYLOAD_TO_PORT ++intranpayload: interrupt_t HURD_DEFAULT_PAYLOAD_TO_PORT + #endif + #endif + #ifdef INTERRUPT_OUTTRAN +-- +2.1.4 + diff --git a/debian/patches/fixes0003-pflocal-avoid-building-the-interrupt-server.patch b/debian/patches/fixes0003-pflocal-avoid-building-the-interrupt-server.patch new file mode 100644 index 00000000..26a1f48f --- /dev/null +++ b/debian/patches/fixes0003-pflocal-avoid-building-the-interrupt-server.patch @@ -0,0 +1,25 @@ +From 3f0a9b1145c25d1f0f19fc93da3c272c5505a5ee Mon Sep 17 00:00:00 2001 +From: Justus Winter <4winter@informatik.uni-hamburg.de> +Date: Thu, 29 Oct 2015 16:39:31 +0100 +Subject: [PATCH hurd 3/3] pflocal: avoid building the interrupt server + +* pflocal/io.c: Do not needlessly include `interrupt_S.h'. +--- + pflocal/io.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/pflocal/io.c b/pflocal/io.c +index 38d6c1d..c562274 100644 +--- a/pflocal/io.c ++++ b/pflocal/io.c +@@ -37,7 +37,6 @@ + #include "sserver.h" + + #include "io_S.h" +-#include "interrupt_S.h" + + /* Read data from an IO object. If offset if -1, read from the object + maintained file pointer. If the object is not seekable, offset is +-- +2.1.4 + diff --git a/debian/patches/series b/debian/patches/series index 68dfa6ca..0573e9f6 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -75,3 +75,6 @@ introspection0009-fixup_libports.patch introspection0010-fixup_libintrospection.patch introspection0011-fixup_libintrospection.patch introspection0012-fixup_libintrospection.patch +fixes0001-trans-improve-demuxers.patch +fixes0002-hurd-fix-type-of-in-translation-function.patch +fixes0003-pflocal-avoid-building-the-interrupt-server.patch |