Oberon || Library || Module Index || Search Engine || Definition || Module
(* $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;
SysModules is mainly used by the garbage collector and by SysMain which determines the initialization order.
Oberon || Library || Module Index || Search Engine || Definition || Module