+routine io_object_get_superclass(
+ master_port : mach_port_t;
+ in obj_name : io_name_t;
+ out class_name : io_name_t
+ );
+
+routine io_object_get_bundle_identifier(
+ master_port : mach_port_t;
+ in obj_name : io_name_t;
+ out class_name : io_name_t
+ );
+
+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
+#endif
+
+routine FUNC_NAME(io_connect_set_notification_port)(
+ connection : io_connect_t;
+ in notification_type : uint32_t;
+ in port : mach_port_make_send_t;
+ in reference : io_user_reference_t
+ );
+
+routine FUNC_NAME(io_service_add_notification)(
+ master_port : mach_port_t;
+ in notification_type : io_name_t;
+ in matching : io_string_t;
+ in wake_port : mach_port_make_send_t;
+ in reference : io_async_ref64_t;
+ out notification : io_object_t
+ );
+
+routine FUNC_NAME(io_service_add_interest_notification)(
+ service : io_object_t;
+ in type_of_interest : io_name_t;
+ in wake_port : mach_port_make_send_t;
+ in reference : io_async_ref64_t;
+ out notification : io_object_t
+ );
+
+routine FUNC_NAME(io_service_add_notification_ool)(
+ master_port : mach_port_t;
+ in notification_type : io_name_t;
+ in matching : io_buf_ptr_t, physicalcopy;
+ in wake_port : mach_port_make_send_t;
+ in reference : io_async_ref64_t;
+ out result : kern_return_t;
+ out notification : io_object_t
+ );
+
+#else
+
+ skip;
+ skip;
+ skip;
+ skip;
+
+#endif /* KERNEL_SERVER || __LP64__ */
+
+routine io_registry_entry_get_registry_entry_id(
+ registry_entry : io_object_t;
+ out entry_id : uint64_t
+ );
+
+routine io_connect_method_var_output(
+ 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;
+ out var_output : io_buf_ptr_t, physicalcopy
+ );
+
+#endif /* IOKIT */