bug-hurd
[Top][All Lists]
Advanced

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

[PATCH gnumach] include: make `mach_port_t' payload-aware


From: Justus Winter
Subject: [PATCH gnumach] include: make `mach_port_t' payload-aware
Date: Thu, 27 Nov 2014 14:16:19 +0100

Honor a new macro `MACH_PAYLOAD_TO_PORT' to inject a translation
function mapping payloads to port names in the definition of
`mach_port_t'.

* include/mach/std_types.defs (mach_port_t): Honor
`MACH_PAYLOAD_TO_PORT'.
* include/device/device.defs (reply_port_t): Likewise.
* include/device/device_reply.defs (reply_port_t): Likewise.
* include/device/device_request.defs (reply_port_t): Likewise.
---
 include/device/device.defs         | 8 +++++++-
 include/device/device_reply.defs   | 8 +++++++-
 include/device/device_request.defs | 8 +++++++-
 include/mach/std_types.defs        | 8 +++++++-
 4 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/include/device/device.defs b/include/device/device.defs
index 5fdf1bd..409146f 100644
--- a/include/device/device.defs
+++ b/include/device/device.defs
@@ -45,7 +45,13 @@ subsystem
 serverprefix   ds_;
 
 type reply_port_t = MACH_MSG_TYPE_MAKE_SEND_ONCE | polymorphic
-       ctype: mach_port_t;
+       ctype: mach_port_t
+#ifndef        KERNEL_SERVER
+#ifdef MACH_PAYLOAD_TO_PORT
+               intranpayload: mach_port_t MACH_PAYLOAD_TO_PORT
+#endif /* MACH_PAYLOAD_TO_PORT */
+#endif /* KERNEL_SERVER */
+;
 
 routine device_open(
                master_port     : mach_port_t;
diff --git a/include/device/device_reply.defs b/include/device/device_reply.defs
index 3415677..5a32507 100644
--- a/include/device/device_reply.defs
+++ b/include/device/device_reply.defs
@@ -54,7 +54,13 @@ serverdemux seqnos_device_reply_server;
 #endif /* SEQNOS */
 
 type reply_port_t = polymorphic|MACH_MSG_TYPE_PORT_SEND_ONCE
-       ctype: mach_port_t;
+       ctype: mach_port_t
+#ifndef        KERNEL_SERVER
+#ifdef MACH_PAYLOAD_TO_PORT
+       intranpayload: mach_port_t MACH_PAYLOAD_TO_PORT
+#endif /* MACH_PAYLOAD_TO_PORT */
+#endif /* KERNEL_SERVER */
+;
 
 simpleroutine  device_open_reply(
            reply_port          : reply_port_t;
diff --git a/include/device/device_request.defs 
b/include/device/device_request.defs
index e8aab2a..7ea8637 100644
--- a/include/device/device_request.defs
+++ b/include/device/device_request.defs
@@ -37,7 +37,13 @@ subsystem device_request 2800;       /* to match device.defs 
*/
 serverprefix   ds_;
 
 type reply_port_t = MACH_MSG_TYPE_MAKE_SEND_ONCE
-       ctype: mach_port_t;
+       ctype: mach_port_t
+#ifndef        KERNEL_SERVER
+#ifdef MACH_PAYLOAD_TO_PORT
+       intranpayload: mach_port_t MACH_PAYLOAD_TO_PORT
+#endif /* MACH_PAYLOAD_TO_PORT */
+#endif /* KERNEL_SERVER */
+;
 
 simpleroutine device_open_request(
            device_server_port  : mach_port_t;
diff --git a/include/mach/std_types.defs b/include/mach/std_types.defs
index 00d1a69..a1f156d 100644
--- a/include/mach/std_types.defs
+++ b/include/mach/std_types.defs
@@ -49,7 +49,13 @@ type pointer_t = ^array[] of MACH_MSG_TYPE_BYTE
        ctype: vm_offset_t;
 
 
-type mach_port_t = MACH_MSG_TYPE_COPY_SEND;
+type mach_port_t = MACH_MSG_TYPE_COPY_SEND
+#ifndef        KERNEL_SERVER
+#ifdef MACH_PAYLOAD_TO_PORT
+               intranpayload: mach_port_t MACH_PAYLOAD_TO_PORT
+#endif /* MACH_PAYLOAD_TO_PORT */
+#endif /* KERNEL_SERVER */
+;
 type mach_port_array_t = array[] of mach_port_t;
 
 type mach_port_name_t = MACH_MSG_TYPE_PORT_NAME
-- 
2.1.3




reply via email to

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