RSOLinkList

C Specification


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

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

BOOL RSOLinkListFixed(void* i_newRso, void *i_bss, int 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 Release level:RSOFixedLevel.

Return Values

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

Description

RSOLinkList() links the specified module. Once the module is unlinked, the memory copy of the module can be reused with RSOLinkList() if the module startup code initializes its data section explicitly.

RSOLinkListFixed()links the specified module and releases part of the memory occupied by the dynamic module. Once the module is linked using RSOLinkListFixed, the remaining memory 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 deallocated stage is RSO_FL_EXTERNAL, the internal and external (import) reference information is deallocated.
In this case, in addition to the restrictions of RSO_FL_INTERNAL, the following restrictions apply:

Note: The location specified by RSOGetFixedSize is converted from the file offset to the virtual address when the module is linked.

See Also

RSO API Introduction
RSOListInit, RSOUnLinkList, RSOGetFixedSize

Revision History

2006/06/14 Initial version.


CONFIDENTIAL