From 0e3a795af98b6441d0a9928036e140978511e272 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Sun, 22 May 2016 19:35:10 +0200 Subject: libpager: provide 'pager_create_alloc' Add a variant to 'pager_create' that allocates memory for the user hook next to the pager data increasing locality. * console/pager.c (pager_clear_user_data): Fix type of 'idx', do not free 'upi'. (user_pager_create): Use the new function. * doc/hurd.texi: Document new function. * ext2fs/pager.c (pager_clear_user_data): Don't free 'upi'. (diskfs_get_filemap): Use the new function. * fatfs/pager.c (pager_clear_user_data): Don't free 'upi'. (diskfs_get_filemap): Use the new function. * isofs/pager.c (pager_clear_user_data): Don't free 'upi'. (diskfs_get_filemap): Use the new function. * libpager/pager-create.c (_pager_create): New generic allocation function. (pager_create): Use the new generic function. (pager_create_alloc): New function. * libpager/pager.h (pager_create_alloc): New prototype. --- libpager/pager.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'libpager/pager.h') diff --git a/libpager/pager.h b/libpager/pager.h index df4db686..d2a8d397 100644 --- a/libpager/pager.h +++ b/libpager/pager.h @@ -69,6 +69,14 @@ pager_create (struct user_pager_info *u_pager, memory_object_copy_strategy_t copy_strategy, boolean_t notify_on_evict); +/* Likewise, but also allocate space for the user hook. */ +struct pager * +pager_create_alloc (size_t u_pager_size, + struct port_bucket *bucket, + boolean_t may_cache, + memory_object_copy_strategy_t copy_strategy, + boolean_t notify_on_evict); + /* Return the user_pager_info struct associated with a pager. */ struct user_pager_info * pager_get_upi (struct pager *p); -- cgit v1.2.3