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/object-init.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'libpager/object-init.c') diff --git a/libpager/object-init.c b/libpager/object-init.c index 90ffc016..6683e24d 100644 --- a/libpager/object-init.c +++ b/libpager/object-init.c @@ -22,16 +22,14 @@ /* Implement the object initialiation call as described in <mach/memory_object.defs>. */ kern_return_t -_pager_seqnos_memory_object_init (mach_port_t object, +_pager_seqnos_memory_object_init (struct pager *p, mach_port_seqno_t seqno, mach_port_t control, mach_port_t name, vm_size_t pagesize) { - struct pager *p; - - p = ports_lookup_port (0, object, _pager_class); - if (!p) + if (!p + || p->port.class != _pager_class) return EOPNOTSUPP; pthread_mutex_lock (&p->interlock); @@ -73,7 +71,6 @@ _pager_seqnos_memory_object_init (mach_port_t object, out: _pager_release_seqno (p, seqno); pthread_mutex_unlock (&p->interlock); - ports_port_deref (p); return 0; } -- cgit v1.2.3