diff options
author | Thomas Schwinge <thomas@schwinge.name> | 2011-11-24 08:21:16 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@schwinge.name> | 2011-11-24 08:21:16 +0100 |
commit | ac67fbb6e2a503e27a579bdd92bfcd180f377ac4 (patch) | |
tree | 4f2db284b587ac7c61f76f8b9a88cf17af53dfed | |
parent | f1d119a500a9294c81330ecd52a3221578a22bc3 (diff) |
Further port sequence number cleanup.
* libpager/priv.h (struct pager): Make seqno member of type mach_port_seqno_t.
Change all users.
* libpager/seqnos.c (_pager_stubs_update_seqno): Rename to _pager_update_seqno.
Change all users.
* libpager/demuxer.c (pager_demuxer): Make use of _pager_update_seqno.
* libpager/notify-stubs.c: Remove unused attribute where no longer appropriate.
-rw-r--r-- | libpager/demuxer.c | 20 | ||||
-rw-r--r-- | libpager/notify-stubs.c | 40 | ||||
-rw-r--r-- | libpager/priv.h | 8 | ||||
-rw-r--r-- | libpager/seqnos.c | 8 | ||||
-rw-r--r-- | libpager/stubs.c | 12 |
5 files changed, 33 insertions, 55 deletions
diff --git a/libpager/demuxer.c b/libpager/demuxer.c index d6b99fc2..79c0ddc5 100644 --- a/libpager/demuxer.c +++ b/libpager/demuxer.c @@ -1,5 +1,5 @@ /* Demuxer for pager library - Copyright (C) 1994, 1995, 2002 Free Software Foundation + Copyright (C) 1994, 1995, 2002, 2011 Free Software Foundation This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as @@ -33,20 +33,8 @@ pager_demuxer (mach_msg_header_t *inp, int result = _pager_seqnos_memory_object_server (inp, outp) || _pager_seqnos_notify_server (inp, outp); if (!result) - { - struct pager *p; - - p = ports_lookup_port (0, inp->msgh_local_port, _pager_class); - if (p) - { - /* Synchronize our bookkeeping of the port's seqno with - the one consumed by this bogus message. */ - mutex_lock (&p->interlock); - _pager_wait_for_seqno (p, inp->msgh_seqno); - _pager_release_seqno (p, inp->msgh_seqno); - mutex_unlock (&p->interlock); - ports_port_deref (p); - } - } + /* Synchronize our bookkeeping of the port's seqno with the one consumed by + this bogus message. */ + _pager_update_seqno (inp->msgh_local_port, inp->msgh_seqno); return result; } diff --git a/libpager/notify-stubs.c b/libpager/notify-stubs.c index aec56e35..2d791aac 100644 --- a/libpager/notify-stubs.c +++ b/libpager/notify-stubs.c @@ -23,64 +23,54 @@ #include <errno.h> error_t -_pager_do_seqnos_mach_notify_port_deleted (mach_port_t notify - __attribute__ ((unused)), - mach_port_seqno_t seqno - __attribute__ ((unused)), +_pager_do_seqnos_mach_notify_port_deleted (mach_port_t notify, + mach_port_seqno_t seqno, mach_port_t name __attribute__ ((unused))) { - _pager_stubs_update_seqno (notify, seqno); + _pager_update_seqno (notify, seqno); return 0; } error_t -_pager_do_seqnos_mach_notify_msg_accepted (mach_port_t notify - __attribute__ ((unused)), - mach_port_seqno_t seqno - __attribute__ ((unused)), +_pager_do_seqnos_mach_notify_msg_accepted (mach_port_t notify, + mach_port_seqno_t seqno, mach_port_t name __attribute__ ((unused))) { - _pager_stubs_update_seqno (notify, seqno); + _pager_update_seqno (notify, seqno); return 0; } error_t -_pager_do_seqnos_mach_notify_port_destroyed (mach_port_t notify - __attribute__ ((unused)), - mach_port_seqno_t seqno - __attribute__ ((unused)), +_pager_do_seqnos_mach_notify_port_destroyed (mach_port_t notify, + mach_port_seqno_t seqno, mach_port_t name __attribute__ ((unused))) { - _pager_stubs_update_seqno (notify, seqno); + _pager_update_seqno (notify, seqno); return 0; } error_t -_pager_do_seqnos_mach_notify_send_once (mach_port_t notify - __attribute__ ((unused)), - mach_port_seqno_t seqno - __attribute__ ((unused))) +_pager_do_seqnos_mach_notify_send_once (mach_port_t notify, + mach_port_seqno_t seqno) { - _pager_stubs_update_seqno (notify, seqno); + _pager_update_seqno (notify, seqno); return 0; } error_t -_pager_do_seqnos_mach_notify_dead_name (mach_port_t notify - __attribute__ ((unused)), - mach_port_seqno_t seqno - __attribute__ ((unused)), +_pager_do_seqnos_mach_notify_dead_name (mach_port_t notify, + mach_port_seqno_t seqno, mach_port_t name __attribute__ ((unused))) { - _pager_stubs_update_seqno (notify, seqno); + _pager_update_seqno (notify, seqno); return 0; } diff --git a/libpager/priv.h b/libpager/priv.h index 7a4fe6fe..586bccbf 100644 --- a/libpager/priv.h +++ b/libpager/priv.h @@ -50,7 +50,7 @@ struct pager memory_object_control_t memobjcntl; memory_object_name_t memobjname; - int seqno; + mach_port_seqno_t seqno; int noterm; /* number of threads blocking termination */ @@ -131,9 +131,9 @@ extern int _pager_page_errors[]; struct port_class *_pager_class; -void _pager_wait_for_seqno (struct pager *, int); -void _pager_release_seqno (struct pager *, int); -void _pager_stubs_update_seqno (mach_port_t, int); +void _pager_wait_for_seqno (struct pager *, mach_port_seqno_t); +void _pager_release_seqno (struct pager *, mach_port_seqno_t); +void _pager_update_seqno (mach_port_t, mach_port_seqno_t); void _pager_block_termination (struct pager *); void _pager_allow_termination (struct pager *); error_t _pager_pagemap_resize (struct pager *, vm_address_t); diff --git a/libpager/seqnos.c b/libpager/seqnos.c index 7afe0fbe..7d8bcba7 100644 --- a/libpager/seqnos.c +++ b/libpager/seqnos.c @@ -23,7 +23,7 @@ return. */ void _pager_wait_for_seqno (struct pager *p, - int seqno) + mach_port_seqno_t seqno) { while (seqno != p->seqno + 1) { @@ -37,7 +37,7 @@ _pager_wait_for_seqno (struct pager *p, _pager_wait_for_seqno) to be handled. */ void _pager_release_seqno (struct pager *p, - int seqno) + mach_port_seqno_t seqno) { assert (seqno == p->seqno + 1); p->seqno = seqno; @@ -51,8 +51,8 @@ _pager_release_seqno (struct pager *p, /* Just update the seqno. */ void -_pager_stubs_update_seqno (mach_port_t object, - int seqno) +_pager_update_seqno (mach_port_t object, + mach_port_seqno_t seqno) { struct pager *p; diff --git a/libpager/stubs.c b/libpager/stubs.c index 44005378..84782120 100644 --- a/libpager/stubs.c +++ b/libpager/stubs.c @@ -21,22 +21,22 @@ #include <stdio.h> kern_return_t -_pager_seqnos_memory_object_copy (mach_port_t old, +_pager_seqnos_memory_object_copy (mach_port_t obj, mach_port_seqno_t seq, - memory_object_control_t old_ctl, + memory_object_control_t obj_ctl, vm_offset_t off, vm_size_t len, mach_port_t new) { printf ("m_o_copy called\n"); - _pager_stubs_update_seqno (old, seq); + _pager_update_seqno (obj, seq); return EOPNOTSUPP; } kern_return_t -_pager_seqnos_memory_object_data_write (mach_port_t old, +_pager_seqnos_memory_object_data_write (mach_port_t obj, mach_port_seqno_t seq, mach_port_t ctl, vm_offset_t off, @@ -45,7 +45,7 @@ _pager_seqnos_memory_object_data_write (mach_port_t old, { printf ("m_o_data_write called\n"); - _pager_stubs_update_seqno (old, seq); + _pager_update_seqno (obj, seq); return EOPNOTSUPP; } @@ -61,7 +61,7 @@ _pager_seqnos_memory_object_supply_completed (mach_port_t obj, { printf ("m_o_supply_completed called\n"); - _pager_stubs_update_seqno (obj, seq); + _pager_update_seqno (obj, seq); return EOPNOTSUPP; } |