bug-hurd
[Top][All Lists]
Advanced

[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 -+-



reply via email to

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