Annotation of XNU/osfmk/device/device.defs, revision 1.1.1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.