DIRECTORY
DragonStack;
DragonStackImpl: CEDAR PROGRAM
IMPORTS DragonStack
EXPORTS DragonStack
~ 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];
};
END.