]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/device/device.defs
xnu-7195.101.1.tar.gz
[apple/xnu.git] / osfmk / device / device.defs
index 5410b050e4d863593a25eda578e1e23749f30bde..afb0bd3065611417954f2a9ffa0985a63677dc7b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 1998-2014 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
@@ -68,6 +68,10 @@ subsystem
 #endif /* KERNEL_SERVER */
                       iokit 2800;
 
+#if IOKITSIMD || KERNEL_SERVER
+#define IOKIT_ALL_IPC 1
+#endif
+
 #include <mach/std_types.defs>
 #include <mach/mach_types.defs>
 #include <mach/clock_types.defs>
@@ -88,6 +92,7 @@ type reply_port_t = MACH_MSG_TYPE_MAKE_SEND_ONCE | polymorphic
 
 type io_name_t            = c_string[*:128];
 type io_string_t          = c_string[*:512];
+type io_string_inband_t   = c_string[*:4096];
 type io_struct_inband_t   = array[*:4096] of char;
 type io_buf_ptr_t        = ^array[] of MACH_MSG_TYPE_INTEGER_8;
 type NDR_record_t         = struct[8] of char;
@@ -130,7 +135,7 @@ type io_connect_t = mach_port_t
 #if    KERNEL_SERVER
                intran: io_connect_t iokit_lookup_connect_port(mach_port_t)
                outtran: mach_port_t iokit_make_connect_port(io_connect_t)
-               destructor: iokit_remove_reference(io_connect_t)
+               destructor: iokit_remove_connect_reference(io_connect_t)
 #endif /* KERNEL_SERVER */
                ;
 
@@ -215,12 +220,14 @@ routine io_registry_entry_get_parent_iterator(
        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
@@ -231,7 +238,7 @@ routine io_connect_get_service(
        out service             : io_object_t
        );
 
-#if  KERNEL_SERVER || __ILP32__
+#if  IOKIT_ALL_IPC || __ILP32__
 routine io_connect_set_notification_port(
            connection          : io_connect_t;
        in  notification_type   : uint32_t;
@@ -243,7 +250,7 @@ routine io_connect_map_memory(
            connection          : io_connect_t;
        in  memory_type         : uint32_t;
        in  into_task           : task_t;
-#if  KERNEL_SERVER
+#if  IOKIT_ALL_IPC
        inout address           : uint32_t;
        inout size              : uint32_t;
 #else
@@ -268,7 +275,7 @@ routine io_connect_set_properties(
         out result             : kern_return_t
        );
 
-#if  KERNEL_SERVER || (__ILP32__ && !MAP_32B_METHODS)
+#if  IOKIT_ALL_IPC || __ILP32__
 routine io_connect_method_scalarI_scalarO(
            connection          : io_connect_t;
        in  selector            : uint32_t;
@@ -353,13 +360,15 @@ routine io_iterator_is_valid(
        out is_valid            : boolean_t
        );
 
-routine io_make_matching(
+skip;
+/* was routine io_make_matching(
            master_port         : mach_port_t;
        in  of_type             : uint32_t;
        in  options             : uint32_t;
        in  input               : io_struct_inband_t;
        out matching            : io_string_t
        );
+*/
 
 routine io_catalog_send_data(
            master_port         : mach_port_t;
@@ -412,7 +421,7 @@ routine io_service_match_property_table(
        out matches             : boolean_t
        );
 
-#if  KERNEL_SERVER || (__ILP32__ && !MAP_32B_ASYNC_METHODS)
+#if  IOKIT_ALL_IPC || __ILP32__
 routine io_async_method_scalarI_scalarO(
            connection          : io_connect_t;
        in  wake_port           : mach_port_make_send_t;
@@ -452,7 +461,7 @@ skip;
 skip;
 #endif
 
-#if KERNEL_SERVER || __ILP32__
+#if IOKIT_ALL_IPC || __ILP32__
 routine io_service_add_notification(
            master_port         : mach_port_t;
        in  notification_type   : io_name_t;
@@ -485,12 +494,12 @@ routine io_connect_get_notification_semaphore(
        out semaphore           : semaphore_t
        );
 
-#if KERNEL_SERVER || __ILP32__
+#if IOKIT_ALL_IPC || __ILP32__
 routine io_connect_unmap_memory(
            connection          : io_connect_t;
        in  memory_type         : uint32_t;
        in  into_task           : task_t;
-#if KERNEL_SERVER
+#if IOKIT_ALL_IPC
        in  address             : uint32_t
 #else
        in  address             : vm_address_t
@@ -535,7 +544,7 @@ routine io_service_match_property_table_ool(
        out matches             : boolean_t
        );
 
-#if KERNEL_SERVER || __ILP32__
+#if IOKIT_ALL_IPC || __ILP32__
 routine io_service_add_notification_ool(
            master_port         : mach_port_t;
        in  notification_type   : io_name_t;
@@ -599,8 +608,8 @@ routine io_connect_method(
        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
        );
@@ -616,16 +625,16 @@ routine io_connect_async_method(
        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
        );
 
 
-#if KERNEL_SERVER || __LP64__
+#if IOKIT_ALL_IPC || __LP64__
 
-#if KERNEL_SERVER
+#if IOKIT_ALL_IPC
 #define FUNC_NAME(name) name ## _64
 #else
 #define FUNC_NAME(name) name
@@ -672,13 +681,156 @@ routine FUNC_NAME(io_service_add_notification_ool)(
     skip;
     skip;
 
-#endif /* KERNEL_SERVER || __LP64__ */
+#endif /* IOKIT_ALL_IPC || __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
+       );
+
+routine io_service_get_matching_service(
+           master_port         : mach_port_t;
+       in  matching            : io_string_t;
+       out service             : io_object_t
+       );
+
+routine io_service_get_matching_service_ool(
+           master_port         : mach_port_t;
+       in  matching            : io_buf_ptr_t, physicalcopy;
+        out result             : kern_return_t;
+       out service             : io_object_t
+       );
+
+routine io_service_get_authorization_id(
+           service             : io_object_t;
+       out authorization_id    : uint64_t
+       );
+
+routine io_service_set_authorization_id(
+           service             : io_object_t;
+       in  authorization_id    : uint64_t
+       );
+
+/* */
+
+routine io_server_version(
+           master_port         : mach_port_t;
+       out version             : uint64_t
+       );
+
+routine io_registry_entry_get_properties_bin(
+           registry_entry      : io_object_t;
+       out properties          : io_buf_ptr_t, physicalcopy
+       );
+
+routine io_registry_entry_get_property_bin(
+           registry_entry      : io_object_t;
+       in  plane               : io_name_t;
+       in  property_name       : io_name_t;
+       in  options             : uint32_t;
+       out properties          : io_buf_ptr_t, physicalcopy
+       );
+
+routine io_service_get_matching_service_bin(
+           master_port         : mach_port_t;
+       in  matching            : io_struct_inband_t;
+       out service             : io_object_t
+       );
+
+routine io_service_get_matching_services_bin(
+           master_port         : mach_port_t;
+       in  matching            : io_struct_inband_t;
+       out existing            : io_object_t
+       );
+
+routine io_service_match_property_table_bin(
+           service             : io_object_t;
+       in  matching            : io_struct_inband_t;
+       out matches             : boolean_t
+       );
+
+#if IOKIT_ALL_IPC || __ILP32__
+routine io_service_add_notification_bin(
+           master_port         : mach_port_t;
+       in  notification_type   : io_name_t;
+       in  matching            : io_struct_inband_t;
+       in  wake_port           : mach_port_make_send_t;
+       in  reference           : io_async_ref_t;
+       out notification        : io_object_t
+       );
+#else
+skip;
+#endif
+
+#if IOKIT_ALL_IPC || __LP64__
+routine FUNC_NAME(io_service_add_notification_bin)(
+           master_port         : mach_port_t;
+       in  notification_type   : io_name_t;
+       in  matching            : io_struct_inband_t;
+       in  wake_port           : mach_port_make_send_t;
+       in  reference           : io_async_ref64_t;
+       out notification        : io_object_t
+       );
+#else
+skip;
+#endif
+
+#if !IOKITSIMD
+
+routine io_registry_entry_get_path_ool(
+           registry_entry      : io_object_t;
+       in  plane               : io_name_t;
+       out path                : io_string_inband_t;
+       out path_ool            : io_buf_ptr_t, physicalcopy
+       );
+
+routine io_registry_entry_from_path_ool(
+           master_port         : mach_port_t;
+       in  path                : io_string_inband_t;
+       in  path_ool            : io_buf_ptr_t, physicalcopy;
+        out result             : kern_return_t;
+       out registry_entry      : io_object_t
+       );
+
+#endif
+
+routine io_device_tree_entry_exists_with_name(
+           master_port         : mach_port_t;
+       in  name                : io_name_t;
+       out exists              : boolean_t
+       );
+
+routine io_registry_entry_get_properties_bin_buf(
+           registry_entry      : io_object_t;
+       in  buf                 : mach_vm_address_t;
+       inout  bufsize          : mach_vm_size_t;
+       out properties          : io_buf_ptr_t, physicalcopy
+       );
+
+routine io_registry_entry_get_property_bin_buf(
+           registry_entry      : io_object_t;
+       in  plane               : io_name_t;
+       in  property_name       : io_name_t;
+       in  options             : uint32_t;
+       in  buf                 : mach_vm_address_t;
+       inout  bufsize          : mach_vm_size_t;
+       out properties          : io_buf_ptr_t, physicalcopy
+       );
+
 #endif /* IOKIT */
 
 /* vim: set ft=c : */