type io_user_scalar_t = uint64_t;
type io_user_reference_t = uint64_t;
type io_scalar_inband_t = array[*:16] of int;
+// must be the same type as OSAsyncReference
type io_async_ref_t = array[*:8] of natural_t;
type io_scalar_inband64_t = array[*:16] of io_user_scalar_t;
type io_async_ref64_t = array[*:8] of io_user_reference_t;
out iterator : io_object_t
);
-routine io_service_open(
+skip;
+/* was routine io_service_open
service : io_object_t;
in owningTask : task_t;
in connect_type : uint32_t;
out connection : io_connect_t
);
+*/
routine io_service_close(
connection : io_connect_t
connection : io_connect_t;
in memory_type : uint32_t;
in into_task : task_t;
+#if KERNEL_SERVER
+ inout address : uint32_t;
+ inout size : uint32_t;
+#else
inout address : vm_address_t;
inout size : vm_size_t;
+#endif
in flags : uint32_t
);
#else
connection : io_connect_t;
in memory_type : uint32_t;
in into_task : task_t;
+#if KERNEL_SERVER
+ in address : uint32_t
+#else
in address : vm_address_t
+#endif
);
#else
skip;
out properties : io_buf_ptr_t, physicalcopy
);
-
routine io_service_get_state(
service : io_object_t;
- out state : uint64_t
+ out state : uint64_t;
+ out busy_state : uint32_t;
+ out accumulated_busy_time : uint64_t
);
routine io_service_get_matching_services_ool(
in ool_input : mach_vm_address_t;
in ool_input_size : mach_vm_size_t;
- out scalar_output : io_scalar_inband64_t, CountInOut;
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
);
in ool_input : mach_vm_address_t;
in ool_input_size : mach_vm_size_t;
- out scalar_output : io_scalar_inband64_t, CountInOut;
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
);
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 */
/* vim: set ft=c : */