#include <revolution/rso.h> BOOL RSOLinkList(void* i_newRso, void* i_bss); BOOL RSOLinkListFixed(void* i_newRso, void *i_bss, RSOFixedLevel i_fixed);
| i_newRso | Pointer to the dynamic module information to link. |
|---|---|
| i_bss | Pointer to the available memory space used for the bss section.((Size is allocated by RSOObjectHeader.bssSize.) |
| i_fixed | Level to release. (RSOFixedLevel) |
Processing result.
Success: TRUE
Failure: FALSE
The RSOLinkList function links the specified module. Once the module is unlinked, the memory copy of the module can be reused with the RSOLinkList function if the module startup code initializes its data section explicitly.
The RSOLinkListFixed function links the specified module and releases part of the memory occupied by the dynamic module.
Once the module is linked using the RSOLinkListFixed function, the memory space that comes after (specified by RSOGetFixedSize) can be used for any purpose (for example, for the BSS area).
If the release level is RSO_FL_INTERNAL, the internal reference information will be released.
In this case, the module memory copy cannot be reused, even after being unlinked.
If the release level is RSO_FL_EXTERNAL, the internal and the external (import) reference information is released.
In this case, in addition to the restrictions of RSO_FL_INTERNAL, the following restrictions apply:
1. When a module referenced by this module is unlinked, the referenced functions do not show as unresolved.
2. The module will not be able to reference the functions on the dynamic module registered after the link.
Be aware that the location specified by RSOGetFixedSize is converted from the file offset to the virtual address when the module is linked.
RSOListInit, RSOUnLinkList, RSOGetFixedSize
2008/07/10 Removed RSOLink.h from Syntax.
2007/01/10 Changed argument to RSOFixedLevel.
2006/06/14 Initial version.
CONFIDENTIAL