~
BEGIN
OPEN DragonStack;
DisableInterrupts:
PUBLIC
PROC ~ {
Must NOT be INLINE
status: StackedStatusWord ← GetYoungestStatus[];
IF status.userMode THEN ERROR;
status.trapsEnabled ← TRUE;
SetYoungestStatus[status];
};
EnableInterrupts:
PUBLIC
PROC ~ {
Must NOT be INLINE
status: StackedStatusWord ← GetYoungestStatus[];
status.trapsEnabled ← FALSE;
SetYoungestStatus[status];
};
MarkSignalHandler:
PUBLIC
PROC ~ {
This procedure must NOT be INLINE so it marks the correct frame
status: StackedStatusWord ← GetYoungestStatus[];
status.signalHandler ← TRUE;
SetYoungestStatus[status];
};