[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])