aboutsummaryrefslogtreecommitdiff
path: root/libpager/object-terminate.c
diff options
context:
space:
mode:
authorSergey Bugaev <bugaevc@gmail.com>2021-05-19 18:14:37 +0300
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2022-08-10 22:04:10 +0200
commitff0487ddf0ba1f98daef8265eb3a50b1570b8f41 (patch)
treeb21d88054ee81b2b65b33c6eab79b5f926019cfb /libpager/object-terminate.c
parent033397a36ab5bf40d7184791e036fae781355a21 (diff)
downloadhurd-ff0487ddf0ba1f98daef8265eb3a50b1570b8f41.tar.gz
hurd-ff0487ddf0ba1f98daef8265eb3a50b1570b8f41.tar.bz2
hurd-ff0487ddf0ba1f98daef8265eb3a50b1570b8f41.zip
libpager: Add pager_get_ro_port ()
A pager will now maintain a port to a read-only memory object proxy for itself, and let the users access it with pager_get_ro_port ().
Diffstat (limited to 'libpager/object-terminate.c')
-rw-r--r--libpager/object-terminate.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libpager/object-terminate.c b/libpager/object-terminate.c
index 3e7df167..8e8205b5 100644
--- a/libpager/object-terminate.c
+++ b/libpager/object-terminate.c
@@ -115,6 +115,11 @@ _pager_free_structure (struct pager *p)
mach_port_deallocate (mach_task_self (), p->memobjname);
p->memobjname = MACH_PORT_NULL;
}
+ if (p->ro_proxy != MACH_PORT_NULL)
+ {
+ mach_port_deallocate (mach_task_self (), p->ro_proxy);
+ p->ro_proxy = MACH_PORT_NULL;
+ }
/* Free the pagemap */
if (p->pagemapsize)