bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] hurd: make memory_object parameter polymorphic


From: Justus Winter
Subject: [PATCH] hurd: make memory_object parameter polymorphic
Date: Thu, 4 Sep 2014 11:39:17 +0200

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.
---
 hurd/default_pager.defs       | 2 +-
 mach-defpager/default_pager.c | 2 ++
 trans/proxy-defpager.c        | 2 ++
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/hurd/default_pager.defs b/hurd/default_pager.defs
index 4885503..1a4290d 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 380c724..d40a9c9 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 9817657..5fe8ffd 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);
 }
-- 
2.1.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]