1/* 2 * Copyright (c) 1998-2014 Apple Computer, Inc. All rights reserved. 3 * 4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ 5 * 6 * This file contains Original Code and/or Modifications of Original Code 7 * as defined in and that are subject to the Apple Public Source License 8 * Version 2.0 (the 'License'). You may not use this file except in 9 * compliance with the License. The rights granted to you under the License 10 * may not be used to create, or enable the creation or redistribution of, 11 * unlawful or unlicensed copies of an Apple operating system, or to 12 * circumvent, violate, or enable the circumvention or violation of, any 13 * terms of an Apple operating system software license agreement. 14 * 15 * Please obtain a copy of the License at 16 * http://www.opensource.apple.com/apsl/ and read it before using this file. 17 * 18 * The Original Code and all software distributed under the License are 19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, 21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, 22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 23 * Please see the License for the specific language governing rights and 24 * limitations under the License. 25 * 26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ 27 */ 28/* 29 * @OSF_COPYRIGHT@ 30 */ 31/* 32 * Mach Operating System 33 * Copyright (c) 1991,1990,1989 Carnegie Mellon University 34 * All Rights Reserved. 35 * 36 * Permission to use, copy, modify and distribute this software and its 37 * documentation is hereby granted, provided that both the copyright 38 * notice and this permission notice appear in all copies of the 39 * software, derivative works or modified versions, and any portions 40 * thereof, and that both notices appear in supporting documentation. 41 * 42 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 43 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR 44 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 45 * 46 * Carnegie Mellon requests users of this software to return to 47 * 48 * Software Distribution Coordinator or [email protected] 49 * School of Computer Science 50 * Carnegie Mellon University 51 * Pittsburgh PA 15213-3890 52 * 53 * any improvements or extensions that they make and grant Carnegie Mellon 54 * the rights to redistribute these changes. 55 */ 56/* 57 * File: device/device.defs 58 * Author: Douglas Orr 59 * Feb 10, 1988 60 * Abstract: 61 * Mach device support. Mach devices are accessed through 62 * block and character device interfaces to the kernel. 63 */ 64 65subsystem 66#if KERNEL_SERVER || KOBJECT_SERVER 67 KernelServer 68#endif /* KERNEL_SERVER || KOBJECT_SERVER */ 69 iokit 2800; 70 71#if IOKITSIMD || KERNEL_SERVER 72#define IOKIT_ALL_IPC 1 73#endif 74 75#include <mach/std_types.defs> 76#include <mach/mach_types.defs> 77#include <mach/clock_types.defs> 78#include <mach/clock_types.defs> 79 80#if !__LP64__ 81# define __ILP32__ 1 82#endif 83 84import <device/device_types.h>; 85 86serverprefix is_; 87 88type reply_port_t = MACH_MSG_TYPE_MAKE_SEND_ONCE | polymorphic 89 ctype: mach_port_t; 90 91#if IOKIT 92 93type io_name_t = c_string[*:128]; 94type io_string_t = c_string[*:512]; 95type io_string_inband_t = c_string[*:4096]; 96type io_struct_inband_t = array[*:4096] of char; 97type io_buf_ptr_t = ^array[] of MACH_MSG_TYPE_INTEGER_8; 98type NDR_record_t = struct[8] of char; 99 100#if KERNEL 101type io_user_scalar_t = uint64_t; 102type io_user_reference_t = uint64_t; 103type io_scalar_inband_t = array[*:16] of int; 104// must be the same type as OSAsyncReference 105type io_async_ref_t = array[*:8] of natural_t; 106type io_scalar_inband64_t = array[*:16] of io_user_scalar_t; 107type io_async_ref64_t = array[*:8] of io_user_reference_t; 108#elif __LP64__ 109type io_user_scalar_t = uint64_t; 110type io_user_reference_t = uint64_t; 111type io_scalar_inband_t = array[*:16] of io_user_scalar_t; 112type io_async_ref_t = array[*:8] of io_user_reference_t; 113type io_scalar_inband64_t = array[*:16] of io_user_scalar_t; 114type io_async_ref64_t = array[*:8] of io_user_reference_t; 115#else 116type io_user_scalar_t = int; 117type io_user_reference_t = natural_t; 118type io_scalar_inband_t = array[*:16] of io_user_scalar_t; 119type io_async_ref_t = array[*:8] of io_user_reference_t; 120type io_scalar_inband64_t = array[*:16] of uint64_t; 121type io_async_ref64_t = array[*:8] of uint64_t; 122#endif // __LP64__ 123 124type io_object_t = mach_port_t 125 ctype: mach_port_t 126#if KERNEL_SERVER 127 intran: io_object_t iokit_lookup_object_port(mach_port_t) 128 outtran: mach_port_t iokit_make_object_port(io_object_t) 129 destructor: iokit_remove_reference(io_object_t) 130#endif /* KERNEL_SERVER */ 131 ; 132 133type io_connect_t = mach_port_t 134 ctype: mach_port_t 135#if KERNEL_SERVER 136 intran: io_connect_t iokit_lookup_connect_port(mach_port_t) 137 outtran: mach_port_t iokit_make_connect_port(io_connect_t) 138 destructor: iokit_remove_connect_reference(io_connect_t) 139#endif /* KERNEL_SERVER */ 140 ; 141 142type io_ident_t = mach_port_t 143 ctype: mach_port_t 144#if KERNEL_SERVER 145 intran: io_ident_t iokit_lookup_ident_port(mach_port_t) 146 outtran: mach_port_t iokit_make_ident_port(io_ident_t) 147 destructor: iokit_remove_reference(io_ident_t) 148#endif /* KERNEL_SERVER */ 149 ; 150 151routine io_object_get_class( 152 object : io_object_t; 153 out className : io_name_t 154 ); 155 156routine io_object_conforms_to( 157 object : io_object_t; 158 in className : io_name_t; 159 out conforms : boolean_t 160 ); 161 162routine io_iterator_next( 163 iterator : io_object_t; 164 out object : io_object_t 165 ); 166 167routine io_iterator_reset( 168 iterator : io_object_t 169 ); 170 171routine io_service_get_matching_services( 172 main_port : mach_port_t; 173 in matching : io_string_t; 174 out existing : io_object_t 175 ); 176 177routine io_registry_entry_get_property( 178 registry_entry : io_object_t; 179 in property_name : io_name_t; 180 out properties : io_buf_ptr_t, physicalcopy 181 ); 182 183routine io_registry_create_iterator( 184 main_port : mach_port_t; 185 in plane : io_name_t; 186 in options : uint32_t; 187 out iterator : io_object_t 188 ); 189 190routine io_registry_iterator_enter_entry( 191 iterator : io_object_t 192 ); 193 194routine io_registry_iterator_exit_entry( 195 iterator : io_object_t 196 ); 197 198routine io_registry_entry_from_path( 199 main_port : mach_port_t; 200 in path : io_string_t; 201 out registry_entry : io_object_t 202 ); 203 204routine io_registry_entry_get_name( 205 registry_entry : io_object_t; 206 out name : io_name_t 207 ); 208 209routine io_registry_entry_get_properties( 210 registry_entry : io_object_t; 211 out properties : io_buf_ptr_t, physicalcopy 212 ); 213 214routine io_registry_entry_get_property_bytes( 215 registry_entry : io_object_t; 216 in property_name : io_name_t; 217 out data : io_struct_inband_t, CountInOut 218 ); 219 220routine io_registry_entry_get_child_iterator( 221 registry_entry : io_object_t; 222 in plane : io_name_t; 223 out iterator : io_object_t 224 ); 225 226routine io_registry_entry_get_parent_iterator( 227 registry_entry : io_object_t; 228 in plane : io_name_t; 229 out iterator : io_object_t 230 ); 231 232skip; 233/* was routine io_service_open 234 service : io_object_t; 235 in owningTask : task_t; 236 in connect_type : uint32_t; 237 out connection : io_connect_t 238 ); 239*/ 240 241routine io_service_close( 242 connection : io_connect_t 243 ); 244 245routine io_connect_get_service( 246 connection : io_connect_t; 247 out service : io_object_t 248 ); 249 250#if IOKIT_ALL_IPC || __ILP32__ 251routine io_connect_set_notification_port( 252 connection : io_connect_t; 253 in notification_type : uint32_t; 254 in port : mach_port_make_send_t; 255 in reference : uint32_t 256 ); 257 258routine io_connect_map_memory( 259 connection : io_connect_t; 260 in memory_type : uint32_t; 261 in into_task : task_t; 262#if IOKIT_ALL_IPC 263 inout address : uint32_t; 264 inout size : uint32_t; 265#else 266 inout address : vm_address_t; 267 inout size : vm_size_t; 268#endif 269 in flags : uint32_t 270 ); 271#else 272skip; 273skip; 274#endif 275 276routine io_connect_add_client( 277 connection : io_connect_t; 278 in connect_to : io_connect_t 279 ); 280 281routine io_connect_set_properties( 282 connection : io_connect_t; 283 in properties : io_buf_ptr_t, physicalcopy; 284 out result : kern_return_t 285 ); 286 287#if IOKIT_ALL_IPC || __ILP32__ 288routine io_connect_method_scalarI_scalarO( 289 connection : io_connect_t; 290 in selector : uint32_t; 291 in input : io_scalar_inband_t; 292 out output : io_scalar_inband_t, CountInOut 293 ); 294 295routine io_connect_method_scalarI_structureO( 296 connection : io_connect_t; 297 in selector : uint32_t; 298 in input : io_scalar_inband_t; 299 out output : io_struct_inband_t, CountInOut 300 ); 301 302routine io_connect_method_scalarI_structureI( 303 connection : io_connect_t; 304 in selector : uint32_t; 305 in input : io_scalar_inband_t; 306 in inputStruct : io_struct_inband_t 307 ); 308 309routine io_connect_method_structureI_structureO( 310 connection : io_connect_t; 311 in selector : uint32_t; 312 in input : io_struct_inband_t; 313 out output : io_struct_inband_t, CountInOut 314 ); 315#else 316skip; 317skip; 318skip; 319skip; 320#endif 321 322routine io_registry_entry_get_path( 323 registry_entry : io_object_t; 324 in plane : io_name_t; 325 out path : io_string_t 326 ); 327 328routine io_registry_get_root_entry( 329 main_port : mach_port_t; 330 out root : io_object_t 331 ); 332 333routine io_registry_entry_set_properties( 334 registry_entry : io_object_t; 335 in properties : io_buf_ptr_t, physicalcopy; 336 out result : kern_return_t 337 ); 338 339routine io_registry_entry_in_plane( 340 registry_entry : io_object_t; 341 in plane : io_name_t; 342 out inPlane : boolean_t 343 ); 344 345routine io_object_get_retain_count( 346 object : io_object_t; 347 out retainCount : uint32_t 348 ); 349 350routine io_service_get_busy_state( 351 service : io_object_t; 352 out busyState : uint32_t 353 ); 354 355routine io_service_wait_quiet( 356 service : io_object_t; 357 wait_time : mach_timespec_t 358 ); 359 360routine io_registry_entry_create_iterator( 361 registry_entry : io_object_t; 362 in plane : io_name_t; 363 in options : uint32_t; 364 out iterator : io_object_t 365 ); 366 367routine io_iterator_is_valid( 368 iterator : io_object_t; 369 out is_valid : boolean_t 370 ); 371 372skip; 373/* was routine io_make_matching( 374 main_port : mach_port_t; 375 in of_type : uint32_t; 376 in options : uint32_t; 377 in input : io_struct_inband_t; 378 out matching : io_string_t 379 ); 380*/ 381 382routine io_catalog_send_data( 383 main_port : mach_port_t; 384 in flag : uint32_t; 385 in inData : io_buf_ptr_t; 386 out result : kern_return_t 387 ); 388 389routine io_catalog_terminate( 390 main_port : mach_port_t; 391 in flag : uint32_t; 392 in name : io_name_t 393 ); 394 395routine io_catalog_get_data( 396 main_port : mach_port_t; 397 in flag : uint32_t; 398 out outData : io_buf_ptr_t 399 ); 400 401routine io_catalog_get_gen_count( 402 main_port : mach_port_t; 403 out genCount : uint32_t 404 ); 405 406routine io_catalog_module_loaded( 407 main_port : mach_port_t; 408 in name : io_name_t 409 ); 410 411routine io_catalog_reset( 412 main_port : mach_port_t; 413 in flag : uint32_t 414 ); 415 416routine io_service_request_probe( 417 service : io_object_t; 418 in options : uint32_t 419 ); 420 421routine io_registry_entry_get_name_in_plane( 422 registry_entry : io_object_t; 423 in plane : io_name_t; 424 out name : io_name_t 425 ); 426 427routine io_service_match_property_table( 428 service : io_object_t; 429 in matching : io_string_t; 430 out matches : boolean_t 431 ); 432 433#if IOKIT_ALL_IPC || __ILP32__ 434routine io_async_method_scalarI_scalarO( 435 connection : io_connect_t; 436 in wake_port : mach_port_make_send_t; 437 in reference : io_async_ref_t; 438 in selector : uint32_t; 439 in input : io_scalar_inband_t; 440 out output : io_scalar_inband_t, CountInOut 441 ); 442routine io_async_method_scalarI_structureO( 443 connection : io_connect_t; 444 in wake_port : mach_port_make_send_t; 445 in reference : io_async_ref_t; 446 in selector : uint32_t; 447 in input : io_scalar_inband_t; 448 out output : io_struct_inband_t, CountInOut 449 ); 450routine io_async_method_scalarI_structureI( 451 connection : io_connect_t; 452 in wake_port : mach_port_make_send_t; 453 in reference : io_async_ref_t; 454 in selector : uint32_t; 455 in input : io_scalar_inband_t; 456 in inputStruct : io_struct_inband_t 457 ); 458routine io_async_method_structureI_structureO( 459 connection : io_connect_t; 460 in wake_port : mach_port_make_send_t; 461 in reference : io_async_ref_t; 462 in selector : uint32_t; 463 in input : io_struct_inband_t; 464 out output : io_struct_inband_t, CountInOut 465 ); 466#else 467skip; 468skip; 469skip; 470skip; 471#endif 472 473#if IOKIT_ALL_IPC || __ILP32__ 474routine io_service_add_notification( 475 main_port : mach_port_t; 476 in notification_type : io_name_t; 477 in matching : io_string_t; 478 in wake_port : mach_port_make_send_t; 479 in reference : io_async_ref_t; 480 out notification : io_object_t 481 ); 482routine io_service_add_interest_notification( 483 service : io_object_t; 484 in type_of_interest : io_name_t; 485 in wake_port : mach_port_make_send_t; 486 in reference : io_async_ref_t; 487 out notification : io_object_t 488 ); 489routine io_service_acknowledge_notification( 490 service : io_object_t; 491 in notify_ref : natural_t; 492 in response : natural_t 493 ); 494#else 495skip; 496skip; 497skip; 498#endif 499 500routine io_connect_get_notification_semaphore( 501 connection : io_connect_t; 502 in notification_type : natural_t; 503 out semaphore : semaphore_t 504 ); 505 506#if IOKIT_ALL_IPC || __ILP32__ 507routine io_connect_unmap_memory( 508 connection : io_connect_t; 509 in memory_type : uint32_t; 510 in into_task : task_t; 511#if IOKIT_ALL_IPC 512 in address : uint32_t 513#else 514 in address : vm_address_t 515#endif 516 ); 517#else 518skip; 519#endif 520 521routine io_registry_entry_get_location_in_plane( 522 registry_entry : io_object_t; 523 in plane : io_name_t; 524 out location : io_name_t 525 ); 526 527routine io_registry_entry_get_property_recursively( 528 registry_entry : io_object_t; 529 in plane : io_name_t; 530 in property_name : io_name_t; 531 in options : uint32_t; 532 out properties : io_buf_ptr_t, physicalcopy 533 ); 534 535routine io_service_get_state( 536 service : io_object_t; 537 out state : uint64_t; 538 out busy_state : uint32_t; 539 out accumulated_busy_time : uint64_t 540 ); 541 542routine io_service_get_matching_services_ool( 543 main_port : mach_port_t; 544 in matching : io_buf_ptr_t, physicalcopy; 545 out result : kern_return_t; 546 out existing : io_object_t 547 ); 548 549routine io_service_match_property_table_ool( 550 service : io_object_t; 551 in matching : io_buf_ptr_t, physicalcopy; 552 out result : kern_return_t; 553 out matches : boolean_t 554 ); 555 556#if IOKIT_ALL_IPC || __ILP32__ 557routine io_service_add_notification_ool( 558 main_port : mach_port_t; 559 in notification_type : io_name_t; 560 in matching : io_buf_ptr_t, physicalcopy; 561 in wake_port : mach_port_make_send_t; 562 in reference : io_async_ref_t; 563 out result : kern_return_t; 564 out notification : io_object_t 565 ); 566#else 567skip; 568#endif 569 570routine io_object_get_superclass( 571 main_port : mach_port_t; 572 in obj_name : io_name_t; 573 out class_name : io_name_t 574 ); 575 576routine io_object_get_bundle_identifier( 577 main_port : mach_port_t; 578 in obj_name : io_name_t; 579 out class_name : io_name_t 580 ); 581 582routine io_service_open_extended( 583 service : io_object_t; 584 in owningTask : task_t; 585 in connect_type : uint32_t; 586 in ndr : NDR_record_t; 587 in properties : io_buf_ptr_t, physicalcopy; 588 out result : kern_return_t; 589 out connection : io_connect_t 590 ); 591 592 593/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 594 595routine io_connect_map_memory_into_task( 596 connection : io_connect_t; 597 in memory_type : uint32_t; 598 in into_task : task_t; 599 inout address : mach_vm_address_t; 600 inout size : mach_vm_size_t; 601 in flags : uint32_t 602 ); 603 604routine io_connect_unmap_memory_from_task( 605 connection : io_connect_t; 606 in memory_type : uint32_t; 607 in from_task : task_t; 608 in address : mach_vm_address_t 609 ); 610 611routine io_connect_method( 612 connection : io_connect_t; 613 in selector : uint32_t; 614 615 in scalar_input : io_scalar_inband64_t; 616 in inband_input : io_struct_inband_t; 617 in ool_input : mach_vm_address_t; 618 in ool_input_size : mach_vm_size_t; 619 620 out inband_output : io_struct_inband_t, CountInOut; 621 out scalar_output : io_scalar_inband64_t, CountInOut; 622 in ool_output : mach_vm_address_t; 623 inout ool_output_size : mach_vm_size_t 624 ); 625 626routine io_connect_async_method( 627 connection : io_connect_t; 628 in wake_port : mach_port_make_send_t; 629 in reference : io_async_ref64_t; 630 in selector : uint32_t; 631 632 in scalar_input : io_scalar_inband64_t; 633 in inband_input : io_struct_inband_t; 634 in ool_input : mach_vm_address_t; 635 in ool_input_size : mach_vm_size_t; 636 637 out inband_output : io_struct_inband_t, CountInOut; 638 out scalar_output : io_scalar_inband64_t, CountInOut; 639 in ool_output : mach_vm_address_t; 640 inout ool_output_size : mach_vm_size_t 641 ); 642 643 644#if IOKIT_ALL_IPC || __LP64__ 645 646#if IOKIT_ALL_IPC 647#define FUNC_NAME(name) name ## _64 648#else 649#define FUNC_NAME(name) name 650#endif 651 652routine FUNC_NAME(io_connect_set_notification_port)( 653 connection : io_connect_t; 654 in notification_type : uint32_t; 655 in port : mach_port_make_send_t; 656 in reference : io_user_reference_t 657 ); 658 659routine FUNC_NAME(io_service_add_notification)( 660 main_port : mach_port_t; 661 in notification_type : io_name_t; 662 in matching : io_string_t; 663 in wake_port : mach_port_make_send_t; 664 in reference : io_async_ref64_t; 665 out notification : io_object_t 666 ); 667 668routine FUNC_NAME(io_service_add_interest_notification)( 669 service : io_object_t; 670 in type_of_interest : io_name_t; 671 in wake_port : mach_port_make_send_t; 672 in reference : io_async_ref64_t; 673 out notification : io_object_t 674 ); 675 676routine FUNC_NAME(io_service_add_notification_ool)( 677 main_port : mach_port_t; 678 in notification_type : io_name_t; 679 in matching : io_buf_ptr_t, physicalcopy; 680 in wake_port : mach_port_make_send_t; 681 in reference : io_async_ref64_t; 682 out result : kern_return_t; 683 out notification : io_object_t 684 ); 685 686#else 687 688 skip; 689 skip; 690 skip; 691 skip; 692 693#endif /* IOKIT_ALL_IPC || __LP64__ */ 694 695routine io_registry_entry_get_registry_entry_id( 696 registry_entry : io_object_t; 697 out entry_id : uint64_t 698 ); 699 700routine io_connect_method_var_output( 701 connection : io_connect_t; 702 in selector : uint32_t; 703 704 in scalar_input : io_scalar_inband64_t; 705 in inband_input : io_struct_inband_t; 706 in ool_input : mach_vm_address_t; 707 in ool_input_size : mach_vm_size_t; 708 709 out inband_output : io_struct_inband_t, CountInOut; 710 out scalar_output : io_scalar_inband64_t, CountInOut; 711 out var_output : io_buf_ptr_t, physicalcopy 712 ); 713 714routine io_service_get_matching_service( 715 main_port : mach_port_t; 716 in matching : io_string_t; 717 out service : io_object_t 718 ); 719 720routine io_service_get_matching_service_ool( 721 main_port : mach_port_t; 722 in matching : io_buf_ptr_t, physicalcopy; 723 out result : kern_return_t; 724 out service : io_object_t 725 ); 726 727routine io_service_get_authorization_id( 728 service : io_object_t; 729 out authorization_id : uint64_t 730 ); 731 732routine io_service_set_authorization_id( 733 service : io_object_t; 734 in authorization_id : uint64_t 735 ); 736 737/* */ 738 739routine io_server_version( 740 main_port : mach_port_t; 741 out version : uint64_t 742 ); 743 744routine io_registry_entry_get_properties_bin( 745 registry_entry : io_object_t; 746 out properties : io_buf_ptr_t, physicalcopy 747 ); 748 749routine io_registry_entry_get_property_bin( 750 registry_entry : io_object_t; 751 in plane : io_name_t; 752 in property_name : io_name_t; 753 in options : uint32_t; 754 out properties : io_buf_ptr_t, physicalcopy 755 ); 756 757routine io_service_get_matching_service_bin( 758 main_port : mach_port_t; 759 in matching : io_struct_inband_t; 760 out service : io_object_t 761 ); 762 763routine io_service_get_matching_services_bin( 764 main_port : mach_port_t; 765 in matching : io_struct_inband_t; 766 out existing : io_object_t 767 ); 768 769routine io_service_match_property_table_bin( 770 service : io_object_t; 771 in matching : io_struct_inband_t; 772 out matches : boolean_t 773 ); 774 775#if IOKIT_ALL_IPC || __ILP32__ 776routine io_service_add_notification_bin( 777 main_port : mach_port_t; 778 in notification_type : io_name_t; 779 in matching : io_struct_inband_t; 780 in wake_port : mach_port_make_send_t; 781 in reference : io_async_ref_t; 782 out notification : io_object_t 783 ); 784#else 785skip; 786#endif 787 788#if IOKIT_ALL_IPC || __LP64__ 789routine FUNC_NAME(io_service_add_notification_bin)( 790 main_port : mach_port_t; 791 in notification_type : io_name_t; 792 in matching : io_struct_inband_t; 793 in wake_port : mach_port_make_send_t; 794 in reference : io_async_ref64_t; 795 out notification : io_object_t 796 ); 797#else 798skip; 799#endif 800 801#if !IOKITSIMD 802 803routine io_registry_entry_get_path_ool( 804 registry_entry : io_object_t; 805 in plane : io_name_t; 806 out path : io_string_inband_t; 807 out path_ool : io_buf_ptr_t, physicalcopy 808 ); 809 810routine io_registry_entry_from_path_ool( 811 main_port : mach_port_t; 812 in path : io_string_inband_t; 813 in path_ool : io_buf_ptr_t, physicalcopy; 814 out result : kern_return_t; 815 out registry_entry : io_object_t 816 ); 817 818#endif 819 820routine io_device_tree_entry_exists_with_name( 821 main_port : mach_port_t; 822 in name : io_name_t; 823 out exists : boolean_t 824 ); 825 826routine io_registry_entry_get_properties_bin_buf( 827 registry_entry : io_object_t; 828 in buf : mach_vm_address_t; 829 inout bufsize : mach_vm_size_t; 830 out properties : io_buf_ptr_t, physicalcopy 831 ); 832 833routine io_registry_entry_get_property_bin_buf( 834 registry_entry : io_object_t; 835 in plane : io_name_t; 836 in property_name : io_name_t; 837 in options : uint32_t; 838 in buf : mach_vm_address_t; 839 inout bufsize : mach_vm_size_t; 840 out properties : io_buf_ptr_t, physicalcopy 841 ); 842 843routine io_service_wait_quiet_with_options( 844 service : io_object_t; 845 in wait_time : mach_timespec_t; 846 in options : uint32_t 847 ); 848 849#endif /* IOKIT */ 850 851/* vim: set ft=c : */ 852