Annotation of driverkit/libDriver/driverServer.defs, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
                      7:  * Reserved.  This file contains Original Code and/or Modifications of
                      8:  * Original Code as defined in and that are subject to the Apple Public
                      9:  * Source License Version 1.1 (the "License").  You may not use this file
                     10:  * except in compliance with the License.  Please obtain a copy of the
                     11:  * License at http://www.apple.com/publicsource and read it before using
                     12:  * this file.
                     13:  * 
                     14:  * The Original Code and all software distributed under the License are
                     15:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT.  Please see the
                     19:  * License for the specific language governing rights and limitations
                     20:  * under the License.
                     21:  * 
                     22:  * @APPLE_LICENSE_HEADER_END@
                     23:  */
                     24: /*
                     25:  * File:       libDriver/driverServer.defs
                     26:  *
                     27:  * HISTORY
                     28:  * 19980312    [email protected]
                     29:  *             Removed CreateMachPort and added IOServerConnect.
                     30:  * 13-Jan-98   Martin Minow at Apple
                     31:  *     Added createMachPort
                     32:  */
                     33: subsystem
                     34: #if    KERNEL_SERVER && defined(MACH_IPC_FLAVOR)
                     35:          KernelServer
                     36: #endif KERNEL_SERVER
                     37:                        driverServer 2700; 
                     38: serverprefix   kern;
                     39: 
                     40: #include <mach/std_types.defs>
                     41: #include <mach/mach_types.defs>
                     42: 
                     43: #ifndef        MACH_IPC_FLAVOR
                     44: type unsigned                  = int;
                     45: #endif
                     46: type u_char                    = char;
                     47: type IOChannelCommand          = unsigned;
                     48: type IOChannelEnqueueOption    = unsigned;
                     49: type IOChannelDequeueOption    = unsigned;
                     50: type IODMADirection            = unsigned;
                     51: type IODescriptorCommand       = char;
                     52: type IODMAStatus               = int;
                     53: type IOUserStatus              = char;
                     54: type IODeviceNumber            = unsigned;
                     55: type IOObjectNumber            = unsigned;
                     56: type IOSlotId                  = unsigned;
                     57: type IODeviceType              = unsigned;
                     58: type BOOL                      = char;
                     59: type IOString                  = array[80] of char;
                     60: type IOParameterName           = array[64] of char;
                     61: type IOIntParameter            = array[*:512] of int;
                     62: type IOCharParameter           = array[*:512] of char;
                     63: type IOByteParameter           = array[*:2048] of char;
                     64: type IOCache                   = int;
                     65: type IOConfigData              = array[*:4096] of char;
                     66: 
                     67: /*
                     68:  * This type is needed to allow intran function of device ports.
                     69:  */
                     70: type IODevicePort = port_t
                     71:                intran: kernDevice_p convert_port_to_dev(IODevicePort)
                     72:                ;
                     73:                
                     74: import <driverkit/driverTypes.h>;
                     75: import <driverkit/driverTypesPrivate.h>;
                     76: simport <driverkit/driverServerXXX.h>;
                     77: 
                     78: skip;
                     79: skip;
                     80: skip;
                     81: skip;
                     82: skip;
                     83: skip;
                     84: skip;
                     85: skip;
                     86: skip;
                     87: skip;
                     88: skip;
                     89: skip;
                     90: skip;
                     91: skip;
                     92: skip;
                     93: skip;
                     94: skip;
                     95: skip;
                     96: 
                     97: /*
                     98:  * Lookup device by IOObjectNumber.
                     99:  */
                    100: routine _IOLookupByObjectNumber(
                    101:                 device_master          : host_t;
                    102:        in      objectNumber            : IOObjectNumber;
                    103:        out     deviceKind              : IOString;
                    104:        out     deviceName              : IOString);
                    105: 
                    106: /*
                    107:  * Lookup device by IOUnitName.
                    108:  */
                    109: routine _IOLookupByDeviceName(
                    110:                device_master           : host_t;
                    111:        in      deviceName              : IOString;
                    112:        out     objectNumber            : IOObjectNumber;
                    113:        out     deviceKind              : IOString);
                    114:        
                    115: /*
                    116:  * Get/set parameter RPCs.
                    117:  */
                    118: 
                    119: routine _IOGetIntValues(
                    120:                 device_master                  : host_t;
                    121:        in      objectNumber            : IOObjectNumber;
                    122:        in      parameterName           : IOParameterName;
                    123:        in      maxCount                : unsigned;
                    124:        out     parameterArray          : IOIntParameter);
                    125:        
                    126: routine _IOGetCharValues(
                    127:                 device_master                  : host_t;
                    128:        in      objectNumber            : IOObjectNumber;
                    129:        in      parameterName           : IOParameterName;
                    130:        in      maxCount                : unsigned;
                    131:        out     parameterArray          : IOCharParameter);
                    132:        
                    133: routine _IOSetIntValues(
                    134:                 device_master                  : host_priv_t;
                    135:        in      objectNumber            : IOObjectNumber;
                    136:        in      parameterName           : IOParameterName;
                    137:        in      parameterArray          : IOIntParameter);
                    138:        
                    139: routine _IOSetCharValues(
                    140:                 device_master                  : host_priv_t;
                    141:        in      objectNumber            : IOObjectNumber;
                    142:        in      parameterName           : IOParameterName;
                    143:        in      parameterArray          : IOCharParameter);
                    144: 
                    145: #if    defined(ppc)
                    146: 
                    147: type IOPPCMemoryRange          = struct[2] of int;     /* IORange */
                    148: type IOPPCMemoryMap            = array[*:4] of IOPPCMemoryRange;
                    149: type IOPPCInterruptList        = array[*:7] of int;
                    150: 
                    151: /*
                    152: ** Return the configuration information for the device.
                    153: */
                    154: routine _IOGetDeviceConfig(
                    155:                device                  : IODevicePort;
                    156:        out     intr_conf               : IOPPCInterruptList;           
                    157:        out     mem_conf                : IOPPCMemoryMap);
                    158: 
                    159: skip;          /* was _IOMapLockShmem */
                    160: skip;          /* was _IOUnMapLockShmem */
                    161: 
                    162: /*
                    163: ** Map the indicated device memory mapped region into the task address space.
                    164: ** The phys parameter is the physical address of the region.
                    165: ** To unmap, use vm_deallocate().
                    166: */
                    167: routine _IOMapDeviceMemory(
                    168:                device                  : IODevicePort;
                    169:        in      target_task             : task_t;
                    170:        in      phys                    : vm_offset_t;
                    171:        in      length                  : vm_size_t;
                    172:        inout   addr                    : vm_offset_t;
                    173:        in      anywhere                : BOOL;
                    174:        in      cache                   : IOCache);
                    175: 
                    176: #elif  defined(i386)
                    177: /*
                    178:  * These are EISA specific calls.
                    179:  */
                    180:  
                    181: type IOEISAPortRange           = struct[2] of int;
                    182: type IOEISAMemoryRange         = struct[2] of int;
                    183: type IOEISAInterrupt           = struct[1] of int;
                    184: type IOEISADMAChannel          = struct[1] of int;
                    185: 
                    186: type IOEISAPortMap             = array[*:20] of IOEISAPortRange;
                    187: type IOEISAMemoryMap           = array[*:9] of IOEISAMemoryRange;
                    188: type IOEISAInterruptList       = array[*:7] of IOEISAInterrupt;
                    189: type IOEISADMAChannelList      = array[*:4] of IOEISADMAChannel;
                    190: 
                    191: /*
                    192:  * Return the EISA configuration
                    193:  * information for the device.
                    194:  */
                    195: 
                    196: routine _IOGetEISADeviceConfig(
                    197:                device                  : IODevicePort;
                    198:        out     intr_conf               : IOEISAInterruptList;
                    199:        out     dma_conf                : IOEISADMAChannelList;
                    200:        out     io_conf                 : IOEISAPortMap;
                    201:        out     phys_conf               : IOEISAMemoryMap);
                    202: 
                    203: /*
                    204:  * Enable *ALL* of the IO registers
                    205:  * for the device so that the thread
                    206:  * can access (read and write) them.
                    207:  */
                    208: 
                    209: routine _IOMapEISADevicePorts(
                    210:                device                  : IODevicePort;
                    211:        in      thread                  : thread_t);
                    212: 
                    213: /*
                    214:  * Revoke access to the IO registers
                    215:  * for the device so that the thread
                    216:  * can no longer access them.  Note:
                    217:  * destroying a thread accomplishes this
                    218:  * automatically.
                    219:  */
                    220: 
                    221: routine _IOUnMapEISADevicePorts(
                    222:                device                  : IODevicePort;
                    223:        in      thread                  : thread_t);
                    224: 
                    225: /*
                    226:  * Map the indicated device memory mapped
                    227:  * region into the task address space.  The
                    228:  * phys parameter is the physical address of
                    229:  * the region.  To unmap, use vm_deallocate().
                    230:  */
                    231: 
                    232: routine _IOMapEISADeviceMemory(
                    233:                device                  : IODevicePort;
                    234:        in      target_task             : task_t;
                    235:        in      phys                    : vm_offset_t;
                    236:        in      length                  : vm_size_t;
                    237:        inout   addr                    : vm_offset_t;
                    238:        in      anywhere                : BOOL;
                    239:        in      cache                   : IOCache);
                    240: 
                    241: #elif  defined(hppa)
                    242: 
                    243: type IOHPPAMemoryRange         = struct[2] of int;     /* IORange */
                    244: type IOHPPAMemoryMap           = array[*:4] of IOHPPAMemoryRange;
                    245: type IOHPPAInterruptList       = array[*:7] of int;
                    246: 
                    247: /*
                    248: ** Return the configuration information for the device.
                    249: */
                    250: routine _IOGetDeviceConfig(
                    251:                device                  : IODevicePort;
                    252:        out     intr_conf               : IOHPPAInterruptList;          
                    253:        out     mem_conf                : IOHPPAMemoryMap);
                    254: 
                    255: routine _IOMapLockShmem(
                    256:                 device                 : IODevicePort;
                    257:        in      task                    : task_t;
                    258:        in      size                    : vm_size_t;
                    259:        inout   addr                    : vm_offset_t );
                    260: 
                    261: routine _IOUnMapLockShmem(
                    262:                 device                 : IODevicePort;
                    263:        in      task                    : task_t;
                    264:        in      size                    : vm_size_t;
                    265:        in      addr                    : vm_offset_t );
                    266: 
                    267: /*
                    268: ** Map the indicated device memory mapped region into the task address space.
                    269: ** The phys parameter is the physical address of the region.
                    270: ** To unmap, use vm_deallocate().
                    271: */
                    272: routine _IOMapDeviceMemory(
                    273:                device                  : IODevicePort;
                    274:        in      target_task             : task_t;
                    275:        in      phys                    : vm_offset_t;
                    276:        in      length                  : vm_size_t;
                    277:        inout   addr                    : vm_offset_t;
                    278:        in      anywhere                : BOOL;
                    279:        in      cache                   : IOCache);
                    280: 
                    281: #elif  defined(sparc)
                    282: 
                    283: type IOSPARCMemoryRange                = struct[2] of int;     /* IORange */
                    284: type IOSPARCMemoryMap          = array[*:4] of IOSPARCMemoryRange;
                    285: type IOSPARCInterruptList      = array[*:7] of int;
                    286: 
                    287: /*
                    288: ** Return the configuration information for the device.
                    289: */
                    290: routine _IOGetDeviceConfig(
                    291:                device                  : IODevicePort;
                    292:        out     intr_conf               : IOSPARCInterruptList;         
                    293:        out     mem_conf                : IOSPARCMemoryMap);
                    294: 
                    295: routine _IOMapLockShmem(
                    296:                 device                 : IODevicePort;
                    297:        in      task                    : task_t;
                    298:        in      size                    : vm_size_t;
                    299:        inout   addr                    : vm_offset_t );
                    300: 
                    301: routine _IOUnMapLockShmem(
                    302:                 device                 : IODevicePort;
                    303:        in      task                    : task_t;
                    304:        in      size                    : vm_size_t;
                    305:        in      addr                    : vm_offset_t );
                    306: 
                    307: /*
                    308: ** Map the indicated device memory mapped region into the task address space.
                    309: ** The phys parameter is the physical address of the region.
                    310: ** To unmap, use vm_deallocate().
                    311: */
                    312: routine _IOMapSparcDeviceMemory(
                    313:                device                  : IODevicePort;
                    314:        in      target_task             : task_t;
                    315:        in      phys                    : vm_offset_t;
                    316:        in      length                  : vm_size_t;
                    317:        inout   addr                    : vm_offset_t;
                    318:        in      anywhere                : BOOL;
                    319:        in      cache                   : IOCache);
                    320: 
                    321: 
                    322: #else
                    323: skip;
                    324: skip;
                    325: skip;
                    326: skip;
                    327: #endif
                    328: 
                    329: skip;
                    330: skip;
                    331: 
                    332: /*
                    333:  * Create an IODeviceDescription for the config table data passed in
                    334:  * configData, and probe the appropriate device class. Returns IO_R_SUCCESS
                    335:  * if a driver was successfully instantiated, else returns IO_R_NO_DEVICE.
                    336:  */
                    337: routine _IOProbeDriver(
                    338:                device_master           : host_t;
                    339:        in      configTable             : IOConfigData);
                    340: 
                    341: /*
                    342:  * Obtain the current system config table data.
                    343:  */
                    344: routine _IOGetSystemConfig(
                    345:                device_master           : host_t;
                    346:        in      maxDataSize             : unsigned;
                    347:        out     configTable             : IOConfigData);
                    348: 
                    349: /*
                    350:  * Unload a driver.
                    351:  */
                    352: routine _IOUnloadDriver(
                    353:                device_master           : host_t;
                    354:        in      configTable             : IOConfigData);
                    355: 
                    356: /*
                    357:  * Get the current config table for driver 'n'.
                    358:  */
                    359: routine _IOGetDriverConfig(
                    360:                device_master           : host_t;
                    361:        in      driverNum               : unsigned;
                    362:        in      maxDataSize             : unsigned;
                    363:        out     configTable             : IOConfigData);
                    364: 
                    365: type PMReturn          = int;
                    366: type PMDeviceID                = struct [2] of short;
                    367: type PMPowerState      = int;
                    368: type PMPowerEvent      = int;
                    369: type PMPowerStatus     = struct [3] of int;
                    370: type PMPowerManagementState = int;
                    371: 
                    372: import <kern/power.h>;
                    373: 
                    374: /*
                    375:  * Set the power state of a device or the entire computer.
                    376:  */
                    377: 
                    378: routine _PMSetPowerState(
                    379:                 host                   : host_t;
                    380:        in      device                  : PMDeviceID;
                    381:        in      state                   : PMPowerState);
                    382: 
                    383: routine _PMGetPowerEvent(
                    384:                host                    : host_t;
                    385:        out     event                   : PMPowerEvent);
                    386: 
                    387: routine _PMGetPowerStatus(
                    388:                host                    : host_t;
                    389:        out     status                  : PMPowerStatus);
                    390:        
                    391: routine _PMSetPowerManagement(
                    392:                host                    : host_t;
                    393:                device                  : PMDeviceID;
                    394:                state                   : PMPowerManagementState);
                    395:                                                        
                    396: routine  _PMRestoreDefaults(
                    397:                host                    : host_t);
                    398: 
                    399: routine _IOCallDeviceMethod(
                    400:                 device_master                  : host_priv_t;
                    401:        in      objectNumber            : IOObjectNumber;
                    402:        in      parameterName           : IOString;
                    403:        in      inputParams             : IOByteParameter;
                    404:        inout   maxOutput               : unsigned;
                    405:         out    outputParams            : IOByteParameter);
                    406: 
                    407: routine _IOServerConnect(
                    408:                device_master           : host_t;
                    409:        in      objectNumber            : IOObjectNumber;
                    410:        in      clientTask              : port_t;
                    411:        out     serverPort              : port_t);
                    412: 
                    413: routine _IOLookUpByStringPropertyList (
                    414:                device_master           : host_t;
                    415:        in      values                  : IOByteParameter;
                    416:        out     results                 : IOByteParameter;
                    417:        in      maxLength               : unsigned);
                    418: 
                    419: routine _IOGetStringPropertyList (
                    420:                device_master           : host_t;
                    421:        in      objectNumber            : IOObjectNumber;
                    422:        in      names                   : IOByteParameter;
                    423:        out     results                 : IOByteParameter;
                    424:        in      maxLength               : unsigned);
                    425: 
                    426: routine _IOGetByteProperty (
                    427:                device_master           : host_t;
                    428:        in      objectNumber            : IOObjectNumber;
                    429:        in      name                    : IOByteParameter;
                    430:        out     results                 : IOByteParameter;
                    431:        in      maxLength               : unsigned);
                    432: 
                    433: 

unix.superglobalmegacorp.com

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