diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2014-03-26 03:49:07 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2014-03-26 03:49:11 +0100 |
commit | f5fb893ef5db2bf0e70aa0ba108c9d189fea607b (patch) | |
tree | 2e980c7181b1d07a7a81a2bb4309aff069e81406 /mach-defpager/priv.h | |
parent | 25ae24c53dbada6be01791c5f15b26d103ee588d (diff) | |
parent | 07e46eb2e25583f0f3e06342f0c854769b353b10 (diff) |
Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd
Diffstat (limited to 'mach-defpager/priv.h')
-rw-r--r-- | mach-defpager/priv.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/mach-defpager/priv.h b/mach-defpager/priv.h index 20711b2c..36845657 100644 --- a/mach-defpager/priv.h +++ b/mach-defpager/priv.h @@ -29,6 +29,7 @@ #include <mach.h> #include <queue.h> +#include <hurd/ihash.h> /* * Bitmap allocation. @@ -150,6 +151,7 @@ typedef struct dpager *dpager_t; * Mapping between pager port and paging object. */ struct dstruct { + hurd_ihash_locp_t htable_locp; /* for the ihash table */ queue_chain_t links; /* Link in pager-port list */ pthread_mutex_t lock; /* Lock for the structure */ @@ -180,9 +182,19 @@ struct dstruct { typedef struct dstruct * default_pager_t; #define DEFAULT_PAGER_NULL ((default_pager_t)0) -/* given a data structure return a good port-name to associate it to */ -#define pnameof(_x_) (((vm_offset_t) (_x_)) + 1) -/* reverse, assumes no-odd-pointers */ -#define dnameof(_x_) (((vm_offset_t) (_x_)) & ~1) +/* + * List of all pagers. A specific pager is + * found directly via its port, this list is + * only used for monitoring purposes by the + * default_pager_object* calls + */ +struct pager_port { + struct hurd_ihash htable; + pthread_mutex_t lock; + queue_head_t leak_queue; +}; + +/* The list of pagers. */ +extern struct pager_port all_pagers; #endif /* __MACH_DEFPAGER_PRIV_H__ */ |