+routine io_service_open_extended(
+ service : io_object_t;
+ in owningTask : task_t;
+ in connect_type : uint32_t;
+ in ndr : NDR_record_t;
+ in properties : io_buf_ptr_t, physicalcopy;
+ out result : kern_return_t;
+ out connection : io_connect_t
+ );
+
+
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+routine io_connect_map_memory_into_task(
+ connection : io_connect_t;
+ in memory_type : uint32_t;
+ in into_task : task_t;
+ inout address : mach_vm_address_t;
+ inout size : mach_vm_size_t;
+ in flags : uint32_t
+ );
+
+routine io_connect_unmap_memory_from_task(
+ connection : io_connect_t;
+ in memory_type : uint32_t;
+ in from_task : task_t;
+ in address : mach_vm_address_t
+ );
+
+routine io_connect_method(
+ connection : io_connect_t;
+ in selector : uint32_t;
+
+ in scalar_input : io_scalar_inband64_t;
+ in inband_input : io_struct_inband_t;
+ in ool_input : mach_vm_address_t;
+ in ool_input_size : mach_vm_size_t;
+
+ out inband_output : io_struct_inband_t, CountInOut;
+ out scalar_output : io_scalar_inband64_t, CountInOut;
+ in ool_output : mach_vm_address_t;
+ inout ool_output_size : mach_vm_size_t
+ );
+
+routine io_connect_async_method(
+ connection : io_connect_t;
+ in wake_port : mach_port_make_send_t;
+ in reference : io_async_ref64_t;
+ in selector : uint32_t;
+
+ in scalar_input : io_scalar_inband64_t;
+ in inband_input : io_struct_inband_t;
+ in ool_input : mach_vm_address_t;
+ in ool_input_size : mach_vm_size_t;
+
+ out inband_output : io_struct_inband_t, CountInOut;
+ out scalar_output : io_scalar_inband64_t, CountInOut;
+ in ool_output : mach_vm_address_t;
+ inout ool_output_size : mach_vm_size_t
+ );
+
+
+#if KERNEL_SERVER || __LP64__
+
+#if KERNEL_SERVER
+#define FUNC_NAME(name) name ## _64
+#else
+#define FUNC_NAME(name) name