1.1 --- a/libexec/lib/src/internal_pager.cc Sat Mar 04 19:02:34 2023 +0100
1.2 +++ b/libexec/lib/src/internal_pager.cc Sat Mar 04 19:03:27 2023 +0100
1.3 @@ -23,6 +23,7 @@
1.4 #include <l4/re/c/dataspace.h>
1.5 #include <l4/util/util.h>
1.6
1.7 +#include <ipc/cap_alloc.h>
1.8 #include <mem/memory_utils.h>
1.9 #include <systypes/base.h>
1.10
1.11 @@ -52,6 +53,27 @@
1.12
1.13
1.14
1.15 +/* Close the pager. */
1.16 +
1.17 +void InternalPager::close()
1.18 +{
1.19 + printf("Internal pager closing...\n");
1.20 +
1.21 + /* Unmap all regions. */
1.22 +
1.23 + MappedRegions::iterator it;
1.24 +
1.25 + for (it = _regions.begin(); it != _regions.end(); it++)
1.26 + {
1.27 + MappedRegion &r = it->second;
1.28 +
1.29 + printf("Free %lx\n", r.ds);
1.30 + ipc_cap_free_um(r.ds);
1.31 + }
1.32 +}
1.33 +
1.34 +
1.35 +
1.36 /* Handle a general exception. */
1.37
1.38 long InternalPager::exception(l4_exc_regs_t regs, l4_snd_fpage_t *region)