Annotation of kernel/bsd/dev/ppc/drvUSBCMD/devices.h, revision 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: /*
        !            26:        File:           Devices.h
        !            27:  
        !            28:        Contains:       Device Manager Interfaces.
        !            29:  
        !            30:        Version:        Technology:     PowerSurge 1.0.2.
        !            31:                                Package:        Universal Interfaces 2.1.2 on ETO #20
        !            32:  
        !            33:        Copyright:      � 1984-1995 by Apple Computer, Inc.
        !            34:                                All rights reserved.
        !            35:  
        !            36:        Bugs?:          If you find a problem with this file, use the Apple Bug Reporter
        !            37:                                stack.  Include the file and version information (from above)
        !            38:                                in the problem description and send to:
        !            39:                                        Internet:       [email protected]
        !            40:                                        AppleLink:      APPLE.BUGS
        !            41:  
        !            42: */
        !            43: 
        !            44: #ifndef __DEVICES__
        !            45: #define __DEVICES__
        !            46: 
        !            47: 
        !            48: #ifndef __OSUTILS__
        !            49: //naga#include <OSUtils.h>
        !            50: #endif
        !            51: /*     #include <Types.h>                                                                                      */
        !            52: /*             #include <ConditionalMacros.h>                                                  */
        !            53: /*     #include <MixedMode.h>                                                                          */
        !            54: /*     #include <Memory.h>                                                                                     */
        !            55: 
        !            56: #ifndef __FILES__
        !            57: //naga#include <Files.h>
        !            58: #endif
        !            59: /*     #include <Finder.h>                                                                                     */
        !            60: 
        !            61: #ifndef __QUICKDRAW__
        !            62: //naga#include <Quickdraw.h>
        !            63: #endif
        !            64: /*     #include <QuickdrawText.h>                                                                      */
        !            65: 
        !            66: #ifndef __EVENTS__
        !            67: //naga#include <Events.h>
        !            68: #endif
        !            69: 
        !            70: #ifndef __DIALOGS__
        !            71: //#include <Dialogs.h>
        !            72: #endif
        !            73: /*     #include <Errors.h>                                                                                     */
        !            74: /*     #include <Menus.h>                                                                                      */
        !            75: /*     #include <Controls.h>                                                                           */
        !            76: /*     #include <Windows.h>                                                                            */
        !            77: /*     #include <TextEdit.h>                                                                           */
        !            78: 
        !            79: #ifndef __KERNEL__
        !            80: //naga#include <Kernel.h>
        !            81: #endif
        !            82: 
        !            83: #ifndef __NAMEREGISTRY__
        !            84: //naga#include <NameRegistry.h>
        !            85: #endif
        !            86: /*naga
        !            87: #ifndef __CODEFRAGMENTS__
        !            88: #include <CodeFragments.h>
        !            89: #endif
        !            90: 
        !            91: #ifdef __cplusplus
        !            92: extern "C" {
        !            93: #endif
        !            94: 
        !            95: #if PRAGMA_ALIGN_SUPPORTED
        !            96: #pragma options align=mac68k
        !            97: #endif
        !            98: 
        !            99: #if PRAGMA_IMPORT_SUPPORTED
        !           100: #pragma import on
        !           101: #endif
        !           102:  naga*/
        !           103: 
        !           104: enum {
        !           105:        chooserInitMsg                          = 11,                                                   /* the user selected this device package */
        !           106:        newSelMsg                                       = 12,                                                   /* the user made new device selections */
        !           107:        fillListMsg                                     = 13,                                                   /* fill the device list with choices */
        !           108:        getSelMsg                                       = 14,                                                   /* mark one or more choices as selected */
        !           109:        selectMsg                                       = 15,                                                   /* the user made a selection */
        !           110:        deselectMsg                                     = 16,                                                   /* the user canceled a selection */
        !           111:        terminateMsg                            = 17,                                                   /* allows device package to clean up */
        !           112:        buttonMsg                                       = 19                                                    /* the user selected a button */
        !           113: };
        !           114: 
        !           115: /* Values of the 'caller' parameter to a Chooser device package */
        !           116: enum {
        !           117:        chooserID                                       = 1
        !           118: };
        !           119: 
        !           120: /* Values of the 'message' parameter to a Control Panel 'cdev' */
        !           121: enum {
        !           122:        initDev                                         = 0,                                                    /*Time for cdev to initialize itself*/
        !           123:        hitDev                                          = 1,                                                    /*Hit on one of my items*/
        !           124:        closeDev                                        = 2,                                                    /*Close yourself*/
        !           125:        nulDev                                          = 3,                                                    /*Null event*/
        !           126:        updateDev                                       = 4,                                                    /*Update event*/
        !           127:        activDev                                        = 5,                                                    /*Activate event*/
        !           128:        deactivDev                                      = 6,                                                    /*Deactivate event*/
        !           129:        keyEvtDev                                       = 7,                                                    /*Key down/auto key*/
        !           130:        macDev                                          = 8,                                                    /*Decide whether or not to show up*/
        !           131:        undoDev                                         = 9,
        !           132:        cutDev                                          = 10,
        !           133:        copyDev                                         = 11,
        !           134:        pasteDev                                        = 12,
        !           135:        clearDev                                        = 13,
        !           136:        cursorDev                                       = 14
        !           137: };
        !           138: 
        !           139: /* Special values a Control Panel 'cdev' can return */
        !           140: enum {
        !           141:        cdevGenErr                                      = -1,                                                   /*General error; gray cdev w/o alert*/
        !           142:        cdevMemErr                                      = 0,                                                    /*Memory shortfall; alert user please*/
        !           143:        cdevResErr                                      = 1,                                                    /*Couldn't get a needed resource; alert*/
        !           144:        cdevUnset                                       = 3                                                             /* cdevValue is initialized to this*/
        !           145: };
        !           146: 
        !           147: /* Values of the 'message' parameter to a Monitor 'mntr' */
        !           148: enum {
        !           149:        initMsg                                         = 1,                                                    /*initialization*/
        !           150:        okMsg                                           = 2,                                                    /*user clicked OK button*/
        !           151:        cancelMsg                                       = 3,                                                    /*user clicked Cancel button*/
        !           152:        hitMsg                                          = 4,                                                    /*user clicked control in Options dialog*/
        !           153:        nulMsg                                          = 5,                                                    /*periodic event*/
        !           154:        updateMsg                                       = 6,                                                    /*update event*/
        !           155:        activateMsg                                     = 7,                                                    /*not used*/
        !           156:        deactivateMsg                           = 8,                                                    /*not used*/
        !           157:        keyEvtMsg                                       = 9,                                                    /*keyboard event*/
        !           158:        superMsg                                        = 10,                                                   /*show superuser controls*/
        !           159:        normalMsg                                       = 11,                                                   /*show only normal controls*/
        !           160:        startupMsg                                      = 12                                                    /*code has been loaded*/
        !           161: };
        !           162: 
        !           163: /* control codes for DeskAccessories */
        !           164: enum {
        !           165:        goodbye                                         = -1,                                                   /* heap being reinitialized */
        !           166:        killCode                                        = 1,                                                    /* KillIO requested */
        !           167:        accEvent                                        = 64,                                                   /* handle an event */
        !           168:        accRun                                          = 65,                                                   /* time for periodic action */
        !           169:        accCursor                                       = 66,                                                   /* change cursor shape */
        !           170:        accMenu                                         = 67,                                                   /* handle menu item */
        !           171:        accUndo                                         = 68,                                                   /* handle undo command */
        !           172:        accCut                                          = 70,                                                   /* handle cut command */
        !           173:        accCopy                                         = 71,                                                   /* handle copy command */
        !           174:        accPaste                                        = 72,                                                   /* handle paste command */
        !           175:        accClear                                        = 73                                                    /* handle clear command */
        !           176: };
        !           177: 
        !           178: /* Control/Status Call Codes */
        !           179: enum {
        !           180:        drvStsCode                                      = 8,                                                    /* status call code for drive status */
        !           181:        ejectCode                                       = 7,                                                    /* control call eject code */
        !           182:        tgBuffCode                                      = 8                                                             /* set tag buffer code */
        !           183: };
        !           184: 
        !           185: /* miscellaneous Device Manager constants */
        !           186: enum {
        !           187:        ioInProgress                            = 1,                                                    /* predefined value of ioResult while I/O is pending */
        !           188:        aRdCmd                                          = 2,                                                    /* low byte of ioTrap for Read calls */
        !           189:        aWrCmd                                          = 3,                                                    /* low byte of ioTrap for Write calls */
        !           190:        asyncTrpBit                                     = 10,                                                   /* trap word modifier */
        !           191:        noQueueBit                                      = 9                                                             /* trap word modifier */
        !           192: };
        !           193: 
        !           194: /* flags used in the driver header and device control entry */
        !           195: enum {
        !           196:        dReadEnable                                     = 0,                                                    /* set if driver responds to read requests */
        !           197:        dWritEnable                                     = 1,                                                    /* set if driver responds to write requests */
        !           198:        dCtlEnable                                      = 2,                                                    /* set if driver responds to control requests */
        !           199:        dStatEnable                                     = 3,                                                    /* set if driver responds to status requests */
        !           200:        dNeedGoodBye                            = 4,                                                    /* set if driver needs time for performing periodic tasks */
        !           201:        dNeedTime                                       = 5,                                                    /* set if driver needs time for performing periodic tasks */
        !           202:        dNeedLock                                       = 6,                                                    /* set if driver must be locked in memory as soon as it is opened */
        !           203:        dNeedLockMask                           = 0x4000,                                               /* set if driver must be locked in memory as soon as it is opened */
        !           204:        dNeedTimeMask                           = 0x2000,                                               /* set if driver needs time for performing periodic tasks */
        !           205:        dNeedGoodByeMask                        = 0x1000,                                               /* set if driver needs to be called before the application heap is initialized */
        !           206:        dStatEnableMask                         = 0x0800,                                               /* set if driver responds to status requests */
        !           207:        dCtlEnableMask                          = 0x0400,                                               /* set if driver responds to control requests */
        !           208:        dWritEnableMask                         = 0x0200,                                               /* set if driver responds to write requests */
        !           209:        dReadEnableMask                         = 0x0100                                                /* set if driver responds to read requests */
        !           210: };
        !           211: 
        !           212: /* run-time flags used in the device control entry */
        !           213: enum {
        !           214:        dOpened                                         = 5,                                                    /* driver is open */
        !           215:        dRAMBased                                       = 6,                                                    /* dCtlDriver is a handle (1) or pointer (0) */
        !           216:        drvrActive                                      = 7,                                                    /* driver is currently processing a request */
        !           217:        drvrActiveMask                          = 0x0080,                                               /* driver is currently processing a request */
        !           218:        dRAMBasedMask                           = 0x0040,                                               /* dCtlDriver is a handle (1) or pointer (0) */
        !           219:        dOpenedMask                                     = 0x0020                                                /* driver is open */
        !           220: };
        !           221: 
        !           222: struct DRVRHeader {
        !           223:        short                                                   drvrFlags;
        !           224:        short                                                   drvrDelay;
        !           225:        short                                                   drvrEMask;
        !           226:        short                                                   drvrMenu;
        !           227:        short                                                   drvrOpen;
        !           228:        short                                                   drvrPrime;
        !           229:        short                                                   drvrCtl;
        !           230:        short                                                   drvrStatus;
        !           231:        short                                                   drvrClose;
        !           232:        unsigned char                                   drvrName[1];
        !           233: };
        !           234: typedef struct DRVRHeader DRVRHeader;
        !           235: 
        !           236: typedef DRVRHeader *DRVRHeaderPtr, **DRVRHeaderHandle;
        !           237: 
        !           238: struct DCtlEntry {
        !           239:        Ptr                                                             dCtlDriver;
        !           240:        short                                                   dCtlFlags;
        !           241:        QHdr                                                    dCtlQHdr;
        !           242:        long                                                    dCtlPosition;
        !           243:        Handle                                                  dCtlStorage;
        !           244:        short                                                   dCtlRefNum;
        !           245:        long                                                    dCtlCurTicks;
        !           246: //naga WindowPtr                                               dCtlWindow;
        !           247:        short                                                   dCtlDelay;
        !           248:        short                                                   dCtlEMask;
        !           249:        short                                                   dCtlMenu;
        !           250: };
        !           251: typedef struct DCtlEntry DCtlEntry;
        !           252: 
        !           253: typedef DCtlEntry *DCtlPtr, **DCtlHandle;
        !           254: 
        !           255: struct AuxDCE {
        !           256:        Ptr                                                             dCtlDriver;
        !           257:        short                                                   dCtlFlags;
        !           258:        QHdr                                                    dCtlQHdr;
        !           259:        long                                                    dCtlPosition;
        !           260:        Handle                                                  dCtlStorage;
        !           261:        short                                                   dCtlRefNum;
        !           262:        long                                                    dCtlCurTicks;
        !           263:        //nagaGrafPtr                                                   dCtlWindow;
        !           264:        short                                                   dCtlDelay;
        !           265:        short                                                   dCtlEMask;
        !           266:        short                                                   dCtlMenu;
        !           267:        SInt8                                                   dCtlSlot;
        !           268:        SInt8                                                   dCtlSlotId;
        !           269:        long                                                    dCtlDevBase;
        !           270:        Ptr                                                             dCtlOwner;
        !           271:        SInt8                                                   dCtlExtDev;
        !           272:        SInt8                                                   fillByte;
        !           273:        UInt32                                                  dCtlNodeID;
        !           274: };
        !           275: typedef struct AuxDCE AuxDCE;
        !           276: 
        !           277: typedef AuxDCE *AuxDCEPtr, **AuxDCEHandle;
        !           278: 
        !           279: typedef UInt16 UnitNumber;
        !           280: 
        !           281: typedef UInt32 DriverOpenCount;
        !           282: 
        !           283: typedef SInt16 DriverRefNum;
        !           284: 
        !           285: typedef SInt16 DriverFlags;
        !           286: 
        !           287: typedef UInt32 IOCommandCode;
        !           288: 
        !           289: 
        !           290: enum {
        !           291:        kOpenCommand                            = 0,
        !           292:        kCloseCommand                           = 1,
        !           293:        kReadCommand                            = 2,
        !           294:        kWriteCommand                           = 3,
        !           295:        kControlCommand                         = 4,
        !           296:        kStatusCommand                          = 5,
        !           297:        kKillIOCommand                          = 6,
        !           298:        kInitializeCommand                      = 7,                                                    /* init driver and device*/
        !           299:        kFinalizeCommand                        = 8,                                                    /* shutdown driver and device*/
        !           300:        kReplaceCommand                         = 9,                                                    /* replace an old driver*/
        !           301:        kSupersededCommand                      = 10                                                    /* prepare to be replaced by a new driver*/
        !           302: };
        !           303: //naga
        !           304: //typedef KernelID IOCommandID;
        !           305: 
        !           306: typedef UInt32 IOCommandKind;
        !           307: //naga
        !           308: typedef int RegEntryID;
        !           309: 
        !           310: enum {
        !           311:        kSynchronousIOCommandKind       = 0x00000001,
        !           312:        kAsynchronousIOCommandKind      = 0x00000002,
        !           313:        kImmediateIOCommandKind         = 0x00000004
        !           314: };
        !           315: 
        !           316: struct DriverInitInfo {
        !           317:        DriverRefNum                                    refNum;
        !           318:        RegEntryID                                              deviceEntry;
        !           319: };
        !           320: struct DriverFinalInfo {
        !           321:        DriverRefNum                                    refNum;
        !           322:        RegEntryID                                              deviceEntry;
        !           323: };
        !           324: typedef struct DriverInitInfo DriverInitInfo, *DriverInitInfoPtr;
        !           325: 
        !           326: typedef struct DriverInitInfo DriverReplaceInfo, *DriverReplaceInfoPtr;
        !           327: 
        !           328: typedef struct DriverFinalInfo DriverFinalInfo, *DriverFinalInfoPtr;
        !           329: 
        !           330: typedef struct DriverFinalInfo DriverSupersededInfo, *DriverSupersededInfoPtr;
        !           331: 
        !           332: /* Contents are command specific*/
        !           333: union IOCommandContents {
        !           334:        ParmBlkPtr                                              pb;
        !           335:        DriverInitInfoPtr                               initialInfo;
        !           336:        DriverFinalInfoPtr                              finalInfo;
        !           337:        DriverReplaceInfoPtr                    replaceInfo;
        !           338:        DriverSupersededInfoPtr                 supersededInfo;
        !           339: };
        !           340: typedef union IOCommandContents IOCommandContents;
        !           341: 
        !           342: typedef OSErr (DriverEntryPoint)(AddressSpaceID SpaceID, IOCommandID CommandID, IOCommandContents Contents, IOCommandCode Code, IOCommandKind Kind);
        !           343: typedef DriverEntryPoint *DriverEntryPointPtr;
        !           344: 
        !           345: /* Driver Typing Information Used to Match Drivers With Devices */
        !           346: struct DriverType {
        !           347:        Str31                                                   nameInfoStr;                            /* Driver Name/Info String*/
        !           348:        NumVersion                                              version;                                        /* Driver Version Number*/
        !           349: };
        !           350: typedef struct DriverType DriverType, *DriverTypePtr;
        !           351: 
        !           352: /* OS Runtime Information Used to Setup and Maintain a Driver's Runtime Environment */
        !           353: typedef OptionBits RuntimeOptions;
        !           354: 
        !           355: 
        !           356: enum {
        !           357:        kDriverIsLoadedUponDiscovery = 0x00000001,                                      /* auto-load driver when discovered*/
        !           358:        kDriverIsOpenedUponLoad         = 0x00000002,                                   /* auto-open driver when loaded*/
        !           359:        kDriverIsUnderExpertControl     = 0x00000004,                                   /* I/O expert handles loads/opens*/
        !           360:        kDriverIsConcurrent                     = 0x00000008,                                   /* supports concurrent requests*/
        !           361:        kDriverQueuesIOPB                       = 0x00000010                                    /* device manager doesn't queue IOPB*/
        !           362: };
        !           363: 
        !           364: struct DriverOSRuntime {
        !           365:        RuntimeOptions                                  driverRuntime;                          /* Options for OS Runtime*/
        !           366:        Str31                                                   driverName;                                     /* Driver's name to the OS*/
        !           367:        UInt32                                                  driverDescReserved[8];          /* Reserved area*/
        !           368: };
        !           369: typedef struct DriverOSRuntime DriverOSRuntime, *DriverOSRuntimePtr;
        !           370: 
        !           371: /* OS Service Information Used To Declare What APIs a Driver Supports */
        !           372: typedef UInt32 ServiceCount;
        !           373: 
        !           374: struct DriverServiceInfo {
        !           375:        OSType                                                  serviceCategory;                        /* Service Category Name*/
        !           376:        OSType                                                  serviceType;                            /* Type within Category*/
        !           377:        NumVersion                                              serviceVersion;                         /* Version of service*/
        !           378: };
        !           379: typedef struct DriverServiceInfo DriverServiceInfo, *DriverServiceInfoPtr;
        !           380: 
        !           381: struct DriverOSService {
        !           382:        ServiceCount                                    nServices;                                      /* Number of Services Supported*/
        !           383:        DriverServiceInfo                               service[1];                                     /* The List of Services (at least one)*/
        !           384: };
        !           385: typedef struct DriverOSService DriverOSService, *DriverOSServicePtr;
        !           386: 
        !           387: /* Categories */
        !           388: 
        !           389: enum {
        !           390:        kServiceCategoryDisplay         = 'disp',                                               /* Display Manager*/
        !           391:        kServiceCategoryOpenTransport = 'otan',                                         /* Open Transport*/
        !           392:        kServiceCategoryBlockStorage = 'blok',                                          /* Block Storage*/
        !           393:        kServiceCategoryNdrvDriver      = 'ndrv',                                               /* Generic Native Driver*/
        !           394:        kServiceCategoryScsiSIM         = 'scsi'
        !           395: };
        !           396: 
        !           397: /* Ndrv ServiceCategory Types */
        !           398: enum {
        !           399:        kNdrvTypeIsGeneric                      = 'genr',                                               /* generic*/
        !           400:        kNdrvTypeIsVideo                        = 'vido',                                               /* video*/
        !           401:        kNdrvTypeIsBlockStorage         = 'blok',                                               /* block storage*/
        !           402:        kNdrvTypeIsNetworking           = 'netw',                                               /* networking*/
        !           403:        kNdrvTypeIsSerial                       = 'serl',                                               /* serial*/
        !           404:        kNdrvTypeIsSound                        = 'sond',                                               /* sound*/
        !           405:        kNdrvTypeIsBusBridge            = 'brdg'
        !           406: };
        !           407: 
        !           408: /*     The Driver Description */
        !           409: enum {
        !           410:        kTheDescriptionSignature        = 'mtej'
        !           411: };
        !           412: 
        !           413: typedef UInt32 DriverDescVersion;
        !           414: 
        !           415: 
        !           416: enum {
        !           417:        kInitialDriverDescriptor        = 0
        !           418: };
        !           419: 
        !           420: struct DriverDescription {
        !           421:        OSType                                                  driverDescSignature;            /* Signature field of this structure*/
        !           422:        DriverDescVersion                               driverDescVersion;                      /* Version of this data structure*/
        !           423:        DriverType                                              driverType;                                     /* Type of Driver*/
        !           424:        DriverOSRuntime                                 driverOSRuntimeInfo;            /* OS Runtime Requirements of Driver*/
        !           425:        DriverOSService                                 driverServices;                         /* Apple Service API Membership*/
        !           426: };
        !           427: typedef struct DriverDescription DriverDescription, *DriverDescriptionPtr;
        !           428: 
        !           429: /* Record to describe a file-based driver candidate */
        !           430: struct FileBasedDriverRecord {
        !           431:        FSSpec                                                  theSpec;                                        /* file specification*/
        !           432:        DriverType                                              theType;                                        /* nameInfoStr + version number*/
        !           433:        Boolean                                                 compatibleProp;                         /* true if matched using a compatible name*/
        !           434:        UInt8                                                   pad[3];                                         /* alignment*/
        !           435: };
        !           436: typedef struct FileBasedDriverRecord FileBasedDriverRecord, *FileBasedDriverRecordPtr;
        !           437: 
        !           438: /* Driver Loader API */
        !           439: #define DECLARE_DRIVERDESCRIPTION(N_ADDITIONAL_SERVICES)  \
        !           440:        struct {                                        \
        !           441:        DriverDescription       fixed;  \
        !           442:        DriverServiceInfo       additional_service[N_ADDITIONAL_SERVICES-1]; \
        !           443:        };
        !           444: extern SInt16 HigherDriverVersion(NumVersion *driverVersion1, NumVersion *driverVersion2);
        !           445: extern OSErr VerifyFragmentAsDriver(CFragConnectionID fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescriptionPtr *driverDesc);
        !           446: extern OSErr GetDriverMemoryFragment(Ptr memAddr, long length, ConstStr63Param fragName, CFragConnectionID *fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescriptionPtr *driverDesc);
        !           447: extern OSErr GetDriverDiskFragment(FSSpecPtr fragmentSpec, CFragConnectionID *fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescriptionPtr *driverDesc);
        !           448: extern OSErr InstallDriverFromFragment(CFragConnectionID fragmentConnID, RegEntryIDPtr device, UnitNumber beginningUnit, UnitNumber endingUnit, DriverRefNum *refNum);
        !           449: extern OSErr InstallDriverFromFile(FSSpecPtr fragmentSpec, RegEntryIDPtr device, UnitNumber beginningUnit, UnitNumber endingUnit, DriverRefNum *refNum);
        !           450: extern OSErr InstallDriverFromMemory(Ptr memory, long length, ConstStr63Param fragName, RegEntryIDPtr device, UnitNumber beginningUnit, UnitNumber endingUnit, DriverRefNum *refNum);
        !           451: extern OSErr InstallDriverFromDisk(Ptr theDriverName, RegEntryIDPtr theDevice, UnitNumber theBeginningUnit, UnitNumber theEndingUnit, DriverRefNum *theRefNum);
        !           452: extern OSErr FindDriversForDevice(RegEntryIDPtr device, FSSpec *fragmentSpec, DriverDescription *fileDriverDesc, Ptr *memAddr, long *length, StringPtr fragName, DriverDescription *memDriverDesc);
        !           453: extern OSErr FindDriverCandidates(RegEntryIDPtr deviceID, Ptr *propBasedDriver, RegPropertyValueSize *propBasedDriverSize, StringPtr deviceName, DriverType *propBasedDriverType, Boolean *gotPropBasedDriver, FileBasedDriverRecordPtr fileBasedDrivers, ItemCount *nFileBasedDrivers);
        !           454: extern OSErr ScanDriverCandidates(RegEntryIDPtr deviceID, FileBasedDriverRecordPtr fileBasedDrivers, ItemCount nFileBasedDrivers, FileBasedDriverRecordPtr matchingDrivers, ItemCount *nMatchingDrivers);
        !           455: extern OSErr GetDriverForDevice(RegEntryIDPtr device, CFragConnectionID *fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescriptionPtr *driverDesc);
        !           456: extern OSErr InstallDriverForDevice(RegEntryIDPtr device, UnitNumber beginningUnit, UnitNumber endingUnit, DriverRefNum *refNum);
        !           457: extern OSErr SetDriverClosureMemory(CFragConnectionID fragmentConnID, Boolean holdDriverMemory);
        !           458: extern OSErr ReplaceDriverWithFragment(DriverRefNum theRefNum, CFragConnectionID fragmentConnID);
        !           459: extern OSErr GetDriverInformation(DriverRefNum refNum, UnitNumber *unitNum, DriverFlags *flags, DriverOpenCount *count, StringPtr name, RegEntryID *device, CFragHFSLocator *driverLoadLocation, CFragConnectionID *fragmentConnID, DriverEntryPointPtr *fragmentMain, DriverDescription *driverDesc);
        !           460: extern OSErr OpenInstalledDriver(DriverRefNum refNum, SInt8 ioPermission);
        !           461: extern OSErr RenameDriver(DriverRefNum refNum, StringPtr newDriverName);
        !           462: extern OSErr RemoveDriver(DriverRefNum refNum, Boolean immediate);
        !           463: extern OSErr LookupDrivers(UnitNumber beginningUnit, UnitNumber endingUnit, Boolean emptyUnits, ItemCount *returnedRefNums, DriverRefNum *refNums);
        !           464: extern UnitNumber HighestUnitNumber(void);
        !           465: extern OSErr DriverGestaltOn(DriverRefNum refNum);
        !           466: extern OSErr DriverGestaltOff(DriverRefNum refNum);
        !           467: extern Boolean DriverGestaltIsOn(DriverFlags flags);
        !           468: 
        !           469: #if !OLDROUTINELOCATIONS
        !           470: 
        !           471: #if !GENERATINGCFM
        !           472: #pragma parameter __D0 PBOpenSync(__A0)
        !           473: #endif
        !           474: extern pascal OSErr PBOpenSync(ParmBlkPtr paramBlock)
        !           475:  ONEWORDINLINE(0xA000);
        !           476: 
        !           477: #if !GENERATINGCFM
        !           478: #pragma parameter __D0 PBOpenAsync(__A0)
        !           479: #endif
        !           480: extern pascal OSErr PBOpenAsync(ParmBlkPtr paramBlock)
        !           481:  ONEWORDINLINE(0xA400);
        !           482: 
        !           483: #if !GENERATINGCFM
        !           484: #pragma parameter __D0 PBOpenImmed(__A0)
        !           485: #endif
        !           486: extern pascal OSErr PBOpenImmed(ParmBlkPtr paramBlock)
        !           487:  ONEWORDINLINE(0xA200);
        !           488: 
        !           489: #if !GENERATINGCFM
        !           490: #pragma parameter __D0 PBCloseSync(__A0)
        !           491: #endif
        !           492: extern pascal OSErr PBCloseSync(ParmBlkPtr paramBlock)
        !           493:  ONEWORDINLINE(0xA001);
        !           494: 
        !           495: #if !GENERATINGCFM
        !           496: #pragma parameter __D0 PBCloseAsync(__A0)
        !           497: #endif
        !           498: extern pascal OSErr PBCloseAsync(ParmBlkPtr paramBlock)
        !           499:  ONEWORDINLINE(0xA401);
        !           500: 
        !           501: #if !GENERATINGCFM
        !           502: #pragma parameter __D0 PBCloseImmed(__A0)
        !           503: #endif
        !           504: extern pascal OSErr PBCloseImmed(ParmBlkPtr paramBlock)
        !           505:  ONEWORDINLINE(0xA201);
        !           506: 
        !           507: #if !GENERATINGCFM
        !           508: #pragma parameter __D0 PBReadSync(__A0)
        !           509: #endif
        !           510: extern pascal OSErr PBReadSync(ParmBlkPtr paramBlock)
        !           511:  ONEWORDINLINE(0xA002);
        !           512: 
        !           513: #if !GENERATINGCFM
        !           514: #pragma parameter __D0 PBReadAsync(__A0)
        !           515: #endif
        !           516: extern pascal OSErr PBReadAsync(ParmBlkPtr paramBlock)
        !           517:  ONEWORDINLINE(0xA402);
        !           518: 
        !           519: #if !GENERATINGCFM
        !           520: #pragma parameter __D0 PBReadImmed(__A0)
        !           521: #endif
        !           522: extern pascal OSErr PBReadImmed(ParmBlkPtr paramBlock)
        !           523:  ONEWORDINLINE(0xA202);
        !           524: 
        !           525: #if !GENERATINGCFM
        !           526: #pragma parameter __D0 PBWriteSync(__A0)
        !           527: #endif
        !           528: extern pascal OSErr PBWriteSync(ParmBlkPtr paramBlock)
        !           529:  ONEWORDINLINE(0xA003);
        !           530: 
        !           531: #if !GENERATINGCFM
        !           532: #pragma parameter __D0 PBWriteAsync(__A0)
        !           533: #endif
        !           534: extern pascal OSErr PBWriteAsync(ParmBlkPtr paramBlock)
        !           535:  ONEWORDINLINE(0xA403);
        !           536: 
        !           537: #if !GENERATINGCFM
        !           538: #pragma parameter __D0 PBWriteImmed(__A0)
        !           539: #endif
        !           540: extern pascal OSErr PBWriteImmed(ParmBlkPtr paramBlock)
        !           541:  ONEWORDINLINE(0xA203);
        !           542: extern pascal void AddDrive(short drvrRefNum, short drvNum, DrvQElPtr qEl);
        !           543: extern pascal QHdrPtr GetDrvQHdr(void)
        !           544:  THREEWORDINLINE(0x2EBC, 0x0000, 0x0308);
        !           545: #endif
        !           546: /* Control Panel Default Proc */
        !           547: typedef pascal long (*ControlPanelDefProcPtr)(short message, short item, short numItems, short cPanelID, EventRecord *theEvent, long cdevValue, DialogPtr cpDialog);
        !           548: 
        !           549: #if GENERATINGCFM
        !           550: typedef UniversalProcPtr ControlPanelDefUPP;
        !           551: #else
        !           552: typedef ControlPanelDefProcPtr ControlPanelDefUPP;
        !           553: #endif
        !           554: 
        !           555: enum {
        !           556:        uppControlPanelDefProcInfo = kPascalStackBased
        !           557:                 | RESULT_SIZE(SIZE_CODE(sizeof(long)))
        !           558:                 | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short)))
        !           559:                 | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
        !           560:                 | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short)))
        !           561:                 | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(short)))
        !           562:                 | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(EventRecord*)))
        !           563:                 | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(long)))
        !           564:                 | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(DialogPtr)))
        !           565: };
        !           566: 
        !           567: #if GENERATINGCFM
        !           568: #define NewControlPanelDefProc(userRoutine)            \
        !           569:                (ControlPanelDefUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppControlPanelDefProcInfo, GetCurrentArchitecture())
        !           570: #else
        !           571: #define NewControlPanelDefProc(userRoutine)            \
        !           572:                ((ControlPanelDefUPP) (userRoutine))
        !           573: #endif
        !           574: 
        !           575: #if GENERATINGCFM
        !           576: #define CallControlPanelDefProc(userRoutine, message, item, numItems, cPanelID, theEvent, cdevValue, cpDialog)         \
        !           577:                CallUniversalProc((UniversalProcPtr)(userRoutine), uppControlPanelDefProcInfo, (message), (item), (numItems), (cPanelID), (theEvent), (cdevValue), (cpDialog))
        !           578: #else
        !           579: #define CallControlPanelDefProc(userRoutine, message, item, numItems, cPanelID, theEvent, cdevValue, cpDialog)         \
        !           580:                (*(userRoutine))((message), (item), (numItems), (cPanelID), (theEvent), (cdevValue), (cpDialog))
        !           581: #endif
        !           582: 
        !           583: extern pascal DCtlHandle GetDCtlEntry(short refNum);
        !           584: /*
        !           585:        SetChooserAlert used to simply set a bit in a low-mem global
        !           586:        to tell the Chooser not to display its warning message when
        !           587:        the printer is changed. However, under MultiFinder and System 7,
        !           588:        this low-mem is swapped out when a layer change occurs, and the
        !           589:        Chooser never sees the change. It is obsolete, and completely
        !           590:        unsupported on the PowerPC. 68K apps can still call it if they
        !           591:        wish.
        !           592: */
        !           593: #if OLDROUTINENAMES && !GENERATINGCFM
        !           594: extern pascal Boolean SetChooserAlert(Boolean f);
        !           595: #endif
        !           596: 
        !           597: #if !GENERATINGCFM
        !           598: #pragma parameter __D0 DriverInstall(__A0, __D0)
        !           599: #endif
        !           600: extern pascal OSErr DriverInstall(DRVRHeaderPtr drvrPtr, short refNum)
        !           601:  ONEWORDINLINE(0xA03D);
        !           602: 
        !           603: #if !GENERATINGCFM
        !           604: #pragma parameter __D0 DriverInstallReserveMem(__A0, __D0)
        !           605: #endif
        !           606: extern pascal OSErr DriverInstallReserveMem(DRVRHeaderPtr drvrPtr, short refNum)
        !           607:  ONEWORDINLINE(0xA43D);
        !           608: 
        !           609: #if !GENERATINGCFM
        !           610: #pragma parameter __D0 DrvrRemove(__D0)
        !           611: #endif
        !           612: extern pascal OSErr DrvrRemove(short refNum)
        !           613:  ONEWORDINLINE(0xA03E);
        !           614: #define DriverRemove(refNum) DrvrRemove(refNum)
        !           615: extern pascal OSErr OpenDriver(ConstStr255Param name, short *drvrRefNum);
        !           616: extern pascal OSErr CloseDriver(short refNum);
        !           617: extern pascal OSErr Control(short refNum, short csCode, const void *csParamPtr);
        !           618: extern pascal OSErr Status(short refNum, short csCode, void *csParamPtr);
        !           619: extern pascal OSErr KillIO(short refNum);
        !           620: 
        !           621: #if !GENERATINGCFM
        !           622: #pragma parameter __D0 PBControlSync(__A0)
        !           623: #endif
        !           624: extern pascal OSErr PBControlSync(ParmBlkPtr paramBlock)
        !           625:  ONEWORDINLINE(0xA004);
        !           626: 
        !           627: #if !GENERATINGCFM
        !           628: #pragma parameter __D0 PBControlAsync(__A0)
        !           629: #endif
        !           630: extern pascal OSErr PBControlAsync(ParmBlkPtr paramBlock)
        !           631:  ONEWORDINLINE(0xA404);
        !           632: 
        !           633: #if !GENERATINGCFM
        !           634: #pragma parameter __D0 PBControlImmed(__A0)
        !           635: #endif
        !           636: extern pascal OSErr PBControlImmed(ParmBlkPtr paramBlock)
        !           637:  ONEWORDINLINE(0xA204);
        !           638: 
        !           639: #if !GENERATINGCFM
        !           640: #pragma parameter __D0 PBStatusSync(__A0)
        !           641: #endif
        !           642: extern pascal OSErr PBStatusSync(ParmBlkPtr paramBlock)
        !           643:  ONEWORDINLINE(0xA005);
        !           644: 
        !           645: #if !GENERATINGCFM
        !           646: #pragma parameter __D0 PBStatusAsync(__A0)
        !           647: #endif
        !           648: extern pascal OSErr PBStatusAsync(ParmBlkPtr paramBlock)
        !           649:  ONEWORDINLINE(0xA405);
        !           650: 
        !           651: #if !GENERATINGCFM
        !           652: #pragma parameter __D0 PBStatusImmed(__A0)
        !           653: #endif
        !           654: extern pascal OSErr PBStatusImmed(ParmBlkPtr paramBlock)
        !           655:  ONEWORDINLINE(0xA205);
        !           656: 
        !           657: #if !GENERATINGCFM
        !           658: #pragma parameter __D0 PBKillIOSync(__A0)
        !           659: #endif
        !           660: extern pascal OSErr PBKillIOSync(ParmBlkPtr paramBlock)
        !           661:  ONEWORDINLINE(0xA006);
        !           662: 
        !           663: #if !GENERATINGCFM
        !           664: #pragma parameter __D0 PBKillIOAsync(__A0)
        !           665: #endif
        !           666: extern pascal OSErr PBKillIOAsync(ParmBlkPtr paramBlock)
        !           667:  ONEWORDINLINE(0xA406);
        !           668: 
        !           669: #if !GENERATINGCFM
        !           670: #pragma parameter __D0 PBKillIOImmed(__A0)
        !           671: #endif
        !           672: extern pascal OSErr PBKillIOImmed(ParmBlkPtr paramBlock)
        !           673:  ONEWORDINLINE(0xA206);
        !           674: extern pascal short OpenDeskAcc(ConstStr255Param deskAccName)
        !           675:  ONEWORDINLINE(0xA9B6);
        !           676: extern pascal void CloseDeskAcc(short refNum)
        !           677:  ONEWORDINLINE(0xA9B7);
        !           678: #if CGLUESUPPORTED
        !           679: extern short opendeskacc(const char *deskAccName);
        !           680: extern OSErr opendriver(const char *driverName, short *refNum);
        !           681: #endif
        !           682: #if OLDROUTINENAMES
        !           683: /*
        !           684:        The PBxxx() routines are obsolete.  
        !           685:        
        !           686:        Use the PBxxxSync(), PBxxxAsync(), or PBxxxImmed version instead.
        !           687: */
        !           688: #define PBControl(pb, async) ((async) ? PBControlAsync(pb) : PBControlSync(pb))
        !           689: #define PBStatus(pb, async) ((async) ? PBStatusAsync(pb) : PBStatusSync(pb))
        !           690: #define PBKillIO(pb, async) ((async) ? PBKillIOAsync(pb) : PBKillIOSync(pb))
        !           691: #if !OLDROUTINELOCATIONS
        !           692: #define PBOpen(pb, async) ((async) ? PBOpenAsync(pb) : PBOpenSync(pb))
        !           693: #define PBClose(pb, async) ((async) ? PBCloseAsync(pb) : PBCloseSync(pb))
        !           694: #define PBRead(pb, async) ((async) ? PBReadAsync(pb) : PBReadSync(pb))
        !           695: #define PBWrite(pb, async) ((async) ? PBWriteAsync(pb) : PBWriteSync(pb))
        !           696: #endif
        !           697: #endif
        !           698: 
        !           699: #if PRAGMA_IMPORT_SUPPORTED
        !           700: #pragma import off
        !           701: #endif
        !           702: 
        !           703: #if PRAGMA_ALIGN_SUPPORTED
        !           704: #pragma options align=reset
        !           705: #endif
        !           706: 
        !           707: #ifdef __cplusplus
        !           708: }
        !           709: #endif
        !           710: 
        !           711: #endif /* __DEVICES__ */

unix.superglobalmegacorp.com

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