summaryrefslogtreecommitdiff
path: root/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/0001-libpager-remove-the-seqno-parameters.patch330
-rw-r--r--debian/patches/0002-libpager-use-libports-notification-functions.patch197
-rw-r--r--debian/patches/series2
3 files changed, 529 insertions, 0 deletions
diff --git a/debian/patches/0001-libpager-remove-the-seqno-parameters.patch b/debian/patches/0001-libpager-remove-the-seqno-parameters.patch
new file mode 100644
index 00000000..ff6b097e
--- /dev/null
+++ b/debian/patches/0001-libpager-remove-the-seqno-parameters.patch
@@ -0,0 +1,330 @@
+From 8a7091da46e1600a2a7c8a2b14cea4c4269746fa Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sun, 7 Dec 2014 17:22:31 +0100
+Subject: [PATCH hurd 1/2] libpager: remove the `seqno' parameters
+
+* libpager/Makefile (MIGSFLAGS): Drop `-DSEQNOS'.
+* libpager/priv.h (struct pager): Drop fields `seqno' and `waitingforseqno'.
+* libpager/chg-compl.c: Adopt accordingly.
+* libpager/data-request.c: Likewise.
+* libpager/data-return.c: Likewise.
+* libpager/data-unlock.c: Likewise.
+* libpager/demuxer.c: Likewise.
+* libpager/lock-completed.c: Likewise.
+* libpager/no-senders.c: Likewise.
+* libpager/notify-stubs.c: Likewise.
+* libpager/object-init.c: Likewise.
+* libpager/object-terminate.c: Likewise.
+* libpager/pager-create.c: Likewise.
+* libpager/stubs.c: Likewise.
+---
+ libpager/Makefile | 2 +-
+ libpager/chg-compl.c | 3 +--
+ libpager/data-request.c | 3 +--
+ libpager/data-return.c | 13 ++++++-------
+ libpager/data-unlock.c | 3 +--
+ libpager/demuxer.c | 4 ++--
+ libpager/lock-completed.c | 3 +--
+ libpager/no-senders.c | 3 +--
+ libpager/notify-stubs.c | 15 +++++----------
+ libpager/object-init.c | 3 +--
+ libpager/object-terminate.c | 3 +--
+ libpager/pager-create.c | 2 --
+ libpager/priv.h | 3 ---
+ libpager/stubs.c | 9 +++------
+ 14 files changed, 24 insertions(+), 45 deletions(-)
+
+diff --git a/libpager/Makefile b/libpager/Makefile
+index a15a899..2bfd845 100644
+--- a/libpager/Makefile
++++ b/libpager/Makefile
+@@ -31,7 +31,7 @@ HURDLIBS= ports
+ LDLIBS += -lpthread
+ OBJS = $(SRCS:.c=.o) memory_objectServer.o notifyServer.o
+
+-MIGSFLAGS = -DSEQNOS -imacros $(srcdir)/mig-mutate.h
++MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
+ MIGCOMSFLAGS = -prefix _pager_
+
+ include ../Makeconf
+diff --git a/libpager/chg-compl.c b/libpager/chg-compl.c
+index 89ccfc8..1669092 100644
+--- a/libpager/chg-compl.c
++++ b/libpager/chg-compl.c
+@@ -22,8 +22,7 @@
+ when a memory_object_change_attributes call has completed. Read this
+ in combination with pager-attr.c. */
+ kern_return_t
+-_pager_seqnos_memory_object_change_completed (struct pager *p,
+- mach_port_seqno_t seq,
++_pager_memory_object_change_completed (struct pager *p,
+ boolean_t maycache,
+ memory_object_copy_strategy_t strat)
+ {
+diff --git a/libpager/data-request.c b/libpager/data-request.c
+index 18f3de6..1ab7f44 100644
+--- a/libpager/data-request.c
++++ b/libpager/data-request.c
+@@ -22,8 +22,7 @@
+
+ /* Implement pagein callback as described in <mach/memory_object.defs>. */
+ kern_return_t
+-_pager_seqnos_memory_object_data_request (struct pager *p,
+- mach_port_seqno_t seqno,
++_pager_memory_object_data_request (struct pager *p,
+ mach_port_t control,
+ vm_offset_t offset,
+ vm_size_t length,
+diff --git a/libpager/data-return.c b/libpager/data-return.c
+index f16f323..d5707a9 100644
+--- a/libpager/data-return.c
++++ b/libpager/data-return.c
+@@ -21,13 +21,12 @@
+ #include <string.h>
+ #include <assert.h>
+
+-/* Worker function used by _pager_seqnos_memory_object_data_return
+- and _pager_seqnos_memory_object_data_initialize. All args are
+- as for _pager_seqnos_memory_object_data_return; the additional
++/* Worker function used by _pager_memory_object_data_return
++ and _pager_memory_object_data_initialize. All args are
++ as for _pager_memory_object_data_return; the additional
+ INITIALIZING arg identifies which function is calling us. */
+ kern_return_t
+ _pager_do_write_request (struct pager *p,
+- mach_port_seqno_t seqno,
+ mach_port_t control,
+ vm_offset_t offset,
+ pointer_t data,
+@@ -113,6 +112,7 @@ _pager_do_write_request (struct pager *p,
+ than we really have to require (because *all* future writes on
+ this object are going to wait for seqno while we wait for the
+ previous write), but the case is relatively infrequent. */
++ /* XXX: Is this still needed? */
+ retry:
+ for (i = 0; i < npages; i++)
+ if (pm_entries[i] & PM_PAGINGOUT)
+@@ -254,8 +254,7 @@ _pager_do_write_request (struct pager *p,
+
+ /* Implement pageout call back as described by <mach/memory_object.defs>. */
+ kern_return_t
+-_pager_seqnos_memory_object_data_return (struct pager *p,
+- mach_port_seqno_t seqno,
++_pager_memory_object_data_return (struct pager *p,
+ mach_port_t control,
+ vm_offset_t offset,
+ pointer_t data,
+@@ -263,6 +262,6 @@ _pager_seqnos_memory_object_data_return (struct pager *p,
+ int dirty,
+ int kcopy)
+ {
+- return _pager_do_write_request (p, seqno, control, offset, data,
++ return _pager_do_write_request (p, control, offset, data,
+ length, dirty, kcopy, 0);
+ }
+diff --git a/libpager/data-unlock.c b/libpager/data-unlock.c
+index 8c7c776..460a3cb 100644
+--- a/libpager/data-unlock.c
++++ b/libpager/data-unlock.c
+@@ -22,8 +22,7 @@
+ /* Implement kernel requests for access as described in
+ <mach/memory_object.defs>. */
+ kern_return_t
+-_pager_seqnos_memory_object_data_unlock (struct pager *p,
+- mach_port_seqno_t seqno,
++_pager_memory_object_data_unlock (struct pager *p,
+ mach_port_t control,
+ vm_offset_t offset,
+ vm_size_t length,
+diff --git a/libpager/demuxer.c b/libpager/demuxer.c
+index a06c4bf..57a6ccb 100644
+--- a/libpager/demuxer.c
++++ b/libpager/demuxer.c
+@@ -88,8 +88,8 @@ pager_demuxer (struct requests *requests,
+ error_t err = MIG_NO_REPLY;
+
+ mig_routine_t routine;
+- if (! ((routine = _pager_seqnos_memory_object_server_routine (inp)) ||
+- (routine = _pager_seqnos_notify_server_routine (inp))))
++ if (! ((routine = _pager_memory_object_server_routine (inp)) ||
++ (routine = _pager_notify_server_routine (inp))))
+ return FALSE;
+
+ #define MASK (8u - 1u)
+diff --git a/libpager/lock-completed.c b/libpager/lock-completed.c
+index 30b1dd3..de3ef85 100644
+--- a/libpager/lock-completed.c
++++ b/libpager/lock-completed.c
+@@ -23,8 +23,7 @@
+ when a memory_object_lock_request call has completed. Read this
+ in combination with lock-object.c. */
+ kern_return_t
+-_pager_seqnos_memory_object_lock_completed (struct pager *p,
+- mach_port_seqno_t seqno,
++_pager_memory_object_lock_completed (struct pager *p,
+ mach_port_t control,
+ vm_offset_t offset,
+ vm_size_t length)
+diff --git a/libpager/no-senders.c b/libpager/no-senders.c
+index d0bbe27..b750101 100644
+--- a/libpager/no-senders.c
++++ b/libpager/no-senders.c
+@@ -21,8 +21,7 @@
+ #include "notify_S.h"
+
+ error_t
+-_pager_do_seqnos_mach_notify_no_senders (struct port_info *pi,
+- mach_port_seqno_t seqno,
++_pager_do_mach_notify_no_senders (struct port_info *pi,
+ mach_port_mscount_t mscount)
+ {
+ if (!pi ||
+diff --git a/libpager/notify-stubs.c b/libpager/notify-stubs.c
+index a826420..6440815 100644
+--- a/libpager/notify-stubs.c
++++ b/libpager/notify-stubs.c
+@@ -23,8 +23,7 @@
+ #include <errno.h>
+
+ error_t
+-_pager_do_seqnos_mach_notify_port_deleted (struct port_info *pi,
+- mach_port_seqno_t seqno,
++_pager_do_mach_notify_port_deleted (struct port_info *pi,
+ mach_port_t name
+ __attribute__ ((unused)))
+ {
+@@ -32,8 +31,7 @@ _pager_do_seqnos_mach_notify_port_deleted (struct port_info *pi,
+ }
+
+ error_t
+-_pager_do_seqnos_mach_notify_msg_accepted (struct port_info *pi,
+- mach_port_seqno_t seqno,
++_pager_do_mach_notify_msg_accepted (struct port_info *pi,
+ mach_port_t name
+ __attribute__ ((unused)))
+ {
+@@ -41,8 +39,7 @@ _pager_do_seqnos_mach_notify_msg_accepted (struct port_info *pi,
+ }
+
+ error_t
+-_pager_do_seqnos_mach_notify_port_destroyed (struct port_info *pi,
+- mach_port_seqno_t seqno,
++_pager_do_mach_notify_port_destroyed (struct port_info *pi,
+ mach_port_t name
+ __attribute__ ((unused)))
+ {
+@@ -50,15 +47,13 @@ _pager_do_seqnos_mach_notify_port_destroyed (struct port_info *pi,
+ }
+
+ error_t
+-_pager_do_seqnos_mach_notify_send_once (struct port_info *pi,
+- mach_port_seqno_t seqno)
++_pager_do_mach_notify_send_once (struct port_info *pi)
+ {
+ return 0;
+ }
+
+ error_t
+-_pager_do_seqnos_mach_notify_dead_name (struct port_info *pi,
+- mach_port_seqno_t seqno,
++_pager_do_mach_notify_dead_name (struct port_info *pi,
+ mach_port_t name
+ __attribute__ ((unused)))
+ {
+diff --git a/libpager/object-init.c b/libpager/object-init.c
+index eb62c44..985b1ba 100644
+--- a/libpager/object-init.c
++++ b/libpager/object-init.c
+@@ -22,8 +22,7 @@
+ /* Implement the object initialiation call as described in
+ <mach/memory_object.defs>. */
+ kern_return_t
+-_pager_seqnos_memory_object_init (struct pager *p,
+- mach_port_seqno_t seqno,
++_pager_memory_object_init (struct pager *p,
+ mach_port_t control,
+ mach_port_t name,
+ vm_size_t pagesize)
+diff --git a/libpager/object-terminate.c b/libpager/object-terminate.c
+index e8c6f38..4d07d9c 100644
+--- a/libpager/object-terminate.c
++++ b/libpager/object-terminate.c
+@@ -22,8 +22,7 @@
+ /* Implement the object termination call from the kernel as described
+ in <mach/memory_object.defs>. */
+ kern_return_t
+-_pager_seqnos_memory_object_terminate (struct pager *p,
+- mach_port_seqno_t seqno,
++_pager_memory_object_terminate (struct pager *p,
+ mach_port_t control,
+ mach_port_t name)
+ {
+diff --git a/libpager/pager-create.c b/libpager/pager-create.c
+index 1fc15b8..b583f02 100644
+--- a/libpager/pager-create.c
++++ b/libpager/pager-create.c
+@@ -42,10 +42,8 @@ pager_create (struct user_pager_info *upi,
+ p->notify_on_evict = notify_on_evict;
+ p->memobjcntl = MACH_PORT_NULL;
+ p->memobjname = MACH_PORT_NULL;
+- p->seqno = -1;
+ p->noterm = 0;
+ p->termwaiting = 0;
+- p->waitingforseqno = 0;
+ p->pagemap = 0;
+ p->pagemapsize = 0;
+
+diff --git a/libpager/priv.h b/libpager/priv.h
+index 4576e12..a45ae3f 100644
+--- a/libpager/priv.h
++++ b/libpager/priv.h
+@@ -55,12 +55,9 @@ struct pager
+ memory_object_control_t memobjcntl;
+ memory_object_name_t memobjname;
+
+- mach_port_seqno_t seqno;
+-
+ int noterm; /* number of threads blocking termination */
+
+ int termwaiting:1;
+- int waitingforseqno:1;
+
+ #ifdef KERNEL_INIT_RACE
+ /* Out of sequence object_init calls waiting for
+diff --git a/libpager/stubs.c b/libpager/stubs.c
+index c7f1a5a..06ad118 100644
+--- a/libpager/stubs.c
++++ b/libpager/stubs.c
+@@ -21,8 +21,7 @@
+ #include <stdio.h>
+
+ kern_return_t
+-_pager_seqnos_memory_object_copy (struct pager *p,
+- mach_port_seqno_t seq,
++_pager_memory_object_copy (struct pager *p,
+ memory_object_control_t obj_ctl,
+ vm_offset_t off,
+ vm_size_t len,
+@@ -33,8 +32,7 @@ _pager_seqnos_memory_object_copy (struct pager *p,
+ }
+
+ kern_return_t
+-_pager_seqnos_memory_object_data_write (struct pager *p,
+- mach_port_seqno_t seq,
++_pager_memory_object_data_write (struct pager *p,
+ mach_port_t ctl,
+ vm_offset_t off,
+ pointer_t data,
+@@ -45,8 +43,7 @@ _pager_seqnos_memory_object_data_write (struct pager *p,
+ }
+
+ kern_return_t
+-_pager_seqnos_memory_object_supply_completed (struct pager *p,
+- mach_port_seqno_t seq,
++_pager_memory_object_supply_completed (struct pager *p,
+ mach_port_t ctl,
+ vm_offset_t off,
+ vm_size_t len,
+--
+2.1.3
+
diff --git a/debian/patches/0002-libpager-use-libports-notification-functions.patch b/debian/patches/0002-libpager-use-libports-notification-functions.patch
new file mode 100644
index 00000000..d4079f25
--- /dev/null
+++ b/debian/patches/0002-libpager-use-libports-notification-functions.patch
@@ -0,0 +1,197 @@
+From aebac37fb5393836a401f9da76d917e65b08ac6c Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Sun, 7 Dec 2014 17:57:14 +0100
+Subject: [PATCH hurd 2/2] libpager: use libports notification functions
+
+Now that we do not use sequence numbers anymore, we can simply use
+libports notification server functions.
+
+* libpager/Makefile (SRCS): Drop `no-senders.c', and `notify-stubs.c'.
+(OBJS): Drop `notifyServer.o'.
+* libpager/demuxer.c (pager_demuxer): Use libports server functions.
+* libpager/mig-mutate.h: Drop all notification mutators.
+* libpager/no-senders.c: Remove file.
+* libpager/notify-stubs.c: Likewise.
+---
+ libpager/Makefile | 6 ++---
+ libpager/demuxer.c | 4 ++--
+ libpager/mig-mutate.h | 9 --------
+ libpager/no-senders.c | 34 ---------------------------
+ libpager/notify-stubs.c | 61 -------------------------------------------------
+ 5 files changed, 5 insertions(+), 109 deletions(-)
+ delete mode 100644 libpager/no-senders.c
+ delete mode 100644 libpager/notify-stubs.c
+
+diff --git a/libpager/Makefile b/libpager/Makefile
+index 2bfd845..72b4bfd 100644
+--- a/libpager/Makefile
++++ b/libpager/Makefile
+@@ -20,16 +20,16 @@ makemode := library
+ libname = libpager
+ SRCS = data-request.c data-return.c data-unlock.c pager-port.c \
+ inhibit-term.c lock-completed.c lock-object.c mark-error.c \
+- no-senders.c object-init.c object-terminate.c pagemap.c \
++ object-init.c object-terminate.c pagemap.c \
+ pager-create.c pager-flush.c pager-shutdown.c pager-sync.c \
+ stubs.c demuxer.c chg-compl.c pager-attr.c clean.c \
+- dropweak.c notify-stubs.c get-upi.c pager-memcpy.c pager-return.c \
++ dropweak.c get-upi.c pager-memcpy.c pager-return.c \
+ offer-page.c
+ installhdrs = pager.h
+
+ HURDLIBS= ports
+ LDLIBS += -lpthread
+-OBJS = $(SRCS:.c=.o) memory_objectServer.o notifyServer.o
++OBJS = $(SRCS:.c=.o) memory_objectServer.o
+
+ MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
+ MIGCOMSFLAGS = -prefix _pager_
+diff --git a/libpager/demuxer.c b/libpager/demuxer.c
+index 57a6ccb..4dd3cd8 100644
+--- a/libpager/demuxer.c
++++ b/libpager/demuxer.c
+@@ -22,7 +22,7 @@
+
+ #include "priv.h"
+ #include "memory_object_S.h"
+-#include "notify_S.h"
++#include "libports/notify_S.h"
+ #include "queue.h"
+
+ /*
+@@ -89,7 +89,7 @@ pager_demuxer (struct requests *requests,
+
+ mig_routine_t routine;
+ if (! ((routine = _pager_memory_object_server_routine (inp)) ||
+- (routine = _pager_notify_server_routine (inp))))
++ (routine = ports_notify_server_routine (inp))))
+ return FALSE;
+
+ #define MASK (8u - 1u)
+diff --git a/libpager/mig-mutate.h b/libpager/mig-mutate.h
+index c4f30ce..66d37cd 100644
+--- a/libpager/mig-mutate.h
++++ b/libpager/mig-mutate.h
+@@ -21,12 +21,3 @@
+ #define MEMORY_OBJECT_INTRAN_PAYLOAD pager_t begin_using_pager_payload
+ #define MEMORY_OBJECT_DESTRUCTOR end_using_pager (pager_t)
+ #define MEMORY_OBJECT_IMPORTS import "mig-decls.h";
+-
+-#define NOTIFY_INTRAN \
+- port_info_t begin_using_port_info_port (mach_port_t)
+-#define NOTIFY_INTRAN_PAYLOAD \
+- port_info_t begin_using_port_info_payload
+-#define NOTIFY_DESTRUCTOR \
+- end_using_port_info (port_info_t)
+-#define NOTIFY_IMPORTS \
+- import "libports/mig-decls.h";
+diff --git a/libpager/no-senders.c b/libpager/no-senders.c
+deleted file mode 100644
+index b750101..0000000
+--- a/libpager/no-senders.c
++++ /dev/null
+@@ -1,34 +0,0 @@
+-/* Called when a nosenders notification happens
+- Copyright (C) 1994, 1995 Free Software Foundation
+-
+- This program 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.
+-
+- This program 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 this program; if not, write to the Free Software
+- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+-
+-
+-#include "priv.h"
+-#include <mach/notify.h>
+-#include "notify_S.h"
+-
+-error_t
+-_pager_do_mach_notify_no_senders (struct port_info *pi,
+- mach_port_mscount_t mscount)
+-{
+- if (!pi ||
+- pi->class != _pager_class)
+- return EOPNOTSUPP;
+-
+- ports_no_senders (pi, mscount);
+-
+- return 0;
+-}
+diff --git a/libpager/notify-stubs.c b/libpager/notify-stubs.c
+deleted file mode 100644
+index 6440815..0000000
+--- a/libpager/notify-stubs.c
++++ /dev/null
+@@ -1,61 +0,0 @@
+-/*
+- Copyright (C) 1995, 2011 Free Software Foundation, Inc.
+- Written by Michael I. Bushnell.
+-
+- 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 this program; if not, write to the Free Software
+- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */
+-
+-#include "priv.h"
+-#include "notify_S.h"
+-#include <errno.h>
+-
+-error_t
+-_pager_do_mach_notify_port_deleted (struct port_info *pi,
+- mach_port_t name
+- __attribute__ ((unused)))
+-{
+- return 0;
+-}
+-
+-error_t
+-_pager_do_mach_notify_msg_accepted (struct port_info *pi,
+- mach_port_t name
+- __attribute__ ((unused)))
+-{
+- return 0;
+-}
+-
+-error_t
+-_pager_do_mach_notify_port_destroyed (struct port_info *pi,
+- mach_port_t name
+- __attribute__ ((unused)))
+-{
+- return 0;
+-}
+-
+-error_t
+-_pager_do_mach_notify_send_once (struct port_info *pi)
+-{
+- return 0;
+-}
+-
+-error_t
+-_pager_do_mach_notify_dead_name (struct port_info *pi,
+- mach_port_t name
+- __attribute__ ((unused)))
+-{
+- return 0;
+-}
+--
+2.1.3
+
diff --git a/debian/patches/series b/debian/patches/series
index 0ff988ad..ecb287f8 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -43,3 +43,5 @@ xkb-compat.patch
startup-avoid-broken-puts.patch
pfinet_dhcp.patch
+0001-libpager-remove-the-seqno-parameters.patch
+0002-libpager-use-libports-notification-functions.patch