From b7cbdde8854ee4c51ec9cd49ce639bd02d646355 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Mon, 3 Mar 2014 20:48:20 +0100 Subject: libpager: fix receiver lookups Previously, the receiver lookup was done manually in all the server functions. Use mig translator functions instead. * libpager/mig-decls.h: New file. * libpager/mig-mutate.h: Likewise. * libpager/Makefile (MIGSFLAGS): Include mig-mutate.h. * libpager/chg-compl.c: Fix receiver lookups. * libpager/data-request.c: Likewise. * libpager/data-return.c: Likewise. * libpager/data-unlock.c: Likewise. * libpager/lock-completed.c: Likewise. * libpager/object-init.c: Likewise. * libpager/object-terminate.c: Likewise. * libpager/stubs.c: Likewise. * libpager/seqnos.c (_pager_update_seqno): Move the actual functionality... (_pager_update_seqno_p): ... into a new function that can be called with a pointer to struct pager. * libpager/priv.h (_pager_update_seqno_p): New declaration. --- libpager/mig-decls.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 libpager/mig-decls.h (limited to 'libpager/mig-decls.h') diff --git a/libpager/mig-decls.h b/libpager/mig-decls.h new file mode 100644 index 00000000..0c7b402f --- /dev/null +++ b/libpager/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 . */ + +#ifndef __LIBPAGER_MIG_DECLS_H__ +#define __LIBPAGER_MIG_DECLS_H__ + +#include "priv.h" + +typedef struct pager *pager_t; + +/* Called by server stub functions. */ + +static inline struct pager * __attribute__ ((unused)) +begin_using_pager (mach_port_t port) +{ + return ports_lookup_port (0, port, _pager_class); +} + +static inline void __attribute__ ((unused)) +end_using_pager (struct pager *p) +{ + if (p) + ports_port_deref (p); +} + +#endif /* __LIBPAGER_MIG_DECLS_H__ */ -- cgit v1.2.3