summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2014-09-04 11:19:29 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2014-09-04 11:19:29 +0200
commit8fd228ccd454578fb0367d97d95b90f9073a8d7c (patch)
tree9a6afae269cec07c75cea8992a4d46e313d74a9f
parent626ff916ca63334e6c170f059ea47f9cfea19661 (diff)
hurd: make memory_object parameter polymorphic
Make the memory_object parameter of default_pager_object_create polymorphic. This fixes https://savannah.gnu.org/bugs/?26751 . * hurd/default_pager.defs (default_pager_object_create): Make memory_object parameter polymorphic. * mach-defpager/default_pager.c (S_default_pager_object_create): Adjust accordingly. * trans/proxy-defpager.c (S_default_pager_object_create): Likewise.
-rw-r--r--hurd/default_pager.defs2
-rw-r--r--mach-defpager/default_pager.c2
-rw-r--r--trans/proxy-defpager.c2
3 files changed, 5 insertions, 1 deletions
diff --git a/hurd/default_pager.defs b/hurd/default_pager.defs
index 48855039..1a4290d5 100644
--- a/hurd/default_pager.defs
+++ b/hurd/default_pager.defs
@@ -43,7 +43,7 @@ DEFAULT_PAGER_IMPORTS
routine default_pager_object_create(
default_pager : mach_port_t;
out memory_object : memory_object_t =
- MACH_MSG_TYPE_MAKE_SEND;
+ MACH_MSG_TYPE_PORT_SEND;
object_size : vm_size_t);
routine default_pager_info(
diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c
index 380c7246..d40a9c92 100644
--- a/mach-defpager/default_pager.c
+++ b/mach-defpager/default_pager.c
@@ -3160,6 +3160,7 @@ default_pager()
kern_return_t
S_default_pager_object_create (mach_port_t pager,
mach_port_t *mem_obj,
+ mach_msg_type_name_t *mem_obj_type,
vm_size_t size)
{
default_pager_t ds;
@@ -3190,6 +3191,7 @@ S_default_pager_object_create (mach_port_t pager,
default_pager_add(ds, FALSE);
*mem_obj = port;
+ *mem_obj_type = MACH_MSG_TYPE_MAKE_SEND;
return (KERN_SUCCESS);
}
diff --git a/trans/proxy-defpager.c b/trans/proxy-defpager.c
index 98176577..5fe8ffd1 100644
--- a/trans/proxy-defpager.c
+++ b/trans/proxy-defpager.c
@@ -45,8 +45,10 @@ allowed (mach_port_t port, int mode)
kern_return_t
S_default_pager_object_create (mach_port_t default_pager,
memory_object_t *memory_object,
+ mach_msg_type_name_t *memory_object_type,
vm_size_t object_size)
{
+ *memory_object_type = MACH_MSG_TYPE_COPY_SEND;
return allowed (default_pager, O_EXEC)
?: default_pager_object_create (real_defpager, memory_object, object_size);
}