[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/2] pfinet: improve the mig mutator functions
From: |
Samuel Thibault |
Subject: |
Re: [PATCH 1/2] pfinet: improve the mig mutator functions |
Date: |
Tue, 25 Feb 2014 08:41:55 -0500 |
User-agent: |
Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30) |
Justus Winter, le Tue 25 Feb 2014 12:30:02 +0100, a écrit :
> Previously, the mig mutator functions were in misc.c, preventing them
> from being inlined into the mig-generated server functions. Put them
> in mig-decls.h instead. Rename mutations.h to mig-mutate.h. This is
> the naming convention used for pflocal.
Ack.
> * pfinet/mutations.h: Rename to mig-mutate.h, adopt imports.
> * pfinet/Makefile: Adopt accordingly.
> * pfinet/mig-decls.h: New file.
> * pfinet/misc.c: Move mutator functions to mig-decls.h.
> * pfinet/pfinet.h: Move type declarations to mig-decls.h, remove
> mutator declarations.
> * pfinet/iioctl-ops.c: Include mig-decls.h.
> ---
> pfinet/Makefile | 6 +++---
> pfinet/iioctl-ops.c | 2 ++
> pfinet/mig-decls.h | 55
> +++++++++++++++++++++++++++++++++++++++++++++++++++++
> pfinet/mig-mutate.h | 37 +++++++++++++++++++++++++++++++++++
> pfinet/misc.c | 26 -------------------------
> pfinet/mutations.h | 38 ------------------------------------
> pfinet/pfinet.h | 9 ---------
> 7 files changed, 97 insertions(+), 76 deletions(-)
> create mode 100644 pfinet/mig-decls.h
> create mode 100644 pfinet/mig-mutate.h
> delete mode 100644 pfinet/mutations.h
>
> diff --git a/pfinet/Makefile b/pfinet/Makefile
> index d442629..9bda137 100644
> --- a/pfinet/Makefile
> +++ b/pfinet/Makefile
> @@ -139,9 +139,9 @@ asm/checksum.h: ../config.status
> '#include "../linux-src/include/asm-$(asm_syntax)/checksum.h"'
> mv -f $@.new $@
>
> -io-MIGSFLAGS = -imacros $(srcdir)/mutations.h
> -socket-MIGSFLAGS = -imacros $(srcdir)/mutations.h
> +io-MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
> +socket-MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
>
> # cpp doesn't automatically make dependencies for -imacros dependencies.
> argh.
> -io_S.h ioServer.c socket_S.h socketServer.c: mutations.h
> +io_S.h ioServer.c socket_S.h socketServer.c: mig-mutate.h
> $(OBJS): config.h
> diff --git a/pfinet/iioctl-ops.c b/pfinet/iioctl-ops.c
> index 6777680..bd876ee 100644
> --- a/pfinet/iioctl-ops.c
> +++ b/pfinet/iioctl-ops.c
> @@ -36,6 +36,8 @@
> #include <net/if.h>
> #include <net/sock.h>
>
> +#include "mig-decls.h"
> +
> extern struct notifier_block *netdev_chain;
>
> /* devinet.c */
> diff --git a/pfinet/mig-decls.h b/pfinet/mig-decls.h
> new file mode 100644
> index 0000000..ec8fb23
> --- /dev/null
> +++ b/pfinet/mig-decls.h
> @@ -0,0 +1,55 @@
> +/*
> + Copyright (C) 1995,96,2000 Free Software Foundation, Inc.
> + Written by Michael I. Bushnell, p/BSG.
> +
> + 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 __PFINET_MIG_DECLS_H__
> +#define __PFINET_MIG_DECLS_H__
> +
> +#include "pfinet.h"
> +
> +/* MiG bogosity */
> +typedef struct sock_user *sock_user_t;
> +typedef struct sock_addr *sock_addr_t;
> +
> +static inline struct sock_user * __attribute__ ((unused))
> +begin_using_socket_port (mach_port_t port)
> +{
> + return ports_lookup_port (pfinet_bucket, port, socketport_class);
> +}
> +
> +static inline void __attribute__ ((unused))
> +end_using_socket_port (struct sock_user *user)
> +{
> + if (user)
> + ports_port_deref (user);
> +}
> +
> +static inline struct sock_addr * __attribute__ ((unused))
> +begin_using_sockaddr_port (mach_port_t port)
> +{
> + return ports_lookup_port (pfinet_bucket, port, addrport_class);
> +}
> +
> +static inline void __attribute__ ((unused))
> +end_using_sockaddr_port (struct sock_addr *addr)
> +{
> + if (addr)
> + ports_port_deref (addr);
> +}
> +
> +#endif /* __PFINET_MIG_DECLS_H__ */
> diff --git a/pfinet/mig-mutate.h b/pfinet/mig-mutate.h
> new file mode 100644
> index 0000000..4d97408
> --- /dev/null
> +++ b/pfinet/mig-mutate.h
> @@ -0,0 +1,37 @@
> +/*
> + Copyright (C) 1995 Free Software Foundation, Inc.
> + Written by Michael I. Bushnell, p/BSG.
> +
> + 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. */
> +
> +/* Only CPP macro definitions should go in this file. */
> +
> +#define IO_SELECT_REPLY_PORT
> +
> +#define IO_INTRAN sock_user_t begin_using_socket_port (io_t)
> +#define IO_DESTRUCTOR end_using_socket_port (sock_user_t)
> +#define IO_IMPORTS import "mig-decls.h";
> +
> +#define SOCKET_INTRAN sock_user_t begin_using_socket_port (socket_t)
> +#define SOCKET_DESTRUCTOR end_using_socket_port (sock_user_t)
> +#define SOCKET_IMPORTS import "mig-decls.h";
> +
> +#define ADDRPORT_INTRAN sock_addr_t begin_using_sockaddr_port (addr_port_t)
> +#define ADDRPORT_DESTRUCTOR end_using_sockaddr_port (sock_addr_t)
> +
> +#define PF_INTRAN trivfs_protid_t trivfs_begin_using_protid (pf_t)
> +#define PF_DESTRUCTOR trivfs_end_using_protid (trivfs_protid_t)
> diff --git a/pfinet/misc.c b/pfinet/misc.c
> index 08b19e9..d0987eb 100644
> --- a/pfinet/misc.c
> +++ b/pfinet/misc.c
> @@ -62,32 +62,6 @@ make_sockaddr_port (struct socket *sock,
> return 0;
> }
>
> -struct sock_user *
> -begin_using_socket_port (mach_port_t port)
> -{
> - return ports_lookup_port (pfinet_bucket, port, socketport_class);
> -}
> -
> -void
> -end_using_socket_port (struct sock_user *user)
> -{
> - if (user)
> - ports_port_deref (user);
> -}
> -
> -struct sock_addr *
> -begin_using_sockaddr_port (mach_port_t port)
> -{
> - return ports_lookup_port (pfinet_bucket, port, addrport_class);
> -}
> -
> -void
> -end_using_sockaddr_port (struct sock_addr *addr)
> -{
> - if (addr)
> - ports_port_deref (addr);
> -}
> -
> /* Nothing need be done here. */
> void
> clean_addrport (void *arg)
> diff --git a/pfinet/mutations.h b/pfinet/mutations.h
> deleted file mode 100644
> index f63ad9b..0000000
> --- a/pfinet/mutations.h
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -/*
> - Copyright (C) 1995 Free Software Foundation, Inc.
> - Written by Michael I. Bushnell, p/BSG.
> -
> - 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. */
> -
> -/* Only CPP macro definitions should go in this file. */
> -
> -#define IO_SELECT_REPLY_PORT
> -
> -#define IO_INTRAN sock_user_t begin_using_socket_port (io_t)
> -#define IO_DESTRUCTOR end_using_socket_port (sock_user_t)
> -
> -#define SOCKET_INTRAN sock_user_t begin_using_socket_port (socket_t)
> -#define SOCKET_DESTRUCTOR end_using_socket_port (sock_user_t)
> -
> -#define ADDRPORT_INTRAN sock_addr_t begin_using_sockaddr_port (addr_port_t)
> -#define ADDRPORT_DESTRUCTOR end_using_sockaddr_port (sock_addr_t)
> -
> -#define PF_INTRAN trivfs_protid_t trivfs_begin_using_protid (pf_t)
> -#define PF_DESTRUCTOR trivfs_end_using_protid (trivfs_protid_t)
> -
> -#define IO_IMPORTS import "pfinet.h";
> -#define SOCKET_IMPORTS import "pfinet.h";
> diff --git a/pfinet/pfinet.h b/pfinet/pfinet.h
> index 9725dab..46aa97b 100644
> --- a/pfinet/pfinet.h
> +++ b/pfinet/pfinet.h
> @@ -83,18 +83,9 @@ void ip_rt_del (u_long, struct device *);
> struct sock;
> error_t tcp_tiocinq (struct sock *sk, mach_msg_type_number_t *amount);
>
> -
> -struct sock_user *begin_using_socket_port (socket_t);
> -struct sock_addr *begin_using_sockaddr_port (socket_t);
> -void end_using_socket_port (struct sock_user *);
> -void end_using_sockaddr_port (struct sock_addr *);
> void clean_addrport (void *);
> void clean_socketport (void *);
>
> -/* MiG bogosity */
> -typedef struct sock_user *sock_user_t;
> -typedef struct sock_addr *sock_addr_t;
> -
> /* pfinet6 port classes. */
> enum {
> PORTCLASS_INET,
> --
> 1.8.5.2
>
--
Samuel
Moralité : le modem et le cablerouteur font comme les filles, ils
papotent toute la journée.
-+- RB in NPC : Et en plus, ils ne parlent que de bits -+-