#include <revolution/rso.h>
#include <revolution/RSOLink.h>
BOOL RSOLocateObject ( void* newModule, void* bss );
BOOL RSOLocateObjectFixed (void* newModule,void* bss );
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) |
Returns success or failure of the operation
Success: TRUE
Fail: FALSE
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.
RSO API Introduction
RSOStaticLocateObject, RSOUnLocateObject, RSOLink, RSOUnLink, RSOGetFixedSize,
06/14/2006 Initial version.
CONFIDENTIAL