Oberon || Library || Module Index || Search Engine || Definition || Module


Ulm's Oberon Library:
SysModules


NAME

SysModules - modules and blocks of the current process

SYNOPSIS

(* $P- don't trace any pointers *)
(* names are read-only and 0X-terminated *)
TYPE Name = (* $O- *) POINTER TO ARRAY 1024 OF CHAR (* $O= *);
TYPE Address = Types.Address;


TYPE BlockList = (* $O- *) POINTER TO BlockListRec (* $O= *); TYPE BlockListRec = RECORD next: BlockList; (* in memory order *) begin, end: Address; (* of program text *) tag: Address; (* pointer list only *) name: Name; (* name of procedure (or module) *) END;

TYPE Module = (* $O- *) POINTER TO ModuleRec (* $O= *); TYPE ModuleRec = RECORD next: Module; (* in linkage order *) name: Name; init: PROCEDURE; begin, end: Address; (* of program text *) vars: Address; (* global variables *) blocks: BlockList; (* procedures and module body *) nofblocks: INTEGER; (* number of blocks *) END; (* $P= *)

VAR modules: Module;

DESCRIPTION

SysModules interfaces the list of modules and blocks which is generated during compile time and the runtime initialization. The data structure pointed to by modules is to be considered read-only. Please note that the pointer components of ModuleRec and BlockListRec are protected against traces by the garbage collector (see SysStorage).

SysModules is mainly used by the garbage collector and by SysMain which determines the initialization order.

SEE ALSO

SysCommands
likewise generated list of commands
SysMain
control of initialization order
SysStorage
garbage collector

Edited by: borchert, last change: 1996/09/17, revision: 1.3, converted to HTML: 1997/04/28

Oberon || Library || Module Index || Search Engine || Definition || Module