Annotation of XNU/osfmk/device/device.defs, revision 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.