bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] libports: fix notify_port_t receiver lookups


From: Justus Winter
Subject: [PATCH] libports: fix notify_port_t receiver lookups
Date: Mon, 7 Apr 2014 12:57:03 +0200

This is a patch that in conjunction with
e9687ec4ff525ae4a88314ba4ae97da770bd012f fixes the receiver lookups
for the notify_port_t type.

* devnode/Makefile (MIGSFLAGS): Use mig-mutate.h.
* eth-filter/Makefile: Likewise.
* eth-multiplexer/Makefile: Likewise.
* libmachdev/Makefile: Likewise.
* devnode/mig-mutate.h: New file.
* eth-filter/mig-mutate.h: Likewise.
* eth-multiplexer/mig-mutate.h: Likewise.
* libmachdev/mig-mutate.h: Likewise.
* devnode/devnode.c: Adjust accordingly.
* eth-filter/filter.c: Likewise.
* eth-multiplexer/notify_impl.c: Likewise.
* libmachdev/trivfs_server.c: Likewise.
---
 devnode/Makefile              |  1 +
 devnode/devnode.c             | 14 +++++++-------
 devnode/mig-mutate.h          | 25 +++++++++++++++++++++++++
 eth-filter/Makefile           |  1 +
 eth-filter/filter.c           | 14 +++++++-------
 eth-filter/mig-mutate.h       | 25 +++++++++++++++++++++++++
 eth-multiplexer/Makefile      |  1 +
 eth-multiplexer/mig-mutate.h  | 25 +++++++++++++++++++++++++
 eth-multiplexer/notify_impl.c | 14 +++++++-------
 libmachdev/Makefile           |  1 +
 libmachdev/mig-mutate.h       | 25 +++++++++++++++++++++++++
 libmachdev/trivfs_server.c    | 14 +++++++-------
 12 files changed, 132 insertions(+), 28 deletions(-)
 create mode 100644 devnode/mig-mutate.h
 create mode 100644 eth-filter/mig-mutate.h
 create mode 100644 eth-multiplexer/mig-mutate.h
 create mode 100644 libmachdev/mig-mutate.h

diff --git a/devnode/Makefile b/devnode/Makefile
index f452256..2c8af58 100644
--- a/devnode/Makefile
+++ b/devnode/Makefile
@@ -24,6 +24,7 @@ DIST_FILES = ourdevice.defs notify.defs
 HURDLIBS = ports trivfs fshelp shouldbeinlibc
 target = devnode
 MIGSTUBS = ourdeviceServer.o notifyServer.o
+MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
 OBJS = $(SRCS:.c=.o) $(MIGSTUBS)
 
 include ../Makeconf
diff --git a/devnode/devnode.c b/devnode/devnode.c
index 947d31b..61fc509 100644
--- a/devnode/devnode.c
+++ b/devnode/devnode.c
@@ -89,41 +89,41 @@ devnode_demuxer (mach_msg_header_t *inp,
 
 /* Implementation of notify interface */
 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 EOPNOTSUPP;
 }
 
 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 EOPNOTSUPP;
 }
 
 kern_return_t
-do_mach_notify_port_destroyed (mach_port_t notify,
+do_mach_notify_port_destroyed (struct port_info *pi,
                               mach_port_t port)
 {
   return EOPNOTSUPP;
 }
 
 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_send_once (mach_port_t notify)
+do_mach_notify_send_once (struct port_info *pi)
 {
   return EOPNOTSUPP;
 }
 
 kern_return_t
-do_mach_notify_dead_name (mach_port_t notify,
+do_mach_notify_dead_name (struct port_info *pi,
                          mach_port_t name)
 {
   return EOPNOTSUPP;
diff --git a/devnode/mig-mutate.h b/devnode/mig-mutate.h
new file mode 100644
index 0000000..f692236
--- /dev/null
+++ b/devnode/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/eth-filter/Makefile b/eth-filter/Makefile
index 16f5d73..0b22222 100644
--- a/eth-filter/Makefile
+++ b/eth-filter/Makefile
@@ -24,6 +24,7 @@ DIST_FILES = ourdevice.defs notify.defs
 HURDLIBS = ports trivfs fshelp ihash shouldbeinlibc
 target = eth-filter
 MIGSTUBS = ourdeviceServer.o notifyServer.o
+MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
 OBJS = $(SRCS:.c=.o) $(MIGSTUBS)
 
 include ../Makeconf
diff --git a/eth-filter/filter.c b/eth-filter/filter.c
index d2b1e39..f3d58dd 100644
--- a/eth-filter/filter.c
+++ b/eth-filter/filter.c
@@ -234,42 +234,42 @@ ethernet_demuxer (mach_msg_header_t *inp,
 
 /* Implementation of notify interface */
 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 EOPNOTSUPP;
 }
 
 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 EOPNOTSUPP;
 }
 
 kern_return_t
-do_mach_notify_port_destroyed (mach_port_t notify,
+do_mach_notify_port_destroyed (struct port_info *pi,
                               mach_port_t port)
 {
   return EOPNOTSUPP;
 }
 
 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)
 {
   debug ("do_mach_notify_no_senders is called\n");
-  return ports_do_mach_notify_no_senders (notify, mscount);
+  return ports_do_mach_notify_no_senders (pi, mscount);
 }
 
 kern_return_t
-do_mach_notify_send_once (mach_port_t notify)
+do_mach_notify_send_once (struct port_info *pi)
 {
   return EOPNOTSUPP;
 }
 
 kern_return_t
-do_mach_notify_dead_name (mach_port_t notify,
+do_mach_notify_dead_name (struct port_info *pi,
                          mach_port_t name)
 {
   struct proxy *proxy;
diff --git a/eth-filter/mig-mutate.h b/eth-filter/mig-mutate.h
new file mode 100644
index 0000000..f692236
--- /dev/null
+++ b/eth-filter/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/eth-multiplexer/Makefile b/eth-multiplexer/Makefile
index a96619c..15d05a6 100644
--- a/eth-multiplexer/Makefile
+++ b/eth-multiplexer/Makefile
@@ -22,6 +22,7 @@ target = eth-multiplexer
 #CFLAGS += -DDEBUG
 SRCS = ethernet.c vdev.c multiplexer.c dev_stat.c netfs_impl.c notify_impl.c 
device_impl.c demuxer.c
 MIGSTUBS = ourdeviceServer.o notifyServer.o
+MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
 OBJS = $(SRCS:.c=.o) $(MIGSTUBS)
 LCLHDRS = ethernet.h util.h vdev.h netfs_impl.h
 DIST_FILES = ourdevice.defs notify.defs
diff --git a/eth-multiplexer/mig-mutate.h b/eth-multiplexer/mig-mutate.h
new file mode 100644
index 0000000..f692236
--- /dev/null
+++ b/eth-multiplexer/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/eth-multiplexer/notify_impl.c b/eth-multiplexer/notify_impl.c
index 33725bb..947069f 100644
--- a/eth-multiplexer/notify_impl.c
+++ b/eth-multiplexer/notify_impl.c
@@ -25,41 +25,41 @@
 
 /* Implementation of notify interface */
 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 EOPNOTSUPP;
 }
 
 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 EOPNOTSUPP;
 }
 
 kern_return_t
-do_mach_notify_port_destroyed (mach_port_t notify,
+do_mach_notify_port_destroyed (struct port_info *pi,
                               mach_port_t port)
 {
   return EOPNOTSUPP;
 }
 
 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_send_once (mach_port_t notify)
+do_mach_notify_send_once (struct port_info *pi)
 {
   return EOPNOTSUPP;
 }
 
 kern_return_t
-do_mach_notify_dead_name (mach_port_t notify,
+do_mach_notify_dead_name (struct port_info *pi,
                          mach_port_t name)
 {
   debug ("do_mach_notify_dead_name is called\n");
diff --git a/libmachdev/Makefile b/libmachdev/Makefile
index 728fe82..e006461 100644
--- a/libmachdev/Makefile
+++ b/libmachdev/Makefile
@@ -28,6 +28,7 @@ installhdrs = machdev.h
 HURDLIBS = ports trivfs ddekit bpf
 OTHERLIBS = -lpthread
 OBJS = $(SRCS:.c=.o) $(MIGSTUBS)
+MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
 
 include ../Makeconf
 
diff --git a/libmachdev/mig-mutate.h b/libmachdev/mig-mutate.h
new file mode 100644
index 0000000..f692236
--- /dev/null
+++ b/libmachdev/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/libmachdev/trivfs_server.c b/libmachdev/trivfs_server.c
index 4565c3d..6d5b3ad 100644
--- a/libmachdev/trivfs_server.c
+++ b/libmachdev/trivfs_server.c
@@ -23,41 +23,41 @@ int trivfs_cntl_nportclasses = 1;
 
 /* Implementation of notify interface */
 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 EOPNOTSUPP;
 }
 
 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 EOPNOTSUPP;
 }
 
 kern_return_t
-do_mach_notify_port_destroyed (mach_port_t notify,
+do_mach_notify_port_destroyed (struct port_info *pi,
                               mach_port_t port)
 {
   return EOPNOTSUPP;
 }
 
 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_send_once (mach_port_t notify)
+do_mach_notify_send_once (struct port_info *pi)
 {
   return EOPNOTSUPP;
 }
 
 kern_return_t
-do_mach_notify_dead_name (mach_port_t notify,
+do_mach_notify_dead_name (struct port_info *pi,
                          mach_port_t name)
 {
   return EOPNOTSUPP;
-- 
1.9.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]