From 1e981ffc8654910d868bac129c48b1381b935945 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Wed, 5 Mar 2014 18:44:10 +0100 Subject: mach-defpager: fix receiver lookups Previously, the receiver lookup was done manually in all the server functions. Use mig translator functions instead. * mach-defpager/mig-decls.h: New file. * mach-defpager/mig-mutate.h: Likewise. * mach-defpager/Makefile (MIGSFLAGS): Include mig-mutate.h. * mach-defpager/mach-defpager.c: Fix receiver lookups, move type definitions... * mach-defpager/priv.h: ... here, so that they can be used in mig-decls.h. --- mach-defpager/mig-decls.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 mach-defpager/mig-decls.h (limited to 'mach-defpager/mig-decls.h') diff --git a/mach-defpager/mig-decls.h b/mach-defpager/mig-decls.h new file mode 100644 index 00000000..f63fef20 --- /dev/null +++ b/mach-defpager/mig-decls.h @@ -0,0 +1,37 @@ +/* + 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 __MACH_DEFPAGER_MIG_DECLS_H__ +#define __MACH_DEFPAGER_MIG_DECLS_H__ + +#include "priv.h" + +/* Called by server stub functions. */ + +static inline struct dstruct * __attribute__ ((unused)) +begin_using_default_pager (mach_port_t port) +{ + if (! MACH_PORT_VALID(port) + || ((default_pager_t) dnameof(port))->pager != (port)) + return DEFAULT_PAGER_NULL; + + return (default_pager_t) dnameof(port); +} + +#endif /* __MACH_DEFPAGER_MIG_DECLS_H__ */ -- cgit v1.2.3