RSOLinkList

Syntax

#include <revolution/rso.h>

BOOL RSOLinkList(void* i_newRso, void* i_bss);

BOOL RSOLinkListFixed(void* i_newRso, void *i_bss, RSOFixedLevel i_fixed);

Arguments

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)

Return Values

Processing result.
Success: TRUE
Failure: FALSE

Description

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.

See Also

RSOListInit, RSOUnLinkList, RSOGetFixedSize

Revision History

2008/07/10 Removed RSOLink.h from Syntax.
2007/01/10 Changed argument to RSOFixedLevel.
2006/06/14 Initial version.


CONFIDENTIAL