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