I don't know if I done this correctly. I don't know much about
MIG and generated code. Function memory_object_create_proxy()
should really have a pointer to ipc_port_t as a third argument.
In this way, the resulting forward declaration is slightly
incorrect, but the call to function works without warnings
since ipc_port_t is itself type defined as a pointer.
* include/mach/mach4.defs: Define ipc_port_t.
Make third argument of ipc_port_t type.
---
include/mach/mach4.defs | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/include/mach/mach4.defs b/include/mach/mach4.defs
index 114edf4..a0f49b5 100644
--- a/include/mach/mach4.defs
+++ b/include/mach/mach4.defs
@@ -96,16 +95,17 @@ skip /* pc_sampling reserved 4*/;
#endif
-
/* Create a new proxy memory object from [START;START+LEN) in the
given OBJECT at OFFSET in the new object with the maximum
protection MAX_PROTECTION and return it in *PORT. */
type vm_offset_array_t = array[*:1024] of vm_offset_t;
+type ipc_port_t = struct[0] of natural_t;
routine memory_object_create_proxy(
task : ipc_space_t;
max_protection : vm_prot_t;
- object : memory_object_array_t =
- array[*:1024] of memory_object_t;
+ /*object : memory_object_array_t =
+ array[*:1024] of memory_object_t;*/
+ object : ipc_port_t;
offset : vm_offset_array_t;
start : vm_offset_array_t;
len : vm_offset_array_t;
--
1.8.1.4