?? LEFT := 1, RIGHT := 110 ??
?? FMT (FORMAT := ON, keyw := upper, ident := lower) ??
?? NEWTITLE := 'NOS/VE: Program Control - Program Conditions' ??
?? NEWTITLE := '  Global System Declarations' ??
MODULE tmm$system_req_fault_processor;
{   PURPOSE:
{     This module contains and restricts the knowledge necessary to dispose
{     of the system request monitor fault.

{   DESIGN:
{     The procedure in this module are designed to have an execute bracket
{     of 2, 13 and a call bracket of 13.
?? EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc OST$STATUS
*copyc OST$STACK_FRAME_SAVE_AREA
?? POP ??
?? TITLE := '  Global External Procedures' ??
?? EJECT ??


*copyc PMH$EXIT
*copyc PMP$EXIT
*copyc OSH$SET_STATUS_ABNORMAL
*copyc OSP$SET_STATUS_ABNORMAL
*copyc OSP$APPEND_STATUS_INTEGER

*copyc OSP$SYSTEM_ERROR
*copyc CLP$CONVERT_INTEGER_TO_RJSTRING
?? TITLE := '  Internal Declarations' ??
?? EJECT ??
*copyc OST$MONITOR_FAULT
*copyc PME$SYSTEM_EXCEPTIONS
?? TITLE := '  [XDCL] tmp$dispose_system_req_fault' ??
?? EJECT ??


  PROCEDURE [XDCL] tmp$dispose_system_req_fault (fault: ost$monitor_fault;
        sfsa: ^ost$stack_frame_save_area);

*copy TMH$DISPOSE_SYSTEM_REQ_FAULT

    VAR
      executing_ring: ost$ring,
      status: ost$status;

    osp$set_status_abnormal (pmc$program_management_id, pme$unknown_system_request, '', status);
    osp$append_status_integer (osc$status_parameter_delimiter, sfsa^.minimum_save_area.p_register.pva.ring,
          16, FALSE, status);
    osp$append_status_integer (' ', sfsa^.minimum_save_area.p_register.pva.seg, 16, FALSE, status);
    osp$append_status_integer (' ', sfsa^.minimum_save_area.p_register.pva.offset, 16, FALSE, status);

    CASE #ring (^executing_ring) OF
    = osc$os_ring_1 =
      osp$system_error ('R1 unknown monitor request', ^status);
    = osc$tmtr_ring =
      osp$system_error ('R2 unknown monitor request', ^status);
    = osc$tsrv_ring .. osc$user_ring_4 =
      pmp$exit (status);
    CASEND;
  PROCEND tmp$dispose_system_req_fault;
MODEND tmm$system_req_fault_processor;
