?? RIGHT := 110, LEFT := 1 ??
?? FMT (FORMAT := ON, keyw := upper, ident := lower) ??
?? NEWTITLE := 'mmm$segemnt_fault_handler' ??
MODULE mmm$segment_fault_handler;

{
{  PURPOSE:
{    This module processes segment access monitor faults in job mode.
{
{


?? PUSH (LISTEXT := ON) ??
*copyc MMD$SEGMENT_ACCESS_CONDITION
*copyc OST$MONITOR_FAULT
*copyc OST$STACK_FRAME_SAVE_AREA
?? POP ??


{  External procedures called:

*copyc PMP$DISPOSE_SEGMENT_ACCESS_COND

?? TITLE := 'mmp$segment_fault_handler' ??
?? EJECT ??

  PROCEDURE [XDCL] mmp$segment_fault_handler (segment_access_fault {input} : ost$monitor_fault;
        fault_save_area_p {input} : ^ost$stack_frame_save_area);

*copy MMH$SEGMENT_FAULT_HANDLER

    VAR
      segment_access_fault_p: ^mmt$segment_access_condition;

    segment_access_fault_p := #LOC (segment_access_fault.contents);

{  Check for user defined error exit procedure and call it if it exists.
{  *** Have to wait until SDTX implemented.***

    pmp$dispose_segment_access_cond (segment_access_fault_p^, fault_save_area_p);
    RETURN;

  PROCEND mmp$segment_fault_handler;
MODEND mmm$segment_fault_handler;
