RSOLocateObject

C Specification


#include <revolution/rso.h>
#include <revolution/RSOLink.h>

BOOL RSOLocateObject ( void* newModule, void* bss ); 
BOOL RSOLocateObjectFixed (void* newModule,void* bss );

Arguments

newRso Pointer to the target dynamic module information
bss Pointer to the available memory space used for the bss section.
(Size is allocated by RSOObjectHeader.bssSize)

Return Values

Returns success or failure of the operation
Success: TRUE
Fail: FALSE

Description

RSOLocateObject performs the following operations on the target module data.
- Changes the internally referenced address and externally referenced address from offset to virtual addresses.
- Allocates the BBS section.
- Sets the externally referenced address to unresolved.

RSOLocateObjectFixed releases part of the memory held by the module in addition to the capability of RSOLocateObject.
After RSOLocateObject, the remaining memory space specified by RSOGetFixedSize can be used for any purpose (e.g., for bss area).
The deallocated stage corresponds to RSO_FL_INTERNAL, where the internal reference information is deallocated.

The dynamic module memory copy cannot be reused after RSOLocateObjectFixed.

See Also

RSO API Introduction
RSOStaticLocateObject, RSOUnLocateObject, RSOLink, RSOUnLink, RSOGetFixedSize,

Revision History

06/14/2006 Initial version.


CONFIDENTIAL