bug-hurd
[Top][All Lists]
Advanced

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

Re: [PATCH] auth: improve the mig mutator functions


From: Samuel Thibault
Subject: Re: [PATCH] auth: improve the mig mutator functions
Date: Sun, 2 Mar 2014 08:39:32 +0100
User-agent: Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30)

Justus Winter, le Sun 02 Mar 2014 00:15:07 +0100, a écrit :
> Previously, the mig mutator function auth_port_to_handle was defined
> in auth.c (fakeauth.c), preventing it from being inlined into the
> mig-generated server functions.  Put it in mig-decls.h instead.
> Rename authmutations.h to mig-mutate.h, auth_mig.h to mig-decls.h.
> This is the naming convention used for pflocal.

Ack.

> * auth/auth.h: New file.
> * auth/auth_mig.h: Rename to mig-decls.h, add copyright notice, define
> mutator functions.
> * auth/authmutations.h: Rename to mig-mutate.h, restore copyright
> notice, adjust accordingly.
> * auth/auth.c: Include auth.h, remove auth_port_to_handle.
> * utils/fakeauth.c: Likewise.
> * auth/Makefile: Adjust accordingly.
> * utils/Makefile: Likewise.
> ---
>  auth/Makefile        |  2 +-
>  auth/auth.c          | 10 ++--------
>  auth/auth.h          | 28 ++++++++++++++++++++++++++++
>  auth/auth_mig.h      |  5 -----
>  auth/authmutations.h |  6 ------
>  auth/mig-decls.h     | 42 ++++++++++++++++++++++++++++++++++++++++++
>  auth/mig-mutate.h    | 24 ++++++++++++++++++++++++
>  utils/Makefile       |  2 +-
>  utils/fakeauth.c     | 10 ++--------
>  9 files changed, 100 insertions(+), 29 deletions(-)
>  create mode 100644 auth/auth.h
>  delete mode 100644 auth/auth_mig.h
>  delete mode 100644 auth/authmutations.h
>  create mode 100644 auth/mig-decls.h
>  create mode 100644 auth/mig-mutate.h
> 
> diff --git a/auth/Makefile b/auth/Makefile
> index 75910c7..b9eedda 100644
> --- a/auth/Makefile
> +++ b/auth/Makefile
> @@ -25,6 +25,6 @@ target = auth
>  HURDLIBS = ports ihash shouldbeinlibc
>  OTHERLIBS = -lpthread
>  
> -MIGSFLAGS = -imacros $(srcdir)/authmutations.h
> +MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h
>  
>  include ../Makeconf
> diff --git a/auth/auth.c b/auth/auth.c
> index e69c4f8..7d35bd3 100644
> --- a/auth/auth.c
> +++ b/auth/auth.c
> @@ -35,6 +35,8 @@
>  #include "auth_S.h"
>  #include "auth_reply_U.h"
>  
> +#include "auth.h"
> +
>  const char *argp_program_version = STANDARD_HURD_VERSION(auth);
>  
>  
> @@ -72,14 +74,6 @@ destroy_authhandle (void *p)
>    idvec_free_contents (&h->auids);
>    idvec_free_contents (&h->agids);
>  }
> -
> -/* Called by server stub functions.  */
> -
> -authhandle_t
> -auth_port_to_handle (auth_t auth)
> -{
> -  return ports_lookup_port (auth_bucket, auth, authhandle_portclass);
> -}
>  
>  /* id management.  */
>  
> diff --git a/auth/auth.h b/auth/auth.h
> new file mode 100644
> index 0000000..0bc341d
> --- /dev/null
> +++ b/auth/auth.h
> @@ -0,0 +1,28 @@
> +/*
> +   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/>.  */
> +
> +#ifndef __AUTH_H__
> +#define __AUTH_H__
> +
> +#include <hurd/ports.h>
> +
> +extern struct port_bucket *auth_bucket;
> +extern struct port_class *authhandle_portclass;
> +
> +#endif /* __AUTH_H__ */
> diff --git a/auth/auth_mig.h b/auth/auth_mig.h
> deleted file mode 100644
> index d919c1b..0000000
> --- a/auth/auth_mig.h
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -typedef struct authhandle *authhandle_t;
> -
> -authhandle_t auth_port_to_handle (auth_t);
> -
> -#include <hurd/ports.h>
> diff --git a/auth/authmutations.h b/auth/authmutations.h
> deleted file mode 100644
> index 63b2f54..0000000
> --- a/auth/authmutations.h
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -/* CPP definitions for MiG processing of auth.defs for auth server.  */
> -
> -#define AUTH_INTRAN authhandle_t auth_port_to_handle (auth_t)
> -#define AUTH_DESTRUCTOR ports_port_deref (authhandle_t)
> -
> -#define AUTH_IMPORTS import "auth_mig.h";
> diff --git a/auth/mig-decls.h b/auth/mig-decls.h
> new file mode 100644
> index 0000000..09c7c70
> --- /dev/null
> +++ b/auth/mig-decls.h
> @@ -0,0 +1,42 @@
> +/*
> +   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/>.  */
> +
> +#ifndef __AUTH_MIG_DECLS_H__
> +#define __AUTH_MIG_DECLS_H__
> +
> +#include "auth.h"
> +
> +typedef struct authhandle *authhandle_t;
> +
> +/* Called by server stub functions.  */
> +
> +static inline struct authhandle * __attribute__ ((unused))
> +auth_port_to_handle (mach_port_t auth)
> +{
> +  return ports_lookup_port (auth_bucket, auth, authhandle_portclass);
> +}
> +
> +static inline void __attribute__ ((unused))
> +end_using_authhandle (struct authhandle *auth)
> +{
> +  if (auth)
> +    ports_port_deref (auth);
> +}
> +
> +#endif /* __AUTH_MIG_DECLS_H__ */
> diff --git a/auth/mig-mutate.h b/auth/mig-mutate.h
> new file mode 100644
> index 0000000..ea40c70
> --- /dev/null
> +++ b/auth/mig-mutate.h
> @@ -0,0 +1,24 @@
> +/*
> +   Copyright (C) 1991,93,94,2014 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 the GNU Hurd.  If not, see <http://www.gnu.org/licenses/>.  */
> +
> +/* CPP definitions for MiG processing of auth.defs for auth server.  */
> +
> +#define AUTH_INTRAN authhandle_t auth_port_to_handle (auth_t)
> +#define AUTH_DESTRUCTOR end_using_authhandle (authhandle_t)
> +#define AUTH_IMPORTS import "mig-decls.h";
> diff --git a/utils/Makefile b/utils/Makefile
> index 5ebb231..81fa293 100644
> --- a/utils/Makefile
> +++ b/utils/Makefile
> @@ -73,7 +73,7 @@ rpctrace-CPPFLAGS = -DDATADIR=\"${datadir}\"
>  fakeauth: authServer.o auth_requestUser.o interruptServer.o \
>         ../libports/libports.a ../libihash/libihash.a \
>         ../libshouldbeinlibc/libshouldbeinlibc.a
> -auth-MIGSFLAGS = -imacros $(srcdir)/../auth/authmutations.h
> +auth-MIGSFLAGS = -imacros $(srcdir)/../auth/mig-mutate.h
>  fakeauth-CPPFLAGS = -I$(srcdir)/../auth
>  authServer-CPPFLAGS = -I$(srcdir)/../auth
>  auth_requestUser-CPPFLAGS = -I$(srcdir)/../auth
> diff --git a/utils/fakeauth.c b/utils/fakeauth.c
> index 660295f..590a421 100644
> --- a/utils/fakeauth.c
> +++ b/utils/fakeauth.c
> @@ -30,6 +30,8 @@
>  #include "auth_request_U.h"
>  #include "interrupt_S.h"
>  
> +#include "../auth/auth.h"
> +
>  /* Auth handles are server ports with sets of ids.  */
>  struct authhandle
>    {
> @@ -63,14 +65,6 @@ destroy_authhandle (void *p)
>    idvec_free_contents (&h->auids);
>    idvec_free_contents (&h->agids);
>  }
> -
> -/* Called by server stub functions.  */
> -
> -authhandle_t
> -auth_port_to_handle (auth_t auth)
> -{
> -  return ports_lookup_port (auth_bucket, auth, authhandle_portclass);
> -}
>  
>  /* id management.  */
>  
> -- 
> 1.9.0
> 

-- 
Samuel
/*
 * [...] Note that 120 sec is defined in the protocol as the maximum
 * possible RTT.  I guess we'll have to use something other than TCP
 * to talk to the University of Mars.
 * PAWS allows us longer timeouts and large windows, so once implemented
 * ftp to mars will work nicely.
 */
(from /usr/src/linux/net/inet/tcp.c, concerning RTT [retransmission timeout])



reply via email to

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