Advanced Search
Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

Previous Book Contents Book Index Next

Inside Macintosh: PowerPC System Software /
Chapter 3 - Code Fragment Manager / Code Fragment Manager Reference
Code Fragment Manager Routines / Loading Fragments


GetMemFragment

You can use the GetMemFragment function to prepare a memory-based fragment.

OSErr GetMemFragment (Ptr memAddr, long length, Str63 fragName, 
                        LoadFlags findFlags, ConnectionID *connID, 
                        Ptr *mainAddr, Str255 errName);
memAddr
The address of the fragment.
length
The size, in bytes, of the fragment.
fragName
The name of the fragment. (This information is used primarily to allow you to identify the fragment during debugging.)
findFlags
A flag that specifies the operation to perform on the fragment. See the description of the GetDiskFragment function on page 3-19 for the values you can pass in this parameter.
connID
On exit, the connection ID that identifies the connection to the fragment. You can pass this ID to other Code Fragment Manager routines (for example, CloseConnection).
mainAddr
On exit, the main address of the fragment. The value returned is specific to the fragment itself.
errName
On exit, the name of the fragment that could not successfully be loaded. This parameter is meaningful only if the call to GetMemFragment fails.
DESCRIPTION
The GetMemFragment function prepares for subsequent execution a fragment that
is already loaded into memory. This function is most useful for handling code that
is contained in a resource. You can read the resource data into memory using
normal Resource Manager routines (for example, Get1Resource) and then call GetMemFragment to complete the processing required to prepare it for use (for example, to resolve any imports and execute the fragment's initialization routine).

WARNING
You must lock the resource-based fragment into memory (for example, by calling HLock) before calling GetMemFragment. You must not unlock the memory until you've closed the connection to the fragment (by calling CloseConnection).
RESULT CODES
fragNoErr0No error
paramErr-50Parameter error
fragLibNotFound-2804Specified fragment not found
fragHadUnresolveds-2807Loaded fragment has unacceptable unresolved symbols
fragNoMem-2809Not enough memory for internal bookkeeping
fragNoAddrSpace-2810Not enough memory in user's address space for section
fragObjectInitSeqErr-2812Order error during user initialization function
fragImportTooOld-2813Import library is too old
fragImportTooNew-2814Import library is too new
fragInitLoop-2815Circularity in required initialization order
fragLibConnErr-2817Error connecting to fragment
fragUserInitProcErr-2821Initialization procedure did not return noErr
SEE ALSO
See "Loading Code Fragments" on page 3-10 for more details on the fragment-
loading process.


Previous Book Contents Book Index Next

© Apple Computer, Inc.
3 JUL 1996

Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2004 Apple Computer, Inc.
All rights reserved. | Terms of use | Privacy Notice