Annotation of kernel/bsd/dev/ppc/drvUSBCMD/codefragments.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:           CodeFragments.h
        !            27:  
        !            28:        Contains:       Public Code Fragment Manager Interfaces.
        !            29:  
        !            30:        Version:        Mac OS 8.1
        !            31:  
        !            32:        DRI:            Alan Lillich
        !            33:  
        !            34:        Copyright:      � 1992-1998 by Apple Computer, Inc., all rights reserved.
        !            35:  
        !            36:        Warning:        *** APPLE INTERNAL USE ONLY ***
        !            37:                                This file may contain unreleased API's
        !            38:  
        !            39:        BuildInfo:      Built by:                       Naga Pappireddi
        !            40:                                With Interfacer:        3.0d9 (PowerPC native)
        !            41:                                From:                           CodeFragments.i
        !            42:                                        Revision:               68
        !            43:                                        Dated:                  7/17/98
        !            44:                                        Last change by: ngk
        !            45:                                        Last comment:   Change cfrg version fields to DeRez using hex
        !            46:  
        !            47:        Bugs:           Report bugs to Radar component "System Interfaces", "Latest"
        !            48:                                List the version information (from above) in the Problem Description.
        !            49:  
        !            50: */
        !            51: /*
        !            52:    �
        !            53:    ===========================================================================================
        !            54:    The Code Fragment Manager API
        !            55:    =============================
        !            56: */
        !            57: 
        !            58: 
        !            59: #ifndef __CODEFRAGMENTS__
        !            60: #define __CODEFRAGMENTS__
        !            61: 
        !            62: #ifndef __MACTYPES__
        !            63: #include "mactypes.h"
        !            64: #endif
        !            65: #ifndef __FILES__
        !            66: #include "files.h"
        !            67: #endif
        !            68: 
        !            69: 
        !            70: 
        !            71: #if PRAGMA_ONCE
        !            72: #pragma once
        !            73: #endif
        !            74: 
        !            75: #ifdef __cplusplus
        !            76: extern "C" {
        !            77: #endif
        !            78: 
        !            79: #if PRAGMA_IMPORT
        !            80: #pragma import on
        !            81: #endif
        !            82: 
        !            83: #if PRAGMA_STRUCT_ALIGN
        !            84:        #pragma options align=mac68k
        !            85: #elif PRAGMA_STRUCT_PACKPUSH
        !            86:        #pragma pack(push, 2)
        !            87: #elif PRAGMA_STRUCT_PACK
        !            88:        #pragma pack(2)
        !            89: #endif
        !            90: 
        !            91: /*
        !            92:    �
        !            93:    ===========================================================================================
        !            94:    General Types and Constants
        !            95:    ===========================
        !            96: */
        !            97: 
        !            98: 
        !            99: 
        !           100: enum {
        !           101:        kCFragResourceType                      = FOUR_CHAR_CODE('cfrg'),
        !           102:        kCFragResourceID                        = 0,
        !           103:        kCFragLibraryFileType           = FOUR_CHAR_CODE('shlb'),
        !           104:        kCFragAllFileTypes                      = (long)0xFFFFFFFF
        !           105: };
        !           106: 
        !           107: 
        !           108: typedef OSType                                                         CFragArchitecture;
        !           109: 
        !           110: enum {
        !           111:        kPowerPCCFragArch                       = FOUR_CHAR_CODE('pwpc'),
        !           112:        kMotorola68KCFragArch           = FOUR_CHAR_CODE('m68k'),
        !           113:        kAnyCFragArch                           = 0x3F3F3F3F
        !           114: };
        !           115: 
        !           116: #if TARGET_CPU_PPC
        !           117: 
        !           118: enum {
        !           119:        kCompiledCFragArch                      = kPowerPCCFragArch
        !           120: };
        !           121: 
        !           122: #endif  /* TARGET_CPU_PPC */
        !           123: 
        !           124: #if TARGET_CPU_68K
        !           125: 
        !           126: enum {
        !           127:        kCompiledCFragArch                      = kMotorola68KCFragArch
        !           128: };
        !           129: 
        !           130: #endif  /* TARGET_CPU_68K */
        !           131: 
        !           132: typedef UInt32                                                         CFragVersionNumber;
        !           133: 
        !           134: enum {
        !           135:        kNullCFragVersion                       = 0,
        !           136:        kWildcardCFragVersion           = (long)0xFFFFFFFF
        !           137: };
        !           138: 
        !           139: 
        !           140: typedef UInt8                                                  CFragUsage;
        !           141: 
        !           142: enum {
        !           143:        kImportLibraryCFrag                     = 0,                                                    /* Standard CFM import library.*/
        !           144:        kApplicationCFrag                       = 1,                                                    /* MacOS application.*/
        !           145:        kDropInAdditionCFrag            = 2,                                                    /* Application or library private extension/plug-in*/
        !           146:        kStubLibraryCFrag                       = 3,                                                    /* Import library used for linking only*/
        !           147:        kWeakStubLibraryCFrag           = 4                                                             /* Import library used for linking only and will be automatically weak linked*/
        !           148: };
        !           149: 
        !           150: 
        !           151: 
        !           152: enum {
        !           153:        kIsCompleteCFrag                        = 0,                                                    /* A "base" fragment, not an update.*/
        !           154:        kFirstCFragUpdate                       = 1                                                             /* The first update, others are numbered 2, 3, ...*/
        !           155: };
        !           156: 
        !           157: 
        !           158: 
        !           159: enum {
        !           160:        kCFragGoesToEOF                         = 0
        !           161: };
        !           162: 
        !           163: 
        !           164: 
        !           165: 
        !           166: typedef UInt8                                                  CFragLocatorKind;
        !           167: 
        !           168: enum {
        !           169:        kMemoryCFragLocator                     = 0,                                                    /* Container is already addressable.*/
        !           170:        kDataForkCFragLocator           = 1,                                                    /* Container is in a file's data fork.*/
        !           171:        kResourceCFragLocator           = 2,                                                    /* Container is in a file's resource fork.*/
        !           172:        kByteStreamCFragLocator         = 3,                                                    /* ! Reserved for possible future use!*/
        !           173:        kNamedFragmentCFragLocator      = 4                                                             /* ! Reserved for possible future use!*/
        !           174: };
        !           175: 
        !           176: 
        !           177: /*
        !           178:    --------------------------------------------------------------------------------------
        !           179:    A 'cfrg' resource consists of a header followed by a sequence of variable length
        !           180:    members.  The constant kDefaultCFragNameLen only provides for a legal ANSI declaration
        !           181:    and for a reasonable display in a debugger.  The actual name field is cut to fit.
        !           182:    There may be "extensions" after the name, the memberSize field includes them.  The
        !           183:    general form of an extension is a 16 bit type code followed by a 16 bit size in bytes.
        !           184:    Only one standard extension type is defined at present, it is used by SOM's searching
        !           185:    mechanism.
        !           186: */
        !           187: 
        !           188: 
        !           189: 
        !           190: union CFragUsage1Union {                                                                               /* ! Meaning differs depending on value of "usage".*/
        !           191:        UInt32                                                  appStackSize;                           /* If the fragment is an application. (Not used by CFM!)*/
        !           192: };
        !           193: typedef union CFragUsage1Union                 CFragUsage1Union;
        !           194: 
        !           195: union CFragUsage2Union {                                                                               /* ! Meaning differs depending on value of "usage".*/
        !           196:        SInt16                                                  appSubdirID;                            /* If the fragment is an application.*/
        !           197:        UInt16                                                  libFlags;                                       /* If the fragment is an import library.*/
        !           198: };
        !           199: typedef union CFragUsage2Union                 CFragUsage2Union;
        !           200: 
        !           201: enum {
        !           202:                                                                                                                                /* Bit masks for the CFragUsage2Union libFlags variant.*/
        !           203:        kCFragLibUsageMapPrivatelyMask = 0x0001                                         /* Put container in app heap if necessary.*/
        !           204: };
        !           205: 
        !           206: 
        !           207: union CFragWhere1Union {                                                                               /* ! Meaning differs depending on value of "where".*/
        !           208:        UInt32                                                  spaceID;                                        /* If the fragment is in memory.  (Actually an AddressSpaceID.)*/
        !           209:        OSType                                                  forkKind;                                       /* If the fragment is in an arbitrary byte stream fork.*/
        !           210: };
        !           211: typedef union CFragWhere1Union                 CFragWhere1Union;
        !           212: 
        !           213: union CFragWhere2Union {                                                                               /* ! Meaning differs depending on value of "where".*/
        !           214:        UInt16                                                  forkInstance;                           /* If the fragment is in an arbitrary byte stream fork.*/
        !           215: };
        !           216: typedef union CFragWhere2Union                 CFragWhere2Union;
        !           217: 
        !           218: enum {
        !           219:        kDefaultCFragNameLen            = 16
        !           220: };
        !           221: 
        !           222: 
        !           223: 
        !           224: struct CFragResourceMember {
        !           225:        CFragArchitecture                               architecture;
        !           226:        UInt16                                                  reservedA;                                      /* ! Must be zero!*/
        !           227:        UInt8                                                   reservedB;                                      /* ! Must be zero!*/
        !           228:        UInt8                                                   updateLevel;
        !           229:        CFragVersionNumber                              currentVersion;
        !           230:        CFragVersionNumber                              oldDefVersion;
        !           231:        CFragUsage1Union                                uUsage1;
        !           232:        CFragUsage2Union                                uUsage2;
        !           233:        CFragUsage                                              usage;
        !           234:        CFragLocatorKind                                where;
        !           235:        UInt32                                                  offset;
        !           236:        UInt32                                                  length;
        !           237:        CFragWhere1Union                                uWhere1;
        !           238:        CFragWhere2Union                                uWhere2;
        !           239:        UInt16                                                  extensionCount;                         /* The number of extensions beyond the name.*/
        !           240:        UInt16                                                  memberSize;                                     /* Size in bytes, includes all extensions.*/
        !           241:        unsigned char                                   name[16];                                       /* ! Actually a sized PString.*/
        !           242: };
        !           243: typedef struct CFragResourceMember             CFragResourceMember;
        !           244: typedef CFragResourceMember *                  CFragResourceMemberPtr;
        !           245: 
        !           246: struct CFragResourceExtensionHeader {
        !           247:        UInt16                                                  extensionKind;
        !           248:        UInt16                                                  extensionSize;
        !           249: };
        !           250: typedef struct CFragResourceExtensionHeader CFragResourceExtensionHeader;
        !           251: typedef CFragResourceExtensionHeader * CFragResourceExtensionHeaderPtr;
        !           252: 
        !           253: struct CFragResourceSearchExtension {
        !           254:        CFragResourceExtensionHeader    header;
        !           255:        OSType                                                  libKind;
        !           256:        unsigned char                                   qualifiers[1];                          /* ! Actually four PStrings.*/
        !           257: };
        !           258: typedef struct CFragResourceSearchExtension CFragResourceSearchExtension;
        !           259: typedef CFragResourceSearchExtension * CFragResourceSearchExtensionPtr;
        !           260: 
        !           261: enum {
        !           262:        kCFragResourceSearchExtensionKind = 0x30EE
        !           263: };
        !           264: 
        !           265: 
        !           266: 
        !           267: struct CFragResource {
        !           268:        UInt32                                                  reservedA;                                      /* ! Must be zero!*/
        !           269:        UInt32                                                  reservedB;                                      /* ! Must be zero!*/
        !           270:        UInt16                                                  reservedC;                                      /* ! Must be zero!*/
        !           271:        UInt16                                                  version;
        !           272:        UInt32                                                  reservedD;                                      /* ! Must be zero!*/
        !           273:        UInt32                                                  reservedE;                                      /* ! Must be zero!*/
        !           274:        UInt32                                                  reservedF;                                      /* ! Must be zero!*/
        !           275:        UInt32                                                  reservedG;                                      /* ! Must be zero!*/
        !           276:        UInt16                                                  reservedH;                                      /* ! Must be zero!*/
        !           277:        UInt16                                                  memberCount;
        !           278:        CFragResourceMember                     firstMember;
        !           279: };
        !           280: typedef struct CFragResource                   CFragResource;
        !           281: typedef CFragResource *                                        CFragResourcePtr;
        !           282: typedef CFragResourcePtr *                             CFragResourceHandle;
        !           283: 
        !           284: enum {
        !           285:        kCurrCFragResourceVersion       = 1
        !           286: };
        !           287: 
        !           288: 
        !           289: #define AlignToFour(aValue)    (((aValue) + 3) & ~3)
        !           290: #define kBaseCFragResourceMemberSize   (offsetof ( CFragResourceMember, name ) )
        !           291: #define kBaseCFragResourceSize                 (offsetof ( CFragResource, firstMember.name ) )
        !           292: #define NextCFragResourceMemberPtr(aMemberPtr) \
        !           293:                ((CFragResourceMemberPtr) ((BytePtr)aMemberPtr + aMemberPtr->memberSize))
        !           294: #define FirstCFragResourceExtensionPtr(aMemberPtr)                                                                                     \
        !           295:                ((CFragResourceExtensionHeaderPtr) ((BytePtr)aMemberPtr +                                                       \
        !           296:                                                                                        AlignToFour ( kBaseCFragResourceMemberSize +    \
        !           297:                                                                                                                  aMemberPtr->name[0] + 1 ) ))
        !           298: #define NextCFragResourceExtensionPtr(anExtensionPtr)                                  \
        !           299:                ((CFragResourceExtensionHeaderPtr) ((BytePtr)anExtensionPtr +   \
        !           300:                                                                                        ((CFragResourceExtensionHeaderPtr)anExtensionPtr)->extensionSize ))
        !           301: #define FirstCFragResourceSearchQualifier(searchExtensionPtr)                                  \
        !           302:                ((StringPtr) ((BytePtr)searchExtensionPtr +                                                             \
        !           303:                                          offsetof ( CFragResourceSearchExtension, qualifiers ) ))
        !           304: #define NextCFragResourceSearchQualifier(searchQualifierPtr)   \
        !           305:                ((StringPtr) ((BytePtr)searchQualifierPtr +     searchQualifierPtr[0] + 1))
        !           306: 
        !           307: typedef struct OpaqueCFragConnectionID*  CFragConnectionID;
        !           308: typedef struct OpaqueCFragClosureID*   CFragClosureID;
        !           309: typedef struct OpaqueCFragContainerID*         CFragContainerID;
        !           310: typedef struct OpaqueCFragContextID*   CFragContextID;
        !           311: 
        !           312: typedef UInt32                                                         CFragLoadOptions;
        !           313: 
        !           314: enum {
        !           315:        kReferenceCFrag                         = 0x0001,                                               /* Try to use existing copy, increment reference counts.*/
        !           316:        kFindCFrag                                      = 0x0002,                                               /* Try find an existing copy, do not increment reference counts.*/
        !           317:        kPrivateCFragCopy                       = 0x0005                                                /* Prepare a new private copy.  (kReferenceCFrag | 0x0004)*/
        !           318: };
        !           319: 
        !           320: 
        !           321: 
        !           322: enum {
        !           323:        kUnresolvedCFragSymbolAddress = 0
        !           324: };
        !           325: 
        !           326: 
        !           327: typedef UInt8                                                  CFragSymbolClass;
        !           328: 
        !           329: enum {
        !           330:        kCodeCFragSymbol                        = 0,
        !           331:        kDataCFragSymbol                        = 1,
        !           332:        kTVectorCFragSymbol                     = 2,
        !           333:        kTOCCFragSymbol                         = 3,
        !           334:        kGlueCFragSymbol                        = 4
        !           335: };
        !           336: 
        !           337: 
        !           338: /*
        !           339:    �
        !           340:    ===========================================================================================
        !           341:    Macros and Functions
        !           342:    ====================
        !           343: */
        !           344: 
        !           345: 
        !           346: #define CFragHasFileLocation(where)    \
        !           347:                ( ((where) == kDataForkCFragLocator) || ((where) == kResourceCFragLocator) )
        !           348: 
        !           349: EXTERN_API( OSErr )
        !           350: GetSharedLibrary                               (ConstStr63Param                libName,
        !           351:                                                                 CFragArchitecture              archType,
        !           352:                                                                 CFragLoadOptions               loadFlags,
        !           353:                                                                 CFragConnectionID *    connID,
        !           354:                                                                 Ptr *                                  mainAddr,
        !           355:                                                                 Str255                                 errMessage)                                                     THREEWORDINLINE(0x3F3C, 0x0001, 0xAA5A);
        !           356: 
        !           357: EXTERN_API( OSErr )
        !           358: GetDiskFragment                                        (const FSSpec *                 fileSpec,
        !           359:                                                                 UInt32                                 offset,
        !           360:                                                                 UInt32                                 length,
        !           361:                                                                 ConstStr63Param                fragName,
        !           362:                                                                 CFragLoadOptions               loadFlags,
        !           363:                                                                 CFragConnectionID *    connID,
        !           364:                                                                 Ptr *                                  mainAddr,
        !           365:                                                                 Str255                                 errMessage)                                                     THREEWORDINLINE(0x3F3C, 0x0002, 0xAA5A);
        !           366: 
        !           367: EXTERN_API( OSErr )
        !           368: GetMemFragment                                 (void *                                 memAddr,
        !           369:                                                                 UInt32                                 length,
        !           370:                                                                 ConstStr63Param                fragName,
        !           371:                                                                 CFragLoadOptions               loadFlags,
        !           372:                                                                 CFragConnectionID *    connID,
        !           373:                                                                 Ptr *                                  mainAddr,
        !           374:                                                                 Str255                                 errMessage)                                                     THREEWORDINLINE(0x3F3C, 0x0003, 0xAA5A);
        !           375: 
        !           376: EXTERN_API( OSErr )
        !           377: CloseConnection                                        (CFragConnectionID *    connID)                                                         THREEWORDINLINE(0x3F3C, 0x0004, 0xAA5A);
        !           378: 
        !           379: EXTERN_API( OSErr )
        !           380: FindSymbol                                             (CFragConnectionID              connID,
        !           381:                                                                 ConstStr255Param               symName,
        !           382:                                                                 Ptr *                                  symAddr,
        !           383:                                                                 CFragSymbolClass *             symClass)                                                       THREEWORDINLINE(0x3F3C, 0x0005, 0xAA5A);
        !           384: 
        !           385: EXTERN_API( OSErr )
        !           386: CountSymbols                                   (CFragConnectionID              connID,
        !           387:                                                                 long *                                 symCount)                                                       THREEWORDINLINE(0x3F3C, 0x0006, 0xAA5A);
        !           388: 
        !           389: EXTERN_API( OSErr )
        !           390: GetIndSymbol                                   (CFragConnectionID              connID,
        !           391:                                                                 long                                   symIndex,
        !           392:                                                                 Str255                                 symName,
        !           393:                                                                 Ptr *                                  symAddr,
        !           394:                                                                 CFragSymbolClass *             symClass)                                                       THREEWORDINLINE(0x3F3C, 0x0007, 0xAA5A);
        !           395: 
        !           396: 
        !           397: /*
        !           398:    �
        !           399:    ===========================================================================================
        !           400:    Initialization & Termination Routines
        !           401:    =====================================
        !           402: */
        !           403: 
        !           404: 
        !           405: /*
        !           406:    -----------------------------------------------------------------------------------------
        !           407:    A fragment's initialization and termination routines are called when a new incarnation of
        !           408:    the fragment is created or destroyed, respectively.  Exactly when this occurs depends on
        !           409:    what kinds of section sharing the fragment has and how the fragment is prepared.  Import
        !           410:    libraries have at most one incarnation per process.  Fragments prepared with option
        !           411:    kPrivateCFragCopy may have many incarnations per process.
        !           412:    The initialization function is passed a pointer to an initialization information structure
        !           413:    and returns an OSErr.  If an initialization function returns a non-zero value the entire
        !           414:    closure of which it is a part fails.  The C prototype for an initialization function is:
        !           415:                OSErr   CFragInitFunction       ( const CFragInitBlock *        initBlock );
        !           416:    The termination procedure takes no parameters and returns nothing.  The C prototype for a
        !           417:    termination procedure is:
        !           418:                void    CFragTermProcedure      ( void );
        !           419:    Note that since the initialization and termination routines are themselves "CFM"-style
        !           420:    routines whether or not they have the "pascal" keyword is irrelevant.
        !           421: */
        !           422: 
        !           423: 
        !           424: /*
        !           425:    -----------------------------------------------------------------------------------------
        !           426:    ! Note:
        !           427:    ! The "System7" portion of these type names was introduced during the evolution towards
        !           428:    ! the now defunct Copland version of Mac OS.  Copland was to be called System 8 and there
        !           429:    ! were slightly different types for System 7 and System 8.  The "generic" type names were
        !           430:    ! conditionally defined for the desired target system.
        !           431:    ! Always use the generic types, e.g. CFragInitBlock!  The "System7" names have been kept
        !           432:    ! only to avoid perturbing code that (improperly) used the target specific type.
        !           433: */
        !           434: 
        !           435: 
        !           436: 
        !           437: struct CFragSystem7MemoryLocator {
        !           438:        LogicalAddress                                  address;
        !           439:        UInt32                                                  length;
        !           440:        Boolean                                                 inPlace;
        !           441:        UInt8                                                   reservedA;                                      /* ! Must be zero!*/
        !           442:        UInt16                                                  reservedB;                                      /* ! Must be zero!*/
        !           443: };
        !           444: typedef struct CFragSystem7MemoryLocator CFragSystem7MemoryLocator;
        !           445: 
        !           446: struct CFragSystem7DiskFlatLocator {
        !           447:        FSSpecPtr                                               fileSpec;
        !           448:        UInt32                                                  offset;
        !           449:        UInt32                                                  length;
        !           450: };
        !           451: typedef struct CFragSystem7DiskFlatLocator CFragSystem7DiskFlatLocator;
        !           452: /* ! This must have a file specification at the same offset as a disk flat locator!*/
        !           453: 
        !           454: struct CFragSystem7SegmentedLocator {
        !           455:        FSSpecPtr                                               fileSpec;
        !           456:        OSType                                                  rsrcType;
        !           457:        SInt16                                                  rsrcID;
        !           458:        UInt16                                                  reservedA;                                      /* ! Must be zero!*/
        !           459: };
        !           460: typedef struct CFragSystem7SegmentedLocator CFragSystem7SegmentedLocator;
        !           461: 
        !           462: struct CFragSystem7Locator {
        !           463:        SInt32                                                  where;
        !           464:        union {
        !           465:                CFragSystem7DiskFlatLocator     onDisk;
        !           466:                CFragSystem7MemoryLocator               inMem;
        !           467:                CFragSystem7SegmentedLocator    inSegs;
        !           468:        }                                                               u;
        !           469: };
        !           470: typedef struct CFragSystem7Locator             CFragSystem7Locator;
        !           471: typedef CFragSystem7Locator *                  CFragSystem7LocatorPtr;
        !           472: 
        !           473: struct CFragSystem7InitBlock {
        !           474:        CFragContextID                                  contextID;
        !           475:        CFragClosureID                                  closureID;
        !           476:        CFragConnectionID                               connectionID;
        !           477:        CFragSystem7Locator                     fragLocator;
        !           478:        StringPtr                                               libName;
        !           479:        UInt32                                                  reservedA;                                      /* ! Must be zero!*/
        !           480: };
        !           481: typedef struct CFragSystem7InitBlock   CFragSystem7InitBlock;
        !           482: typedef CFragSystem7InitBlock *                        CFragSystem7InitBlockPtr;
        !           483: 
        !           484: typedef CFragSystem7InitBlock                  CFragInitBlock;
        !           485: typedef CFragSystem7InitBlockPtr               CFragInitBlockPtr;
        !           486: /* These init/term routine types are only of value to CFM itself.*/
        !           487: typedef CALLBACK_API_C( OSErr , CFragInitFunction )(const CFragInitBlock *initBlock);
        !           488: typedef CALLBACK_API_C( void , CFragTermProcedure )(void );
        !           489: /*
        !           490:    �
        !           491:    ===========================================================================================
        !           492:    Old Name Spellings
        !           493:    ==================
        !           494: */
        !           495: 
        !           496: 
        !           497: /*
        !           498:    -------------------------------------------------------------------------------------------
        !           499:    We've tried to reduce the risk of name collisions in the future by introducing the phrase
        !           500:    "CFrag" into constant and type names.  The old names are defined below in terms of the new.
        !           501: */
        !           502: 
        !           503: 
        !           504: 
        !           505: enum {
        !           506:        kLoadCFrag                                      = kReferenceCFrag
        !           507: };
        !           508: 
        !           509: 
        !           510: #if OLDROUTINENAMES
        !           511: #define IsFileLocation         CFragHasFileLocation
        !           512: typedef CFragConnectionID                              ConnectionID;
        !           513: typedef CFragLoadOptions                               LoadFlags;
        !           514: typedef CFragSymbolClass                               SymClass;
        !           515: typedef CFragInitBlock                                         InitBlock;
        !           516: typedef CFragInitBlockPtr                              InitBlockPtr;
        !           517: typedef CFragSystem7MemoryLocator              MemFragment;
        !           518: typedef CFragSystem7DiskFlatLocator    DiskFragment;
        !           519: typedef CFragSystem7SegmentedLocator   SegmentedFragment;
        !           520: typedef CFragSystem7Locator                    FragmentLocator;
        !           521: typedef CFragSystem7LocatorPtr                         FragmentLocatorPtr;
        !           522: typedef CFragSystem7MemoryLocator              CFragHFSMemoryLocator;
        !           523: typedef CFragSystem7DiskFlatLocator    CFragHFSDiskFlatLocator;
        !           524: typedef CFragSystem7SegmentedLocator   CFragHFSSegmentedLocator;
        !           525: typedef CFragSystem7Locator                    CFragHFSLocator;
        !           526: typedef CFragSystem7LocatorPtr                         CFragHFSLocatorPtr;
        !           527: 
        !           528: enum {
        !           529:        kPowerPCArch                            = kPowerPCCFragArch,
        !           530:        kMotorola68KArch                        = kMotorola68KCFragArch,
        !           531:        kAnyArchType                            = kAnyCFragArch,
        !           532:        kNoLibName                                      = 0,
        !           533:        kNoConnectionID                         = 0,
        !           534:        kLoadLib                                        = kLoadCFrag,
        !           535:        kFindLib                                        = kFindCFrag,
        !           536:        kNewCFragCopy                           = kPrivateCFragCopy,
        !           537:        kLoadNewCopy                            = kPrivateCFragCopy,
        !           538:        kUseInPlace                                     = 0x80,
        !           539:        kCodeSym                                        = kCodeCFragSymbol,
        !           540:        kDataSym                                        = kDataCFragSymbol,
        !           541:        kTVectSym                                       = kTVectorCFragSymbol,
        !           542:        kTOCSym                                         = kTOCCFragSymbol,
        !           543:        kGlueSym                                        = kGlueCFragSymbol,
        !           544:        kInMem                                          = kMemoryCFragLocator,
        !           545:        kOnDiskFlat                                     = kDataForkCFragLocator,
        !           546:        kOnDiskSegmented                        = kResourceCFragLocator,
        !           547:        kIsLib                                          = kImportLibraryCFrag,
        !           548:        kIsApp                                          = kApplicationCFrag,
        !           549:        kIsDropIn                                       = kDropInAdditionCFrag,
        !           550:        kFullLib                                        = kIsCompleteCFrag,
        !           551:        kUpdateLib                                      = kFirstCFragUpdate,
        !           552:        kWholeFork                                      = kCFragGoesToEOF,
        !           553:        kCFMRsrcType                            = kCFragResourceType,
        !           554:        kCFMRsrcID                                      = kCFragResourceID,
        !           555:        kSHLBFileType                           = kCFragLibraryFileType,
        !           556:        kUnresolvedSymbolAddress        = kUnresolvedCFragSymbolAddress
        !           557: };
        !           558: 
        !           559: 
        !           560: enum {
        !           561:        kPowerPC                                        = kPowerPCCFragArch,
        !           562:        kMotorola68K                            = kMotorola68KCFragArch
        !           563: };
        !           564: 
        !           565: #endif  /* OLDROUTINENAMES */
        !           566: 
        !           567: 
        !           568: 
        !           569: 
        !           570: 
        !           571: 
        !           572: #if PRAGMA_STRUCT_ALIGN
        !           573:        #pragma options align=reset
        !           574: #elif PRAGMA_STRUCT_PACKPUSH
        !           575:        #pragma pack(pop)
        !           576: #elif PRAGMA_STRUCT_PACK
        !           577:        #pragma pack()
        !           578: #endif
        !           579: 
        !           580: #ifdef PRAGMA_IMPORT_OFF
        !           581: #pragma import off
        !           582: #elif PRAGMA_IMPORT
        !           583: #pragma import reset
        !           584: #endif
        !           585: 
        !           586: #ifdef __cplusplus
        !           587: }
        !           588: #endif
        !           589: 
        !           590: #endif /* __CODEFRAGMENTS__ */
        !           591: 

unix.superglobalmegacorp.com

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