<> <> <> <<>> DIRECTORY Basics USING [ UnsafeBlock ], SunADotOut USING [ Module ], SunADotOutPrivate USING [ RelocationInfo, Symbol, Segment ]; SparcLoader: CEDAR DEFINITIONS ~ { OPEN SunADotOut, SunADotOutPrivate; Flavor: TYPE ~ ATOM; -- { text, data, bss }; TargetAddress: TYPE ~ RECORD [ CARD32 ]; UndefinedSymbol: SIGNAL [ info: RelocationInfo ] RETURNS [ s: Symbol _ NIL ]; AllocateProc: TYPE ~ PROC [ flavor: Flavor _ $text, segment: Segment ] RETURNS [ address: TargetAddress ]; PokeProc: TYPE ~ PROC [ address: TargetAddress, block: Basics.UnsafeBlock ]; Load: PROC [ m: Module, allocate: AllocateProc, poke: PokeProc, chunk: CARD32 ]; }.