<<>> <> <> <> <<>> <> <<>> DIRECTORY TargetArchitecture, Shepherd, BreakWorldArchitecture, Rope USING [ROPE]; Breakpoint: CEDAR DEFINITIONS ~ { <> SetBreakpoint: SetBreakProc; SetBreakProc: TYPE ~ PROCEDURE [ address: BreakWorldArchitecture.Address, clientData: ClientData, breakProc: BreakProc, breakData: BreakData, damages: TargetArchitecture.RegisterClass _ TargetArchitecture.RegisterClass.all] RETURNS [Break]; ClientData: TYPE ~ REF ANY; BreakProc: TYPE ~ BreakWorldArchitecture.Address; BreakData: TYPE ~ CARD32; BreakProcedure: TYPE ~ PROCEDURE [breakData: BreakData] RETURNS []; Break: TYPE ~ REF BreakRep _ nullBreak; nullBreak: Break ~ NIL; BreakRep: TYPE; ClearBreakpoint: ClearBreakProc; ClearBreakProc: TYPE ~ PROCEDURE [break: Break] RETURNS []; <> <> EnumerateBreakpoints: EnumerateBreakProc; EnumerateBreakProc: TYPE ~ PROCEDURE [breakWorld: BreakWorldArchitecture.BreakWorld, proc: BreakpointProc] RETURNS [quit: BOOLEAN _ FALSE]; BreakpointProc: TYPE ~ PROCEDURE [clientData: ClientData] RETURNS [quit: BOOLEAN]; <> IsNullBreak: PROCEDURE [break: Break] RETURNS [BOOLEAN]; AddressFromBreak: PROCEDURE [break: Break] RETURNS [BreakWorldArchitecture.Address]; PatchFromBreak: PROCEDURE [break: Break] RETURNS [Shepherd.Patch]; ClientDataFromBreak: PROCEDURE [break: Break] RETURNS [ClientData]; <> NewBreakAccess: PROCEDURE [] RETURNS [BreakWorldArchitecture.BreakAccess]; BreakAccess: TYPE ~ REF BreakAccessRep _ nullBreakAccess; nullBreakAccess: BreakAccess ~ NIL; BreakAccessRep: TYPE ~ RECORD [ procs: BreakAccessProcs, data: BreakAccessData ]; BreakAccessProcs: TYPE ~ REF BreakAccessProcsRep _ nullBreakAccessProcs; nullBreakAccessProcs: BreakAccessProcs ~ NIL; BreakAccessProcsRep: TYPE ~ RECORD [ set: SetBreakProc, clear: ClearBreakProc, enumerate: EnumerateBreakProc ]; BreakAccessData: TYPE ~ REF BreakAccessDataRep _ nullBreakAccessData; nullBreakAccessData: BreakAccessData ~ NIL; BreakAccessDataRep: TYPE; RememberBreak: PROCEDURE [break: Break]; ForgetBreak: PROCEDURE [break: Break]; NewBreak: PROCEDURE [ address: BreakWorldArchitecture.Address, patch: Shepherd.Patch, clientData: ClientData] RETURNS [Break]; <> ErrorCode: TYPE ~ ATOM _ nullErrorCode; nullErrorCode: ErrorCode ~ NIL; ErrorMessage: TYPE ~ Rope.ROPE _ nullErrorMessage; nullErrorMessage: ErrorMessage ~ NIL; CantSet: ERROR [code: ErrorCode, message: ErrorMessage]; <> CantClear: ERROR [code: ErrorCode, message: ErrorMessage]; <> Cant: ERROR [code: ErrorCode, message: ErrorMessage]; <> }. <<>>