From afd266c9c00c99c87d14ef2bc4060413656f4448 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Mon, 7 Apr 2014 12:07:18 +0200 Subject: libports: fix notify_port_t receiver lookups 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. --- eth-filter/Makefile | 1 + eth-filter/filter.c | 14 +++++++------- eth-filter/mig-mutate.h | 25 +++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 eth-filter/mig-mutate.h (limited to 'eth-filter') diff --git a/eth-filter/Makefile b/eth-filter/Makefile index 16f5d73b..0b22222c 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 d2b1e39a..f3d58ddd 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 00000000..f692236e --- /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 . */ + +#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"; -- cgit v1.2.3