summaryrefslogtreecommitdiff
path: root/xen
diff options
context:
space:
mode:
authorDiego Nieto Cid <dnietoc@gmail.com>2025-09-21 21:23:42 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2025-09-22 00:51:29 +0200
commit9ae4d99c1d1e7c9c0977cebb4df9b86fa92cca94 (patch)
tree62e1baaaefde974b943755eb8771ad0a2ca182f4 /xen
parent1269629d90b28a23ef9742645cfaf657ea3165bb (diff)
Implement per-task virtual memory limitHEADmaster
* doc/mach.texi: add a "Memory Limitations" section to document the new interfaces. * include/mach/gnumach.defs: (vm_set_size_limit) new routine (vm_get_size_limit) likewise * kern/task.c: (task_create_kernel) if parent_task is not null copy virtual memory limit * tests/test-vm.c: (test_vm_limit) add test for the new routines * vm/vm_map.h: (struct vm_map) new fields size_none, size_cur_limit and size_max_limit (vm_map_find_entry) add new parameters cur_protection and max_protection * vm/vm_map.c: (vm_map_setup) initialize new fields (vm_map_enforce_limit) new function (vm_map_copy_limits) new function (vm_map_find_entry) add protection and max_protection parameters. call limit enforcer function (vm_map_enter) likewise (vm_map_copyout) likewise (vm_map_copyout_page_list) likewise (vm_map_fork) copy parent limit to the new map and compute and set size_none of the new map * vm/vm_user.c: (vm_set_size_limit) new function (vm_get_size_limit) likewise * xen/grant.c: update call to vm_map_find_entry to pass protection parameters Message-ID: <0b71f4f89b7cc2b159893a805480d7493d522d60.1758485757.git.dnietoc@gmail.com>
Diffstat (limited to 'xen')
-rw-r--r--xen/grant.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/xen/grant.c b/xen/grant.c
index 84758cfc..dd2fabf7 100644
--- a/xen/grant.c
+++ b/xen/grant.c
@@ -135,7 +135,8 @@ void hyp_grant_init(void) {
simple_lock_init(&lock);
vm_map_find_entry(kernel_map, &addr, NR_GRANT_PAGES * PAGE_SIZE,
- (vm_offset_t) 0, kernel_object, &grants_map_entry);
+ (vm_offset_t) 0, kernel_object, &grants_map_entry,
+ VM_PROT_DEFAULT, VM_PROT_ALL);
grants = (void*) addr;
for (i = 0; i < NR_GRANT_PAGES; i++)