Annotation of kernel/bsd/dev/ppc/drvUSBCMD/driverservices.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: /*
                     26:        File:           DriverServices.h
                     27:  
                     28:        Contains:       Driver Services Interfaces.
                     29:  
                     30:        Version:        Technology:     PowerSurge 1.0.2
                     31:                                Release:        Universal Interfaces 3.1
                     32:  
                     33:        Copyright:      � 1985-1998 by Apple Computer, Inc., all rights reserved
                     34:  
                     35:        Bugs?:          Please include the the file and version information (from above) with
                     36:                                the problem description.  Developers belonging to one of the Apple
                     37:                                developer programs can submit bug reports to:
                     38:  
                     39:                                        [email protected]
                     40:  
                     41: */
                     42: #ifndef __DRIVERSERVICES__
                     43: #define __DRIVERSERVICES__
                     44: 
                     45: #ifndef __CONDITIONALMACROS__
                     46: #include "conditionalmacros.h"
                     47: #endif
                     48: #ifndef __MACTYPES__
                     49: #include "mactypes.h"
                     50: #endif
                     51: #ifndef __ERRORS__
                     52: #include "errors.h"
                     53: #endif
                     54: #include "OSUtils.h"
                     55: #include "MachineExceptions.h"
                     56: /*naga
                     57: #ifndef __MACHINEEXCEPTIONS__
                     58: #include "MachineExceptions.h
                     59: #endif
                     60: #ifndef __DEVICES__
                     61: #include <Devices.h>
                     62: #endif
                     63: #ifndef __DRIVERSYNCHRONIZATION__
                     64: #include <DriverSynchronization.h>
                     65: #endif
                     66: */
                     67: 
                     68: 
                     69: #if PRAGMA_ONCE
                     70: #pragma once
                     71: #endif
                     72: 
                     73: #ifdef __cplusplus
                     74: extern "C" {
                     75: #endif
                     76: 
                     77: #if PRAGMA_IMPORT
                     78: #pragma import on
                     79: #endif
                     80: 
                     81: #if PRAGMA_STRUCT_ALIGN
                     82:        #pragma options align=power
                     83: #elif PRAGMA_STRUCT_PACKPUSH
                     84:        #pragma pack(push, 2)
                     85: #elif PRAGMA_STRUCT_PACK
                     86:        #pragma pack(2)
                     87: #endif
                     88: 
                     89: /******************************************************************
                     90:  *
                     91:  *             Previously in Kernel.h
                     92:  *
                     93:  ******************************************************************/
                     94: /* Kernel basics*/
                     95: //naga
                     96: typedef int AddressSpaceID;
                     97: typedef int IOCommandID;
                     98: typedef struct OpaqueIOPreparationID*  IOPreparationID;
                     99: typedef struct OpaqueSoftwareInterruptID*  SoftwareInterruptID;
                    100: typedef struct OpaqueTaskID*                   TaskID;
                    101: typedef struct OpaqueTimerID*                  TimerID;
                    102: /* OrderedItem stuff*/
                    103: typedef OSType                                                         OrderedItemService;
                    104: typedef OSType                                                         OrderedItemSignature;
                    105: 
                    106: enum {
                    107:        kMatchAnyOrderedItemService     = FOUR_CHAR_CODE('****'),
                    108:        kMatchAnyOrderedItemSignature = FOUR_CHAR_CODE('****'),
                    109:        kDoNotMatchAnyOrderedItemService = FOUR_CHAR_CODE('----'),
                    110:        kDoNotMatchAnyOrderedItemSignature = FOUR_CHAR_CODE('----')
                    111: };
                    112: 
                    113: 
                    114: struct OrderedItemName {
                    115:        OrderedItemService                              service;
                    116:        OrderedItemSignature                    signature;
                    117: };
                    118: typedef struct OrderedItemName                 OrderedItemName;
                    119: typedef OrderedItemName *                              OrderedItemNamePtr;
                    120: 
                    121: typedef OptionBits                                             OrderedItemOptions;
                    122: 
                    123: enum {
                    124:        kOrderedItemIsRightBefore       = 0x00000001,
                    125:        kOrderedItemIsRightAfter        = 0x00000002
                    126: };
                    127: 
                    128: 
                    129: struct OrderRequirements {
                    130:        OrderedItemOptions                              options;
                    131:        OrderedItemName                                 itemBefore;
                    132:        OrderedItemName                                 itemAfter;
                    133: };
                    134: typedef struct OrderRequirements               OrderRequirements;
                    135: typedef OrderRequirements *                            OrderRequirementsPtr;
                    136: /* Tasking*/
                    137: 
                    138: typedef UInt32                                                         ExecutionLevel;
                    139: 
                    140: enum {
                    141:        kTaskLevel                                      = 0,
                    142:        kSoftwareInterruptLevel         = 1,
                    143:        kAcceptFunctionLevel            = 2,
                    144:        kKernelLevel                            = 3,
                    145:        kSIHAcceptFunctionLevel         = 4,
                    146:        kSecondaryInterruptLevel        = 5,
                    147:        kHardwareInterruptLevel         = 6
                    148: };
                    149: 
                    150: typedef CALLBACK_API_C( void , SoftwareInterruptHandler )(void *p1, void *p2);
                    151: typedef CALLBACK_API_C( OSStatus , SecondaryInterruptHandler2 )(void *p1, void *p2);
                    152: #define kCurrentAddressSpaceID ((AddressSpaceID) -1)
                    153: 
                    154: /* Memory System basics*/
                    155: 
                    156: struct LogicalAddressRange {
                    157:        LogicalAddress                                  address;
                    158:        ByteCount                                               count;
                    159: };
                    160: typedef struct LogicalAddressRange             LogicalAddressRange;
                    161: typedef LogicalAddressRange *                  LogicalAddressRangePtr;
                    162: 
                    163: struct PhysicalAddressRange {
                    164:        PhysicalAddress                                 address;
                    165:        ByteCount                                               count;
                    166: };
                    167: typedef struct PhysicalAddressRange            PhysicalAddressRange;
                    168: typedef PhysicalAddressRange *                 PhysicalAddressRangePtr;
                    169: /* For PrepareMemoryForIO and CheckpointIO*/
                    170: 
                    171: typedef OptionBits                                             IOPreparationOptions;
                    172: 
                    173: enum {
                    174:        kIOMultipleRanges                       = 0x00000001,
                    175:        kIOLogicalRanges                        = 0x00000002,
                    176:        kIOMinimalLogicalMapping        = 0x00000004,
                    177:        kIOShareMappingTables           = 0x00000008,
                    178:        kIOIsInput                                      = 0x00000010,
                    179:        kIOIsOutput                                     = 0x00000020,
                    180:        kIOCoherentDataPath                     = 0x00000040,
                    181:        kIOTransferIsLogical            = 0x00000080,
                    182:        kIOClientIsUserMode                     = 0x00000080
                    183: };
                    184: 
                    185: typedef OptionBits                                             IOPreparationState;
                    186: 
                    187: enum {
                    188:        kIOStateDone                            = 0x00000001
                    189: };
                    190: 
                    191: 
                    192: enum {
                    193:        kInvalidPageAddress                     = (-1)
                    194: };
                    195: 
                    196: 
                    197: struct AddressRange {
                    198:        void *                                                  base;
                    199:        ByteCount                                               length;
                    200: };
                    201: typedef struct AddressRange                            AddressRange;
                    202: /* C's treatment of arrays and array pointers is atypical*/
                    203: 
                    204: typedef LogicalAddress *                               LogicalMappingTablePtr;
                    205: typedef PhysicalAddress *                              PhysicalMappingTablePtr;
                    206: typedef AddressRange *                                 AddressRangeTablePtr;
                    207: 
                    208: struct MultipleAddressRange {
                    209:        ItemCount                                               entryCount;
                    210:        AddressRangeTablePtr                    rangeTable;
                    211: };
                    212: typedef struct MultipleAddressRange            MultipleAddressRange;
                    213: /*
                    214:    Separate C definition so that union has a name.  A future version of the interfacer
                    215:    tool will allow a name (that gets thrown out in Pascal and Asm).
                    216: */
                    217: 
                    218: struct IOPreparationTable {
                    219:        IOPreparationOptions                    options;
                    220:        IOPreparationState                              state;
                    221:        IOPreparationID                                 preparationID;
                    222:        AddressSpaceID                                  addressSpace;
                    223:        ByteCount                                               granularity;
                    224:        ByteCount                                               firstPrepared;
                    225:        ByteCount                                               lengthPrepared;
                    226:        ItemCount                                               mappingEntryCount;
                    227:        LogicalMappingTablePtr                  logicalMapping;
                    228:        PhysicalMappingTablePtr                 physicalMapping;
                    229:        union {
                    230:                AddressRange                                    range;
                    231:                MultipleAddressRange                    multipleRanges;
                    232:        }                                                               rangeInfo;
                    233: };
                    234: typedef struct IOPreparationTable              IOPreparationTable;
                    235: 
                    236: typedef OptionBits                                             IOCheckpointOptions;
                    237: 
                    238: enum {
                    239:        kNextIOIsInput                          = 0x00000001,
                    240:        kNextIOIsOutput                         = 0x00000002,
                    241:        kMoreIOTransfers                        = 0x00000004
                    242: };
                    243: 
                    244: /* For SetProcessorCacheMode*/
                    245: 
                    246: typedef UInt32                                                         ProcessorCacheMode;
                    247: 
                    248: enum {
                    249:        kProcessorCacheModeDefault      = 0,
                    250:        kProcessorCacheModeInhibited = 1,
                    251:        kProcessorCacheModeWriteThrough = 2,
                    252:        kProcessorCacheModeCopyBack     = 3
                    253: };
                    254: 
                    255: /* For GetPageInformation*/
                    256: 
                    257: 
                    258: enum {
                    259:        kPageInformationVersion         = 1
                    260: };
                    261: 
                    262: typedef UInt32                                                         PageStateInformation;
                    263: 
                    264: enum {
                    265:        kPageIsProtected                        = 0x00000001,
                    266:        kPageIsProtectedPrivileged      = 0x00000002,
                    267:        kPageIsModified                         = 0x00000004,
                    268:        kPageIsReferenced                       = 0x00000008,
                    269:        kPageIsLockedResident           = 0x00000010,
                    270:        kPageIsInMemory                         = 0x00000020,
                    271:        kPageIsShared                           = 0x00000040,
                    272:        kPageIsWriteThroughCached       = 0x00000080,
                    273:        kPageIsCopyBackCached           = 0x00000100,
                    274:        kPageIsLocked                           = kPageIsLockedResident,                /* Deprecated*/
                    275:        kPageIsResident                         = kPageIsInMemory                               /* Deprecated*/
                    276: };
                    277: 
                    278: struct PageInformation {
                    279:        AreaID                                                  area;
                    280:        ItemCount                                               count;
                    281:        PageStateInformation                    information[1];
                    282: };
                    283: typedef struct PageInformation                 PageInformation;
                    284: typedef PageInformation *                              PageInformationPtr;
                    285: 
                    286: /*  Tasks  */
                    287: EXTERN_API_C( ExecutionLevel )
                    288: CurrentExecutionLevel                  (void);
                    289: 
                    290: EXTERN_API_C( TaskID )
                    291: CurrentTaskID                                  (void);
                    292: 
                    293: EXTERN_API_C( OSStatus )
                    294: DelayFor                                               (Duration                               delayDuration);
                    295: 
                    296: EXTERN_API_C( Boolean )
                    297: InPrivilegedMode                               (void);
                    298: 
                    299: 
                    300: /*  Software Interrupts  */
                    301: EXTERN_API_C( OSStatus )
                    302: CreateSoftwareInterrupt                        (SoftwareInterruptHandler  handler,
                    303:                                                                 TaskID                                 task,
                    304:                                                                 void *                                 p1,
                    305:                                                                 Boolean                                persistent,
                    306:                                                                 SoftwareInterruptID *  theSoftwareInterrupt);
                    307: 
                    308: 
                    309: EXTERN_API_C( OSStatus )
                    310: SendSoftwareInterrupt                  (SoftwareInterruptID    theSoftwareInterrupt,
                    311:                                                                 void *                                 p2);
                    312: 
                    313: EXTERN_API_C( OSStatus )
                    314: DeleteSoftwareInterrupt                        (SoftwareInterruptID    theSoftwareInterrupt);
                    315: 
                    316: //naga#if TARGET_OS_MAC
                    317: /*  Secondary Interrupts  */
                    318: EXTERN_API_C( OSStatus )
                    319: CallSecondaryInterruptHandler2 (SecondaryInterruptHandler2  theHandler,
                    320:                                                                 ExceptionHandler               exceptionHandler,
                    321:                                                                 void *                                 p1,
                    322:                                                                 void *                                 p2);
                    323: 
                    324: EXTERN_API_C( OSStatus )
                    325: QueueSecondaryInterruptHandler (SecondaryInterruptHandler2  theHandler,
                    326:                                                                 ExceptionHandler               exceptionHandler,
                    327:                                                                 void *                                 p1,
                    328:                                                                 void *                                 p2);
                    329: 
                    330: //#endif  /* TARGET_OS_MAC */
                    331: 
                    332: /*  Timers  */
                    333: EXTERN_API_C( OSStatus )
                    334: SetInterruptTimer                              (const AbsoluteTime *   expirationTime,
                    335:                                                                 SecondaryInterruptHandler2  handler,
                    336:                                                                 void *                                 p1,
                    337:                                                                 TimerID *                              theTimer);
                    338: 
                    339: EXTERN_API_C( OSStatus )
                    340: CancelTimer                                            (TimerID                                theTimer,
                    341:                                                                 AbsoluteTime *                 timeRemaining);
                    342: 
                    343: 
                    344: /*  I/O related Operations  */
                    345: EXTERN_API_C( OSStatus )
                    346: PrepareMemoryForIO                             (IOPreparationTable *   theIOPreparationTable);
                    347: 
                    348: EXTERN_API_C( OSStatus )
                    349: CheckpointIO                                   (IOPreparationID                theIOPreparation,
                    350:                                                                 IOCheckpointOptions    options);
                    351: 
                    352: 
                    353: /*  Memory Operations  */
                    354: EXTERN_API_C( OSStatus )
                    355: GetPageInformation                             (AddressSpaceID                 addressSpace,
                    356:                                                                 ConstLogicalAddress    base,
                    357:                                                                 ItemCount                              requestedPages,
                    358:                                                                 PBVersion                              version,
                    359:                                                                 PageInformation *              thePageInfo);
                    360: 
                    361: /*  Processor Cache Related  */
                    362: EXTERN_API_C( OSStatus )
                    363: SetProcessorCacheMode                  (AddressSpaceID                 addressSpace,
                    364:                                                                 ConstLogicalAddress    base,
                    365:                                                                 ByteCount                              length,
                    366:                                                                 ProcessorCacheMode     cacheMode);
                    367: 
                    368: /******************************************************************
                    369:  *
                    370:  *             Was in DriverSupport.h or DriverServices.h
                    371:  *
                    372:  ******************************************************************/
                    373: #define        kAAPLDeviceLogicalAddress "AAPL,address"
                    374: 
                    375: typedef LogicalAddress *                               DeviceLogicalAddressPtr;
                    376: 
                    377: enum {
                    378:        durationMicrosecond                     = -1L,                                                  /* Microseconds are negative*/
                    379:        durationMillisecond                     = 1L,                                                   /* Milliseconds are positive*/
                    380:        durationSecond                          = 1000L,                                                /* 1000 * durationMillisecond*/
                    381:        durationMinute                          = 60000L,                                               /* 60 * durationSecond,*/
                    382:        durationHour                            = 3600000L,                                             /* 60 * durationMinute,*/
                    383:        durationDay                                     = 86400000L,                                    /* 24 * durationHour,*/
                    384:        durationNoWait                          = 0L,                                                   /* don't block*/
                    385:        durationForever                         = 0x7FFFFFFF                                    /* no time limit*/
                    386: };
                    387: 
                    388: 
                    389: enum {
                    390:        k8BitAccess                                     = 0,                                                    /* access as 8 bit*/
                    391:        k16BitAccess                            = 1,                                                    /* access as 16 bit*/
                    392:        k32BitAccess                            = 2                                                             /* access as 32 bit*/
                    393: };
                    394: 
                    395: typedef UnsignedWide                                   Nanoseconds;
                    396: 
                    397: EXTERN_API_C( OSErr )
                    398: IOCommandIsComplete                            (IOCommandID                    theID,
                    399:                                                                 OSErr                                  theResult);
                    400: /*naga
                    401: EXTERN_API_C( OSErr )
                    402: GetIOCommandInfo                               (IOCommandID                    theID,
                    403:                                                                 IOCommandContents *    theContents,
                    404:                                                                 IOCommandCode *                theCommand,
                    405:                                                                 IOCommandKind *                theKind);
                    406: EXTERN_API_C( void )
                    407: UpdateDeviceActivity                   (RegEntryID *                   deviceEntry);
                    408: naga */
                    409: 
                    410: EXTERN_API_C( void )
                    411: BlockCopy                                              (const void *                   srcPtr,
                    412:                                                                 void *                                 destPtr,
                    413:                                                                 Size                                   byteCount);
                    414: 
                    415: EXTERN_API_C( LogicalAddress )
                    416: PoolAllocateResident                   (ByteCount                              byteSize,
                    417:                                                                 Boolean                                clear);
                    418: 
                    419: EXTERN_API_C( OSStatus )
                    420: PoolDeallocate                                 (LogicalAddress                 address);
                    421: 
                    422: 
                    423: EXTERN_API_C( ByteCount )
                    424: GetDataCacheLineSize                   (void);
                    425: 
                    426: EXTERN_API_C( OSStatus )
                    427: FlushProcessorCache                            (AddressSpaceID                 spaceID,
                    428:                                                                 LogicalAddress                 base,
                    429:                                                                 ByteCount                              length);
                    430: 
                    431: EXTERN_API_C( LogicalAddress )
                    432: MemAllocatePhysicallyContiguous        (ByteCount                              byteSize,
                    433:                                                                 Boolean                                clear);
                    434: 
                    435: EXTERN_API_C( OSStatus )
                    436: MemDeallocatePhysicallyContiguous (LogicalAddress              address);
                    437: 
                    438: 
                    439: EXTERN_API_C( AbsoluteTime )
                    440: UpTime                                                 (void);
                    441: 
                    442: EXTERN_API_C( void )
                    443: GetTimeBaseInfo                                        (UInt32 *                               minAbsoluteTimeDelta,
                    444:                                                                 UInt32 *                               theAbsoluteTimeToNanosecondNumerator,
                    445:                                                                 UInt32 *                               theAbsoluteTimeToNanosecondDenominator,
                    446:                                                                 UInt32 *                               theProcessorToAbsoluteTimeNumerator,
                    447:                                                                 UInt32 *                               theProcessorToAbsoluteTimeDenominator);
                    448: 
                    449: 
                    450: EXTERN_API_C( Nanoseconds )
                    451: AbsoluteToNanoseconds                  (AbsoluteTime                   absoluteTime);
                    452: 
                    453: EXTERN_API_C( Duration )
                    454: AbsoluteToDuration                             (AbsoluteTime                   absoluteTime);
                    455: 
                    456: EXTERN_API_C( AbsoluteTime )
                    457: NanosecondsToAbsolute                  (Nanoseconds                    nanoseconds);
                    458: 
                    459: EXTERN_API_C( AbsoluteTime )
                    460: DurationToAbsolute                             (Duration                               duration);
                    461: 
                    462: EXTERN_API_C( AbsoluteTime )
                    463: AddAbsoluteToAbsolute                  (AbsoluteTime                   absoluteTime1,
                    464:                                                                 AbsoluteTime                   absoluteTime2);
                    465: 
                    466: EXTERN_API_C( AbsoluteTime )
                    467: SubAbsoluteFromAbsolute                        (AbsoluteTime                   leftAbsoluteTime,
                    468:                                                                 AbsoluteTime                   rightAbsoluteTime);
                    469: 
                    470: EXTERN_API_C( AbsoluteTime )
                    471: AddNanosecondsToAbsolute               (Nanoseconds                    nanoseconds,
                    472:                                                                 AbsoluteTime                   absoluteTime);
                    473: 
                    474: EXTERN_API_C( AbsoluteTime )
                    475: AddDurationToAbsolute                  (Duration                               duration,
                    476:                                                                 AbsoluteTime                   absoluteTime);
                    477: 
                    478: EXTERN_API_C( AbsoluteTime )
                    479: SubNanosecondsFromAbsolute             (Nanoseconds                    nanoseconds,
                    480:                                                                 AbsoluteTime                   absoluteTime);
                    481: 
                    482: EXTERN_API_C( AbsoluteTime )
                    483: SubDurationFromAbsolute                        (Duration                               duration,
                    484:                                                                 AbsoluteTime                   absoluteTime);
                    485: 
                    486: EXTERN_API_C( Nanoseconds )
                    487: AbsoluteDeltaToNanoseconds             (AbsoluteTime                   leftAbsoluteTime,
                    488:                                                                 AbsoluteTime                   rightAbsoluteTime);
                    489: 
                    490: EXTERN_API_C( Duration )
                    491: AbsoluteDeltaToDuration                        (AbsoluteTime                   leftAbsoluteTime,
                    492:                                                                 AbsoluteTime                   rightAbsoluteTime);
                    493: 
                    494: EXTERN_API_C( Nanoseconds )
                    495: DurationToNanoseconds                  (Duration                               theDuration);
                    496: 
                    497: EXTERN_API_C( Duration )
                    498: NanosecondsToDuration                  (Nanoseconds                    theNanoseconds);
                    499: 
                    500: EXTERN_API_C( OSErr )
                    501: PBQueueInit                                            (QHdrPtr                                qHeader);
                    502: 
                    503: EXTERN_API_C( OSErr )
                    504: PBQueueCreate                                  (QHdrPtr *                              qHeader);
                    505: 
                    506: EXTERN_API_C( OSErr )
                    507: PBQueueDelete                                  (QHdrPtr                                qHeader);
                    508: 
                    509: EXTERN_API_C( void )
                    510: PBEnqueue                                              (QElemPtr                               qElement,
                    511:                                                                 QHdrPtr                                qHeader);
                    512: 
                    513: EXTERN_API_C( OSErr )
                    514: PBEnqueueLast                                  (QElemPtr                               qElement,
                    515:                                                                 QHdrPtr                                qHeader);
                    516: 
                    517: EXTERN_API_C( OSErr )
                    518: PBDequeue                                              (QElemPtr                               qElement,
                    519:                                                                 QHdrPtr                                qHeader);
                    520: 
                    521: EXTERN_API_C( OSErr )
                    522: PBDequeueFirst                                 (QHdrPtr                                qHeader,
                    523:                                                                 QElemPtr *                             theFirstqElem);
                    524: 
                    525: EXTERN_API_C( OSErr )
                    526: PBDequeueLast                                  (QHdrPtr                                qHeader,
                    527:                                                                 QElemPtr *                             theLastqElem);
                    528: 
                    529: EXTERN_API_C( char *)
                    530: CStrCopy                                               (char *                                 dst,
                    531:                                                                 const char *                   src);
                    532: 
                    533: EXTERN_API_C( StringPtr )
                    534: PStrCopy                                               (StringPtr                              dst,
                    535:                                                                 ConstStr255Param               src);
                    536: 
                    537: EXTERN_API_C( char *)
                    538: CStrNCopy                                              (char *                                 dst,
                    539:                                                                 const char *                   src,
                    540:                                                                 UInt32                                 max);
                    541: 
                    542: EXTERN_API_C( StringPtr )
                    543: PStrNCopy                                              (StringPtr                              dst,
                    544:                                                                 ConstStr255Param               src,
                    545:                                                                 UInt32                                 max);
                    546: 
                    547: EXTERN_API_C( char *)
                    548: CStrCat                                                        (char *                                 dst,
                    549:                                                                 const char *                   src);
                    550: 
                    551: EXTERN_API_C( StringPtr )
                    552: PStrCat                                                        (StringPtr                              dst,
                    553:                                                                 ConstStr255Param               src);
                    554: 
                    555: EXTERN_API_C( char *)
                    556: CStrNCat                                               (char *                                 dst,
                    557:                                                                 const char *                   src,
                    558:                                                                 UInt32                                 max);
                    559: 
                    560: EXTERN_API_C( StringPtr )
                    561: PStrNCat                                               (StringPtr                              dst,
                    562:                                                                 ConstStr255Param               src,
                    563:                                                                 UInt32                                 max);
                    564: 
                    565: EXTERN_API_C( void )
                    566: PStrToCStr                                             (char *                                 dst,
                    567:                                                                 ConstStr255Param               src);
                    568: 
                    569: EXTERN_API_C( void )
                    570: CStrToPStr                                             (Str255                                 dst,
                    571:                                                                 const char *                   src);
                    572: 
                    573: EXTERN_API_C( SInt16 )
                    574: CStrCmp                                                        (const char *                   s1,
                    575:                                                                 const char *                   s2);
                    576: 
                    577: EXTERN_API_C( SInt16 )
                    578: PStrCmp                                                        (ConstStr255Param               str1,
                    579:                                                                 ConstStr255Param               str2);
                    580: 
                    581: EXTERN_API_C( SInt16 )
                    582: CStrNCmp                                               (const char *                   s1,
                    583:                                                                 const char *                   s2,
                    584:                                                                 UInt32                                 max);
                    585: 
                    586: EXTERN_API_C( SInt16 )
                    587: PStrNCmp                                               (ConstStr255Param               str1,
                    588:                                                                 ConstStr255Param               str2,
                    589:                                                                 UInt32                                 max);
                    590: 
                    591: EXTERN_API_C( UInt32 )
                    592: CStrLen                                                        (const char *                   src);
                    593: 
                    594: EXTERN_API_C( UInt32 )
                    595: PStrLen                                                        (ConstStr255Param               src);
                    596: 
                    597: EXTERN_API_C( OSStatus )
                    598: DeviceProbe                                            (void *                                 theSrc,
                    599:                                                                 void *                                 theDest,
                    600:                                                                 UInt32                                 AccessType);
                    601: 
                    602: EXTERN_API_C( OSStatus )
                    603: DelayForHardware                               (AbsoluteTime                   absoluteTime);
                    604: 
                    605: 
                    606: 
                    607: /******************************************************************
                    608:  *
                    609:  *             Was in Interrupts.h 
                    610:  *
                    611:  ******************************************************************/
                    612: /*  Interrupt types  */
                    613: typedef struct OpaqueInterruptSetID*   InterruptSetID;
                    614: typedef long                                                   InterruptMemberNumber;
                    615: 
                    616: struct InterruptSetMember {
                    617:        InterruptSetID                                  setID;
                    618:        InterruptMemberNumber                   member;
                    619: };
                    620: typedef struct InterruptSetMember              InterruptSetMember;
                    621: 
                    622: enum {
                    623:        kISTChipInterruptSource         = 0,
                    624:        kISTOutputDMAInterruptSource = 1,
                    625:        kISTInputDMAInterruptSource     = 2,
                    626:        kISTPropertyMemberCount         = 3
                    627: };
                    628: 
                    629: 
                    630: typedef InterruptSetMember                             ISTProperty[3];
                    631: #define kISTPropertyName       "driver-ist" 
                    632: 
                    633: typedef long                                                   InterruptReturnValue;
                    634: 
                    635: enum {
                    636:        kFirstMemberNumber                      = 1,
                    637:        kIsrIsComplete                          = 0,
                    638:        kIsrIsNotComplete                       = -1,
                    639:        kMemberNumberParent                     = -2
                    640: };
                    641: 
                    642: typedef Boolean                                                InterruptSourceState;
                    643: 
                    644: enum {
                    645:        kSourceWasEnabled                       = true,
                    646:        kSourceWasDisabled                      = false
                    647: };
                    648: 
                    649: 
                    650: typedef CALLBACK_API_C( InterruptMemberNumber , InterruptHandler )(InterruptSetMember ISTmember, void *refCon, UInt32 theIntCount);
                    651: typedef CALLBACK_API_C( void , InterruptEnabler )(InterruptSetMember ISTmember, void *refCon);
                    652: typedef CALLBACK_API_C( InterruptSourceState , InterruptDisabler )(InterruptSetMember ISTmember, void *refCon);
                    653: 
                    654: enum {
                    655:        kReturnToParentWhenComplete     = 0x00000001,
                    656:        kReturnToParentWhenNotComplete = 0x00000002
                    657: };
                    658: 
                    659: typedef OptionBits                                             InterruptSetOptions;
                    660: /*  Interrupt Services  */
                    661: EXTERN_API_C( OSStatus )
                    662: CreateInterruptSet                             (InterruptSetID                 parentSet,
                    663:                                                                 InterruptMemberNumber  parentMember,
                    664:                                                                 InterruptMemberNumber  setSize,
                    665:                                                                 InterruptSetID *               setID,
                    666:                                                                 InterruptSetOptions    options);
                    667: 
                    668: 
                    669: EXTERN_API_C( OSStatus )
                    670: InstallInterruptFunctions              (InterruptSetID                 setID,
                    671:                                                                 InterruptMemberNumber  member,
                    672:                                                                 void *                                 refCon,
                    673:                                                                 InterruptHandler               handlerFunction,
                    674:                                                                 InterruptEnabler               enableFunction,
                    675:                                                                 InterruptDisabler              disableFunction);
                    676: 
                    677: 
                    678: EXTERN_API_C( OSStatus )
                    679: GetInterruptFunctions                  (InterruptSetID                 setID,
                    680:                                                                 InterruptMemberNumber  member,
                    681:                                                                 void **                                refCon,
                    682:                                                                 InterruptHandler *             handlerFunction,
                    683:                                                                 InterruptEnabler *             enableFunction,
                    684:                                                                 InterruptDisabler *    disableFunction);
                    685: 
                    686: EXTERN_API_C( OSStatus )
                    687: ChangeInterruptSetOptions              (InterruptSetID                 setID,
                    688:                                                                 InterruptSetOptions    options);
                    689: 
                    690: EXTERN_API_C( OSStatus )
                    691: GetInterruptSetOptions                 (InterruptSetID                 setID,
                    692:                                                                 InterruptSetOptions *  options);
                    693: 
                    694: void usb_BlockMoveData(void *src, void *tgt, UInt32 size); //naga added
                    695: OSStatus CompareAndSwap(UInt32,UInt32,UInt32 *);
                    696: 
                    697: 
                    698: #if PRAGMA_STRUCT_ALIGN
                    699:        #pragma options align=reset
                    700: #elif PRAGMA_STRUCT_PACKPUSH
                    701:        #pragma pack(pop)
                    702: #elif PRAGMA_STRUCT_PACK
                    703:        #pragma pack()
                    704: #endif
                    705: 
                    706: #ifdef PRAGMA_IMPORT_OFF
                    707: #pragma import off
                    708: #elif PRAGMA_IMPORT
                    709: #pragma import reset
                    710: #endif
                    711: 
                    712: #ifdef __cplusplus
                    713: }
                    714: #endif
                    715: 
                    716: #endif /* __DRIVERSERVICES__ */
                    717: 

unix.superglobalmegacorp.com

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