MonitoredRecordPointerFromAddress:
PROCEDURE [
address: BreakWorldArchitecture.Address]
RETURNS [
LONG
POINTER
TO MonitoredRecord] ~
TRUSTED {
targetAddress: TargetArchitecture.Address ~
BreakWorldArchitecture.TargetAddressFromBreakWorldAddress[address: address];
monitoredRecordPointer: LONG POINTER TO MonitoredRecord ~ LOOPHOLE[targetAddress];
IF targetAddress.IsNullAddress[]
THEN {
ERROR FakeCirio.Cant[message: "MonitoredRecordPointerFromAddress[nullAddress]"];
};
RETURN [monitoredRecordPointer];
};
MonitoredCallEntry[monitoredRecordPointer: monitoredRecordPointer, proc: proc];