summaryrefslogtreecommitdiffstats
path: root/sys/syscall_pagedir.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/syscall_pagedir.c')
-rw-r--r--sys/syscall_pagedir.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/sys/syscall_pagedir.c b/sys/syscall_pagedir.c
index f80da76..33acc87 100644
--- a/sys/syscall_pagedir.c
+++ b/sys/syscall_pagedir.c
@@ -44,7 +44,8 @@ s_syscall_pagedir_map(
return EALIGN;
}
if(untyped_data->limit != 0x1000) {
- kprintf("%s: Untyped object is not page sized.\n", __func__);
+ kprintf("%s: Untyped object is not page sized. (expected 0x1000 got 0x%X)\n", __func__,
+ untyped_data->limit);
obj_release(untyped_obj);
return EBADSIZE;
}
@@ -104,6 +105,10 @@ s_syscall_pagedir_map_frame(
struct syscall_pagedir_map *payload = payload_data;
sysret = pagedir_map_untyped_frame(target_obj, untyped_obj, payload->virtual_address, payload->flags);
+
+ if(sysret == 0)
+ obj_settype(untyped_obj, JOVE_OBJ_NONE);
+
obj_release(untyped_obj);
return sysret;
}
@@ -122,7 +127,11 @@ s_syscall_pagedir_map_table(
}
struct syscall_pagedir_map *payload = payload_data;
- sysret = pagedir_map_untyped_frame(target_obj, untyped_obj, payload->virtual_address, payload->flags);
+ sysret = pagedir_map_untyped_table(target_obj, untyped_obj, payload->virtual_address);
+
+ if(sysret == 0)
+ obj_settype(untyped_obj, JOVE_OBJ_NONE);
+
obj_release(untyped_obj);
return sysret;
}