Mac OS 9
CodeFragments.h File Reference

Public Code Fragment Manager Interfaces. More...

#include <MacTypes.h>
#include <CFBundle.h>
#include <Files.h>
#include <Multiprocessing.h>

Go to the source code of this file.

Data Structures

union  CFragUsage1Union
 
union  CFragUsage2Union
 
union  CFragWhere1Union
 
union  CFragWhere2Union
 
struct  CFragResourceMember
 
struct  CFragResourceExtensionHeader
 
struct  CFragResourceSearchExtension
 
struct  CFragResource
 
struct  CFragSystem7MemoryLocator
 
struct  CFragSystem7DiskFlatLocator
 
struct  CFragSystem7SegmentedLocator
 
struct  CFragCFBundleLocator
 
struct  CFragSystem7Locator
 
struct  CFragSystem7InitBlock
 

Macros

#define AlignToFour(aValue)   (((aValue) + 3) & ~3)
 
#define CFMOffsetOf(structure, field)   ((UInt32) & ((structure *)0)->field)
 
#define kBaseCFragResourceMemberSize   (CFMOffsetOf(CFragResourceMember, name))
 
#define kBaseCFragResourceSize   (CFMOffsetOf(CFragResource, firstMember.name))
 
#define NextCFragResourceMemberPtr(aMemberPtr)    ((CFragResourceMemberPtr)((BytePtr)aMemberPtr + aMemberPtr->memberSize))
 
#define FirstCFragResourceExtensionPtr(aMemberPtr)
 
#define NextCFragResourceExtensionPtr(anExtensionPtr)
 
#define FirstCFragResourceSearchQualifier(searchExtensionPtr)
 
#define NextCFragResourceSearchQualifier(searchQualifierPtr)    ((StringPtr)((BytePtr)searchQualifierPtr + searchQualifierPtr[0] + 1))
 
#define CFragHasFileLocation(where)
 

Typedefs

typedef OSType CFragArchitecture
 
typedef UInt32 CFragVersionNumber
 
typedef UInt8 CFragUsage
 
typedef UInt8 CFragLocatorKind
 
typedef union CFragUsage1Union CFragUsage1Union
 
typedef union CFragUsage2Union CFragUsage2Union
 
typedef union CFragWhere1Union CFragWhere1Union
 
typedef union CFragWhere2Union CFragWhere2Union
 
typedef struct CFragResourceMember CFragResourceMember
 
typedef CFragResourceMemberCFragResourceMemberPtr
 
typedef struct CFragResourceExtensionHeader CFragResourceExtensionHeader
 
typedef CFragResourceExtensionHeaderCFragResourceExtensionHeaderPtr
 
typedef struct CFragResourceSearchExtension CFragResourceSearchExtension
 
typedef CFragResourceSearchExtensionCFragResourceSearchExtensionPtr
 
typedef struct CFragResource CFragResource
 
typedef CFragResourceCFragResourcePtr
 
typedef CFragResourcePtrCFragResourceHandle
 
typedef MPProcessID CFragContextID
 
typedef struct OpaqueCFragConnectionID * CFragConnectionID
 
typedef struct OpaqueCFragClosureID * CFragClosureID
 
typedef struct OpaqueCFragContainerID * CFragContainerID
 
typedef OptionBits CFragLoadOptions
 
typedef UInt8 CFragSymbolClass
 
typedef struct CFragSystem7MemoryLocator CFragSystem7MemoryLocator
 
typedef struct CFragSystem7DiskFlatLocator CFragSystem7DiskFlatLocator
 
typedef struct CFragSystem7SegmentedLocator CFragSystem7SegmentedLocator
 
typedef struct CFragCFBundleLocator CFragCFBundleLocator
 
typedef struct CFragSystem7Locator CFragSystem7Locator
 
typedef CFragSystem7LocatorCFragSystem7LocatorPtr
 
typedef struct CFragSystem7InitBlock CFragSystem7InitBlock
 
typedef CFragSystem7InitBlockCFragSystem7InitBlockPtr
 
typedef CFragSystem7InitBlock CFragInitBlock
 
typedef CFragSystem7InitBlockPtr CFragInitBlockPtr
 

Enumerations

enum  { kCFragResourceType = FOUR_CHAR_CODE('cfrg') , kCFragResourceID = 0 , kCFragLibraryFileType = FOUR_CHAR_CODE('shlb') , kCFragAllFileTypes = (long)0xFFFFFFFF }
 
enum  { kPowerPCCFragArch = FOUR_CHAR_CODE('pwpc') , kMotorola68KCFragArch = FOUR_CHAR_CODE('m68k') , kAnyCFragArch = 0x3F3F3F3F }
 
enum  { kNullCFragVersion = 0 , kWildcardCFragVersion = (long)0xFFFFFFFF }
 
enum  {
  kImportLibraryCFrag = 0 , kApplicationCFrag = 1 , kDropInAdditionCFrag , kStubLibraryCFrag = 3 ,
  kWeakStubLibraryCFrag = 4
}
 
enum  { kIsCompleteCFrag = 0 , kFirstCFragUpdate = 1 }
 
enum  { kCFragGoesToEOF = 0 }
 
enum  {
  kMemoryCFragLocator = 0 , kDataForkCFragLocator = 1 , kResourceCFragLocator = 2 , kNamedFragmentCFragLocator = 4 ,
  kCFBundleCFragLocator = 5 , kCFBundleIntCFragLocator
}
 
enum  { kCFragLibUsageMapPrivatelyMask }
 
enum  { kDefaultCFragNameLen = 16 }
 
enum  { kCFragResourceSearchExtensionKind = 0x30EE }
 
enum  { kCurrCFragResourceVersion = 1 }
 
enum  { kReferenceCFrag , kFindCFrag , kPrivateCFragCopy }
 
enum  { kUnresolvedCFragSymbolAddress = 0 }
 
enum  {
  kCodeCFragSymbol = 0 , kDataCFragSymbol = 1 , kTVectorCFragSymbol = 2 , kTOCCFragSymbol = 3 ,
  kGlueCFragSymbol = 4
}
 
enum  { kLoadCFrag = kReferenceCFrag }
 

Functions

OSErr GetSharedLibrary (ConstStr63Param libName, CFragArchitecture archType, CFragLoadOptions options, CFragConnectionID *connID, Ptr *mainAddr, Str255 errMessage)
 
OSErr GetDiskFragment (const FSSpec *fileSpec, UInt32 offset, UInt32 length, ConstStr63Param fragName, CFragLoadOptions options, CFragConnectionID *connID, Ptr *mainAddr, Str255 errMessage)
 
OSErr GetMemFragment (void *memAddr, UInt32 length, ConstStr63Param fragName, CFragLoadOptions options, CFragConnectionID *connID, Ptr *mainAddr, Str255 errMessage)
 
OSErr CloseConnection (CFragConnectionID *connID)
 
OSErr FindSymbol (CFragConnectionID connID, ConstStr255Param symName, Ptr *symAddr, CFragSymbolClass *symClass)
 
OSErr CountSymbols (CFragConnectionID connID, long *symCount)
 
OSErr GetIndSymbol (CFragConnectionID connID, long symIndex, Str255 symName, Ptr *symAddr, CFragSymbolClass *symClass)
 
typedef CALLBACK_API_C (OSErr, CFragInitFunction)(const CFragInitBlock *initBlock)
 
typedef CALLBACK_API_C (void, CFragTermProcedure)(void)
 
OSErr ConvertBundlePreLocator (CFragSystem7LocatorPtr initBlockLocator)
 

Detailed Description

Public Code Fragment Manager Interfaces.

Introduced In: Forte CFM and Carbon
Avaliable From: Universal Interfaces 3.4.1
Copyright: � 1992-2001 by Apple Computer, Inc., all rights reserved.

For bug reports, consult the following page on the World Wide Web:

http://developer.apple.com/bugreporter/

Macro Definition Documentation

◆ CFragHasFileLocation

#define CFragHasFileLocation (   where)
Value:
(((where) == kDataForkCFragLocator) || ((where) == kResourceCFragLocator) || \
((where) == kCFBundleIntCFragLocator))
Definition: MacTypes.h:520

Macros and Functions

◆ FirstCFragResourceExtensionPtr

#define FirstCFragResourceExtensionPtr (   aMemberPtr)
Value:
((CFragResourceExtensionHeaderPtr)((BytePtr)aMemberPtr + \
AlignToFour( \
kBaseCFragResourceMemberSize + \
aMemberPtr->name[0] + 1)))
Definition: CodeFragments.h:219

◆ FirstCFragResourceSearchQualifier

#define FirstCFragResourceSearchQualifier (   searchExtensionPtr)
Value:
((StringPtr)((BytePtr)searchExtensionPtr + \
CFMOffsetOf(CFragResourceSearchExtension, qualifiers)))
unsigned char * StringPtr
Definition: MacTypes.h:477
Definition: CodeFragments.h:226

◆ NextCFragResourceExtensionPtr

#define NextCFragResourceExtensionPtr (   anExtensionPtr)
Value:
((CFragResourceExtensionHeaderPtr)((BytePtr)anExtensionPtr + \
anExtensionPtr) \
->extensionSize))

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

The Code Fragment Manager API

General Types and Constants

◆ anonymous enum

anonymous enum

Old Name Spellings


We've tried to reduce the risk of name collisions in the future by introducing the phrase "CFrag" into constant and type names. The old names are defined below in terms of the new.

Function Documentation

◆ CloseConnection()

OSErr CloseConnection ( CFragConnectionID *  connID)

CloseConnection()

Non-Carbon CFM: in CFragManager 1.0 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ ConvertBundlePreLocator()

OSErr ConvertBundlePreLocator ( CFragSystem7LocatorPtr  initBlockLocator)

For use by init routines. If you get a BundleIntLocator (used to be BundlePreLocator), convert it to a CFBundleLocator with this. Only call this once per locator. ConvertBundlePreLocator()

Non-Carbon CFM: not available
Carbon Lib: in CarbonLib 1.4 and later
Mac OS X: in version 10.0 and later

◆ CountSymbols()

OSErr CountSymbols ( CFragConnectionID  connID,
long *  symCount 
)

CountSymbols()

Non-Carbon CFM: in CFragManager 1.0 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ FindSymbol()

OSErr FindSymbol ( CFragConnectionID  connID,
ConstStr255Param  symName,
Ptr *  symAddr,
CFragSymbolClass *  symClass 
)

FindSymbol()

Non-Carbon CFM: in CFragManager 1.0 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ GetDiskFragment()

OSErr GetDiskFragment ( const FSSpec *  fileSpec,
UInt32  offset,
UInt32  length,
ConstStr63Param  fragName,
CFragLoadOptions  options,
CFragConnectionID *  connID,
Ptr *  mainAddr,
Str255  errMessage 
)

GetDiskFragment()

Non-Carbon CFM: in CFragManager 1.0 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ GetIndSymbol()

OSErr GetIndSymbol ( CFragConnectionID  connID,
long  symIndex,
Str255  symName,
Ptr *  symAddr,
CFragSymbolClass *  symClass 
)

GetIndSymbol()

Non-Carbon CFM: in CFragManager 1.0 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ GetMemFragment()

OSErr GetMemFragment ( void *  memAddr,
UInt32  length,
ConstStr63Param  fragName,
CFragLoadOptions  options,
CFragConnectionID *  connID,
Ptr *  mainAddr,
Str255  errMessage 
)

GetMemFragment()

Non-Carbon CFM: in CFragManager 1.0 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ GetSharedLibrary()

OSErr GetSharedLibrary ( ConstStr63Param  libName,
CFragArchitecture  archType,
CFragLoadOptions  options,
CFragConnectionID *  connID,
Ptr *  mainAddr,
Str255  errMessage 
)

GetSharedLibrary()

Discussion: The connID, mainAddr, and errMessage parameters may be NULL with MacOS 8.5 and later. Passing NULL as those parameters when running Mac OS 8.1 and earlier systems will corrupt low-memory.

Non-Carbon CFM: in CFragManager 1.0 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later