|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * The contents of this file constitute Original Code as defined in and ! 7: * are subject to the Apple Public Source License Version 1.1 (the ! 8: * "License"). You may not use this file except in compliance with the ! 9: * License. Please obtain a copy of the License at ! 10: * http://www.apple.com/publicsource and read it before using this file. ! 11: * ! 12: * This Original Code and all software distributed under the License are ! 13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 17: * License for the specific language governing rights and limitations ! 18: * under the License. ! 19: * ! 20: * @APPLE_LICENSE_HEADER_END@ ! 21: */ ! 22: /* ! 23: * @OSF_COPYRIGHT@ ! 24: */ ! 25: /* ! 26: * Mach Operating System ! 27: * Copyright (c) 1991,1990,1989 Carnegie Mellon University ! 28: * All Rights Reserved. ! 29: * ! 30: * Permission to use, copy, modify and distribute this software and its ! 31: * documentation is hereby granted, provided that both the copyright ! 32: * notice and this permission notice appear in all copies of the ! 33: * software, derivative works or modified versions, and any portions ! 34: * thereof, and that both notices appear in supporting documentation. ! 35: * ! 36: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" ! 37: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ! 38: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ! 39: * ! 40: * Carnegie Mellon requests users of this software to return to ! 41: * ! 42: * Software Distribution Coordinator or [email protected] ! 43: * School of Computer Science ! 44: * Carnegie Mellon University ! 45: * Pittsburgh PA 15213-3890 ! 46: * ! 47: * any improvements or extensions that they make and grant Carnegie Mellon ! 48: * the rights to redistribute these changes. ! 49: */ ! 50: /* ! 51: * File: device/device.defs ! 52: * Author: Douglas Orr ! 53: * Feb 10, 1988 ! 54: * Abstract: ! 55: * Mach device support. Mach devices are accessed through ! 56: * block and character device interfaces to the kernel. ! 57: */ ! 58: ! 59: subsystem ! 60: #if KERNEL_SERVER ! 61: KernelServer ! 62: #endif /* KERNEL_SERVER */ ! 63: iokit 2800; ! 64: ! 65: #include <mach/std_types.defs> ! 66: #include <mach/mach_types.defs> ! 67: #include <mach/clock_types.defs> ! 68: #include <mach/clock_types.defs> ! 69: ! 70: import <device/device_types.h>; ! 71: ! 72: serverprefix is_; ! 73: ! 74: type reply_port_t = MACH_MSG_TYPE_MAKE_SEND_ONCE | polymorphic ! 75: ctype: mach_port_t; ! 76: ! 77: #if IOKIT ! 78: ! 79: type io_name_t = c_string[*:128]; ! 80: type io_string_t = c_string[*:512]; ! 81: type io_struct_inband_t = array[*:4096] of char; ! 82: type io_scalar_inband_t = array[*:16] of int; ! 83: type io_async_ref_t = array[*:8] of natural_t; ! 84: type io_buf_ptr_t = ^array[] of MACH_MSG_TYPE_INTEGER_8; ! 85: ! 86: type io_object_t = mach_port_t ! 87: ctype: mach_port_t ! 88: #if KERNEL_SERVER ! 89: intran: io_object_t iokit_lookup_object_port(mach_port_t) ! 90: outtran: mach_port_t iokit_make_object_port(io_object_t) ! 91: destructor: iokit_remove_reference(io_object_t) ! 92: #endif /* KERNEL_SERVER */ ! 93: ; ! 94: ! 95: type io_connect_t = mach_port_t ! 96: ctype: mach_port_t ! 97: #if KERNEL_SERVER ! 98: intran: io_connect_t iokit_lookup_connect_port(mach_port_t) ! 99: outtran: mach_port_t iokit_make_connect_port(io_connect_t) ! 100: destructor: iokit_remove_reference(io_connect_t) ! 101: #endif /* KERNEL_SERVER */ ! 102: ; ! 103: ! 104: routine io_object_get_class( ! 105: object : io_object_t; ! 106: out className : io_name_t ! 107: ); ! 108: ! 109: routine io_object_conforms_to( ! 110: object : io_object_t; ! 111: in className : io_name_t; ! 112: out conforms : boolean_t ! 113: ); ! 114: ! 115: routine io_iterator_next( ! 116: iterator : io_object_t; ! 117: out object : io_object_t ! 118: ); ! 119: ! 120: routine io_iterator_reset( ! 121: iterator : io_object_t ! 122: ); ! 123: ! 124: routine io_service_get_matching_services( ! 125: master_port : mach_port_t; ! 126: in matching : io_string_t; ! 127: out existing : io_object_t ! 128: ); ! 129: ! 130: routine io_service_add_notification_old( ! 131: master_port : mach_port_t; ! 132: in notification_type : io_name_t; ! 133: in matching : io_string_t; ! 134: in wake_port : mach_port_make_send_t; ! 135: in reference : natural_t; ! 136: out notification : io_object_t ! 137: ); ! 138: ! 139: routine io_registry_create_iterator( ! 140: master_port : mach_port_t; ! 141: in plane : io_name_t; ! 142: in options : int; ! 143: out iterator : io_object_t ! 144: ); ! 145: ! 146: routine io_registry_iterator_enter_entry( ! 147: iterator : io_object_t ! 148: ); ! 149: ! 150: routine io_registry_iterator_exit_entry( ! 151: iterator : io_object_t ! 152: ); ! 153: ! 154: routine io_registry_entry_from_path( ! 155: master_port : mach_port_t; ! 156: in path : io_string_t; ! 157: out registry_entry : io_object_t ! 158: ); ! 159: ! 160: routine io_registry_entry_get_name( ! 161: registry_entry : io_object_t; ! 162: out name : io_name_t ! 163: ); ! 164: ! 165: routine io_registry_entry_get_properties( ! 166: registry_entry : io_object_t; ! 167: out properties : io_buf_ptr_t, physicalcopy ! 168: ); ! 169: ! 170: routine io_registry_entry_get_property( ! 171: registry_entry : io_object_t; ! 172: in property_name : io_name_t; ! 173: out data : io_struct_inband_t, CountInOut ! 174: ); ! 175: ! 176: routine io_registry_entry_get_child_iterator( ! 177: registry_entry : io_object_t; ! 178: in plane : io_name_t; ! 179: out iterator : io_object_t ! 180: ); ! 181: ! 182: routine io_registry_entry_get_parent_iterator( ! 183: registry_entry : io_object_t; ! 184: in plane : io_name_t; ! 185: out iterator : io_object_t ! 186: ); ! 187: ! 188: routine io_service_open( ! 189: service : io_object_t; ! 190: in owningTask : task_t; ! 191: in connect_type : int; ! 192: out connection : io_connect_t ! 193: ); ! 194: ! 195: routine io_service_close( ! 196: connection : io_connect_t ! 197: ); ! 198: ! 199: routine io_connect_get_service( ! 200: connection : io_connect_t; ! 201: out service : io_object_t ! 202: ); ! 203: ! 204: routine io_connect_set_notification_port( ! 205: connection : io_connect_t; ! 206: in notification_type : int; ! 207: in port : mach_port_make_send_t; ! 208: in reference : int ! 209: ); ! 210: ! 211: routine io_connect_map_memory( ! 212: connection : io_connect_t; ! 213: in memory_type : int; ! 214: in into_task : task_t; ! 215: inout address : vm_address_t; ! 216: inout size : vm_size_t; ! 217: in flags : int ! 218: ); ! 219: ! 220: routine io_connect_add_client( ! 221: connection : io_connect_t; ! 222: in connect_to : io_connect_t ! 223: ); ! 224: ! 225: routine io_connect_set_properties( ! 226: connection : io_connect_t; ! 227: in properties : io_buf_ptr_t, physicalcopy ! 228: ); ! 229: ! 230: ! 231: routine io_connect_method_scalarI_scalarO( ! 232: connection : io_connect_t; ! 233: in selector : int; ! 234: in input : io_scalar_inband_t; ! 235: out output : io_scalar_inband_t, CountInOut ! 236: ); ! 237: ! 238: routine io_connect_method_scalarI_structureO( ! 239: connection : io_connect_t; ! 240: in selector : int; ! 241: in input : io_scalar_inband_t; ! 242: out output : io_struct_inband_t, CountInOut ! 243: ); ! 244: ! 245: routine io_connect_method_scalarI_structureI( ! 246: connection : io_connect_t; ! 247: in selector : int; ! 248: in input : io_scalar_inband_t; ! 249: in inputStruct : io_struct_inband_t ! 250: ); ! 251: ! 252: routine io_connect_method_structureI_structureO( ! 253: connection : io_connect_t; ! 254: in selector : int; ! 255: in input : io_struct_inband_t; ! 256: out output : io_struct_inband_t, CountInOut ! 257: ); ! 258: ! 259: routine io_registry_entry_get_path( ! 260: registry_entry : io_object_t; ! 261: in plane : io_name_t; ! 262: out path : io_string_t ! 263: ); ! 264: ! 265: routine io_registry_get_root_entry( ! 266: master_port : mach_port_t; ! 267: out root : io_object_t ! 268: ); ! 269: ! 270: routine io_registry_entry_set_properties( ! 271: registry_entry : io_object_t; ! 272: in properties : io_buf_ptr_t, physicalcopy ! 273: ); ! 274: ! 275: routine io_registry_entry_in_plane( ! 276: registry_entry : io_object_t; ! 277: in plane : io_name_t; ! 278: out inPlane : boolean_t ! 279: ); ! 280: ! 281: routine io_object_get_retain_count( ! 282: object : io_object_t; ! 283: out retainCount : int ! 284: ); ! 285: ! 286: routine io_service_get_busy_state( ! 287: service : io_object_t; ! 288: out busyState : int ! 289: ); ! 290: ! 291: routine io_service_wait_quiet( ! 292: service : io_object_t; ! 293: wait_time : mach_timespec_t ! 294: ); ! 295: ! 296: routine io_registry_entry_create_iterator( ! 297: registry_entry : io_object_t; ! 298: in plane : io_name_t; ! 299: in options : int; ! 300: out iterator : io_object_t ! 301: ); ! 302: ! 303: routine io_iterator_is_valid( ! 304: iterator : io_object_t; ! 305: out is_valid : boolean_t ! 306: ); ! 307: ! 308: routine io_make_matching( ! 309: master_port : mach_port_t; ! 310: in of_type : int; ! 311: in options : int; ! 312: in input : io_struct_inband_t; ! 313: out matching : io_string_t ! 314: ); ! 315: ! 316: routine io_catalog_send_data( ! 317: master_port : mach_port_t; ! 318: in flag : int; ! 319: in inData : io_buf_ptr_t ! 320: ); ! 321: ! 322: routine io_catalog_terminate( ! 323: master_port : mach_port_t; ! 324: in flag : int; ! 325: in name : io_name_t ! 326: ); ! 327: ! 328: routine io_catalog_get_data( ! 329: master_port : mach_port_t; ! 330: in flag : int; ! 331: out outData : io_buf_ptr_t ! 332: ); ! 333: ! 334: routine io_catalog_get_gen_count( ! 335: master_port : mach_port_t; ! 336: out genCount : int ! 337: ); ! 338: ! 339: routine io_catalog_module_loaded( ! 340: master_port : mach_port_t; ! 341: in name : io_name_t ! 342: ); ! 343: ! 344: routine io_catalog_reset( ! 345: master_port : mach_port_t; ! 346: in flag : int ! 347: ); ! 348: ! 349: routine io_service_request_probe( ! 350: service : io_object_t; ! 351: in options : int ! 352: ); ! 353: ! 354: routine io_registry_entry_get_name_in_plane( ! 355: registry_entry : io_object_t; ! 356: in plane : io_name_t; ! 357: out name : io_name_t ! 358: ); ! 359: ! 360: routine io_service_match_property_table( ! 361: service : io_object_t; ! 362: in matching : io_string_t; ! 363: out matches : boolean_t ! 364: ); ! 365: ! 366: routine io_async_method_scalarI_scalarO( ! 367: connection : io_connect_t; ! 368: in wake_port : mach_port_make_send_t; ! 369: in reference : io_async_ref_t; ! 370: in selector : int; ! 371: in input : io_scalar_inband_t; ! 372: out output : io_scalar_inband_t, CountInOut ! 373: ); ! 374: ! 375: routine io_async_method_scalarI_structureO( ! 376: connection : io_connect_t; ! 377: in wake_port : mach_port_make_send_t; ! 378: in reference : io_async_ref_t; ! 379: in selector : int; ! 380: in input : io_scalar_inband_t; ! 381: out output : io_struct_inband_t, CountInOut ! 382: ); ! 383: ! 384: routine io_async_method_scalarI_structureI( ! 385: connection : io_connect_t; ! 386: in wake_port : mach_port_make_send_t; ! 387: in reference : io_async_ref_t; ! 388: in selector : int; ! 389: in input : io_scalar_inband_t; ! 390: in inputStruct : io_struct_inband_t ! 391: ); ! 392: ! 393: routine io_async_method_structureI_structureO( ! 394: connection : io_connect_t; ! 395: in wake_port : mach_port_make_send_t; ! 396: in reference : io_async_ref_t; ! 397: in selector : int; ! 398: in input : io_struct_inband_t; ! 399: out output : io_struct_inband_t, CountInOut ! 400: ); ! 401: ! 402: routine io_service_add_notification( ! 403: master_port : mach_port_t; ! 404: in notification_type : io_name_t; ! 405: in matching : io_string_t; ! 406: in wake_port : mach_port_make_send_t; ! 407: in reference : io_async_ref_t; ! 408: out notification : io_object_t ! 409: ); ! 410: ! 411: routine io_service_add_interest_notification( ! 412: service : io_object_t; ! 413: in type_of_interest : io_name_t; ! 414: in wake_port : mach_port_make_send_t; ! 415: in reference : io_async_ref_t; ! 416: out notification : io_object_t ! 417: ); ! 418: ! 419: routine io_service_acknowledge_notification( ! 420: service : io_object_t; ! 421: in notify_ref : natural_t; ! 422: in response : natural_t ! 423: ); ! 424: ! 425: routine io_connect_get_notification_semaphore( ! 426: connection : io_connect_t; ! 427: in notification_type : natural_t; ! 428: out semaphore : semaphore_t ! 429: ); ! 430: ! 431: #endif ! 432: ! 433:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.