Annotation of kernel/bsd/dev/ppc/drvUSBCMD/rhap_local.h, 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: typedef UInt16 UnitNumber;
                     26: 
                     27: typedef UInt32 DriverOpenCount;
                     28: 
                     29: typedef SInt16 DriverRefNum;
                     30: 
                     31: typedef SInt16 DriverFlags;
                     32: 
                     33: typedef UInt32 IOCommandCode;
                     34: 
                     35: 
                     36: enum {
                     37:        kOpenCommand                            = 0,
                     38:        kCloseCommand                           = 1,
                     39:        kReadCommand                            = 2,
                     40:        kWriteCommand                           = 3,
                     41:        kControlCommand                         = 4,
                     42:        kStatusCommand                          = 5,
                     43:        kKillIOCommand                          = 6,
                     44:        kInitializeCommand                      = 7,                                                    /* init driver and device*/
                     45:        kFinalizeCommand                        = 8,                                                    /* shutdown driver and device*/
                     46:        kReplaceCommand                         = 9,                                                    /* replace an old driver*/
                     47:        kSupersededCommand                      = 10                                                    /* prepare to be replaced by a new driver*/
                     48: };
                     49: //naga
                     50: //typedef KernelID IOCommandID;
                     51: 
                     52: typedef UInt32 IOCommandKind;
                     53: //naga
                     54: typedef int RegEntryID;
                     55: 
                     56: enum {
                     57:        kSynchronousIOCommandKind       = 0x00000001,
                     58:        kAsynchronousIOCommandKind      = 0x00000002,
                     59:        kImmediateIOCommandKind         = 0x00000004
                     60: };
                     61: 
                     62: struct DriverInitInfo {
                     63:        DriverRefNum                                    refNum;
                     64:        RegEntryID                                              deviceEntry;
                     65: };
                     66: struct DriverFinalInfo {
                     67:        DriverRefNum                                    refNum;
                     68:        RegEntryID                                              deviceEntry;
                     69: };
                     70: typedef struct DriverInitInfo DriverInitInfo, *DriverInitInfoPtr;
                     71: 
                     72: typedef struct DriverInitInfo DriverReplaceInfo, *DriverReplaceInfoPtr;
                     73: 
                     74: typedef struct DriverFinalInfo DriverFinalInfo, *DriverFinalInfoPtr;
                     75: 
                     76: typedef struct DriverFinalInfo DriverSupersededInfo, *DriverSupersededInfoPtr;
                     77: 
                     78: /* Contents are command specific*/
                     79: union IOCommandContents {
                     80:        //nagaParmBlkPtr                                                pb;
                     81:        DriverInitInfoPtr                               initialInfo;
                     82:        DriverFinalInfoPtr                              finalInfo;
                     83:        DriverReplaceInfoPtr                    replaceInfo;
                     84:        DriverSupersededInfoPtr                 supersededInfo;
                     85: };
                     86: typedef union IOCommandContents IOCommandContents;
                     87: 
                     88: //nagatypedef OSErr (DriverEntryPoint)(AddressSpaceID SpaceID, IOCommandID CommandID, IOCommandContents Contents, IOCommandCode Code, IOCommandKind Kind);
                     89: 
                     90: /* Driver Typing Information Used to Match Drivers With Devices */
                     91: struct DriverType {
                     92:        Str31                                                   nameInfoStr;                            /* Driver Name/Info String*/
                     93:        NumVersion                                              version;                                        /* Driver Version Number*/
                     94: };
                     95: typedef struct DriverType DriverType, *DriverTypePtr;
                     96: 
                     97: /* OS Runtime Information Used to Setup and Maintain a Driver's Runtime Environment */
                     98: typedef OptionBits RuntimeOptions;
                     99: 
                    100: 
                    101: enum {
                    102:        kDriverIsLoadedUponDiscovery = 0x00000001,                                      /* auto-load driver when discovered*/
                    103:        kDriverIsOpenedUponLoad         = 0x00000002,                                   /* auto-open driver when loaded*/
                    104:        kDriverIsUnderExpertControl     = 0x00000004,                                   /* I/O expert handles loads/opens*/
                    105:        kDriverIsConcurrent                     = 0x00000008,                                   /* supports concurrent requests*/
                    106:        kDriverQueuesIOPB                       = 0x00000010                                    /* device manager doesn't queue IOPB*/
                    107: };
                    108: 
                    109: struct DriverOSRuntime {
                    110:        RuntimeOptions                                  driverRuntime;                          /* Options for OS Runtime*/
                    111:        Str31                                                   driverName;                                     /* Driver's name to the OS*/
                    112:        UInt32                                                  driverDescReserved[8];          /* Reserved area*/
                    113: };
                    114: typedef struct DriverOSRuntime DriverOSRuntime, *DriverOSRuntimePtr;
                    115: 
                    116: /* OS Service Information Used To Declare What APIs a Driver Supports */
                    117: typedef UInt32 ServiceCount;
                    118: 
                    119: struct DriverServiceInfo {
                    120:        OSType                                                  serviceCategory;                        /* Service Category Name*/
                    121:        OSType                                                  serviceType;                            /* Type within Category*/
                    122:        NumVersion                                              serviceVersion;                         /* Version of service*/
                    123: };
                    124: typedef struct DriverServiceInfo DriverServiceInfo, *DriverServiceInfoPtr;
                    125: 
                    126: struct DriverOSService {
                    127:        ServiceCount                                    nServices;                                      /* Number of Services Supported*/
                    128:        DriverServiceInfo                               service[1];                                     /* The List of Services (at least one)*/
                    129: };
                    130: typedef struct DriverOSService DriverOSService, *DriverOSServicePtr;
                    131: 
                    132: /* Categories */
                    133: 
                    134: enum {
                    135:        kServiceCategoryDisplay         = 'disp',                                               /* Display Manager*/
                    136:        kServiceCategoryOpenTransport = 'otan',                                         /* Open Transport*/
                    137:        kServiceCategoryBlockStorage = 'blok',                                          /* Block Storage*/
                    138:        kServiceCategoryNdrvDriver      = 'ndrv',                                               /* Generic Native Driver*/
                    139:        kServiceCategoryScsiSIM         = 'scsi'
                    140: };
                    141: 
                    142: /* Ndrv ServiceCategory Types */
                    143: enum {
                    144:        kNdrvTypeIsGeneric                      = 'genr',                                               /* generic*/
                    145:        kNdrvTypeIsVideo                        = 'vido',                                               /* video*/
                    146:        kNdrvTypeIsBlockStorage         = 'blok',                                               /* block storage*/
                    147:        kNdrvTypeIsNetworking           = 'netw',                                               /* networking*/
                    148:        kNdrvTypeIsSerial                       = 'serl',                                               /* serial*/
                    149:        kNdrvTypeIsSound                        = 'sond',                                               /* sound*/
                    150:        kNdrvTypeIsBusBridge            = 'brdg'
                    151: };
                    152: 
                    153: /*     The Driver Description */
                    154: enum {
                    155:        kTheDescriptionSignature        = 'mtej'
                    156: };
                    157: 
                    158: typedef UInt32 DriverDescVersion;
                    159: 
                    160: 
                    161: enum {
                    162:        kInitialDriverDescriptor        = 0
                    163: };
                    164: 
                    165: struct DriverDescription {
                    166:        OSType                                                  driverDescSignature;            /* Signature field of this structure*/
                    167:        DriverDescVersion                               driverDescVersion;                      /* Version of this data structure*/
                    168:        DriverType                                              driverType;                                     /* Type of Driver*/
                    169:        DriverOSRuntime                                 driverOSRuntimeInfo;            /* OS Runtime Requirements of Driver*/
                    170:        DriverOSService                                 driverServices;                         /* Apple Service API Membership*/
                    171: };
                    172: typedef struct DriverDescription DriverDescription, *DriverDescriptionPtr;
                    173: 
                    174: #if 0 
                    175: /* Driver Loader API */
                    176: #define DECLARE_DRIVERDESCRIPTION(N_ADDITIONAL_SERVICES)  \
                    177:        struct {                                        \
                    178:        DriverDescription       fixed;  \
                    179:        DriverServiceInfo       additional_service[N_ADDITIONAL_SERVICES-1]; \
                    180:        };
                    181: extern SInt16 HigherDriverVersion(NumVersion *driverVersion1, NumVersion *driverVersion2);
                    182: extern OSErr VerifyFragmentAsDriver(CFragConnectionID fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescriptionPtr *driverDesc);
                    183: extern OSErr GetDriverMemoryFragment(Ptr memAddr, long length, ConstStr63Param fragName, CFragConnectionID *fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescriptionPtr *driverDesc);
                    184: extern OSErr GetDriverDiskFragment(FSSpecPtr fragmentSpec, CFragConnectionID *fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescriptionPtr *driverDesc);
                    185: extern OSErr InstallDriverFromFragment(CFragConnectionID fragmentConnID, RegEntryIDPtr device, UnitNumber beginningUnit, UnitNumber endingUnit, DriverRefNum *refNum);
                    186: extern OSErr InstallDriverFromFile(FSSpecPtr fragmentSpec, RegEntryIDPtr device, UnitNumber beginningUnit, UnitNumber endingUnit, DriverRefNum *refNum);
                    187: extern OSErr InstallDriverFromMemory(Ptr memory, long length, ConstStr63Param fragName, RegEntryIDPtr device, UnitNumber beginningUnit, UnitNumber endingUnit, DriverRefNum *refNum);
                    188: extern OSErr InstallDriverFromDisk(Ptr theDriverName, RegEntryIDPtr theDevice, UnitNumber theBeginningUnit, UnitNumber theEndingUnit, DriverRefNum *theRefNum);
                    189: extern OSErr FindDriversForDevice(RegEntryIDPtr device, FSSpec *fragmentSpec, DriverDescription *fileDriverDesc, Ptr *memAddr, long *length, StringPtr fragName, DriverDescription *memDriverDesc);
                    190: extern OSErr FindDriverCandidates(RegEntryIDPtr deviceID, Ptr *propBasedDriver, RegPropertyValueSize *propBasedDriverSize, StringPtr deviceName, DriverType *propBasedDriverType, Boolean *gotPropBasedDriver, FileBasedDriverRecordPtr fileBasedDrivers, ItemCount *nFileBasedDrivers);
                    191: extern OSErr ScanDriverCandidates(RegEntryIDPtr deviceID, FileBasedDriverRecordPtr fileBasedDrivers, ItemCount nFileBasedDrivers, FileBasedDriverRecordPtr matchingDrivers, ItemCount *nMatchingDrivers);
                    192: extern OSErr GetDriverForDevice(RegEntryIDPtr device, CFragConnectionID *fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescriptionPtr *driverDesc);
                    193: extern OSErr InstallDriverForDevice(RegEntryIDPtr device, UnitNumber beginningUnit, UnitNumber endingUnit, DriverRefNum *refNum);
                    194: extern OSErr SetDriverClosureMemory(CFragConnectionID fragmentConnID, Boolean holdDriverMemory);
                    195: extern OSErr ReplaceDriverWithFragment(DriverRefNum theRefNum, CFragConnectionID fragmentConnID);
                    196: extern OSErr GetDriverInformation(DriverRefNum refNum, UnitNumber *unitNum, DriverFlags *flags, DriverOpenCount *count, StringPtr name, RegEntryID *device, CFragHFSLocator *driverLoadLocation, CFragConnectionID *fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescription *driverDesc);
                    197: extern OSErr OpenInstalledDriver(DriverRefNum refNum, SInt8 ioPermission);
                    198: extern OSErr RenameDriver(DriverRefNum refNum, StringPtr newDriverName);
                    199: extern OSErr RemoveDriver(DriverRefNum refNum, Boolean immediate);
                    200: extern OSErr LookupDrivers(UnitNumber beginningUnit, UnitNumber endingUnit, Boolean emptyUnits, ItemCount *returnedRefNums, DriverRefNum *refNums);
                    201: extern UnitNumber HighestUnitNumber(void);
                    202: extern OSErr DriverGestaltOn(DriverRefNum refNum);
                    203: extern OSErr DriverGestaltOff(DriverRefNum refNum);
                    204: extern Boolean DriverGestaltIsOn(DriverFlags flags);
                    205: 
                    206: enum {
                    207:        uppControlPanelDefProcInfo = kPascalStackBased
                    208:                 | RESULT_SIZE(SIZE_CODE(sizeof(long)))
                    209:                 | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short)))
                    210:                 | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
                    211:                 | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short)))
                    212:                 | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(short)))
                    213:                 | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(EventRecord*)))
                    214:                 | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(long)))
                    215:                 | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(DialogPtr)))
                    216: };
                    217: #endif

unix.superglobalmegacorp.com

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