Trailing-Edge
-
PDP-10 Archives
-
BB-FB49A-RM
-
sources/snterr.b36
There are no other files named snterr.b36 in the archive.
%title 'SNT Error handling routines'
module SNT$ERRORS (ident = 'Version 1.00') =
begin
! Copyright (c) 1984, 1985 by
! DIGITAL EQUIPMENT CORPORATION, Maynard, Massachusetts
!
! This software is furnished under a license and may be used and copied
! only in accordance with the terms of such license and with the
! inclusion of the above copyright notice. This software or any other
! copies thereof may not be provided or otherwise made available to any
! other person. No title to and ownership of the software is hereby
! transferred.
!
! The information in this software is subject to change without notice
! and should not be construed as a commitment by Digital Equipment
! Corporation.
!
! Digital assumes no responsibility for the use or reliability of its
! software on equipment which is not supplied by Digital.
!++
! FACILITY:
!
! DECnet/SNA TOPS-20 Trace Protocol Utility error handler.
!
! ABSTRACT:
!
! This module handles error conditions for SNATRACE.
!
! ENVIRONMENT:
!
! TOPS-20 Operating Systems, user mode.
!
! AUTHOR: Dennis Brannon, CREATION DATE: January 17,1984
!
! MODIFIED BY:
!
! D. Brannon, 11-Oct-84 : VERSION 1.00
!
!--
%SBTTL 'Declarations'
!
! TABLE OF CONTENTS:
!
forward routine
SNT$MSGHANDLER;
!
! INCLUDE FILES:
!
library 'SNTDEF';
library 'SNTLIB';
!
! MACROS:
!
!
! EQUATED SYMBOLS:
!
!
! OWN STORAGE:
!
!
! EXTERNAL REFERENCES:
!
external routine
MSG$EXPAND_ERROR;
%sbttl 'SNT$MSGHANDLER'
global routine SNT$MSGHANDLER (SIGVEC, MECHVEC, ENAVEC) =
!++
! FUNCTIONAL DESCRIPTION:
!
! Condition handler to perform cleanup operations.
!
! FORMAL PARAMETERS:
!
! SIGVEC
! MECHVEC
! ENAVEC
!
! IMPLICIT INPUTS:
!
! NONE
!
! IMPLICIT OUTPUTS:
!
! NONE
!
! ROUTINE VALUE:
! COMPLETION CODES:
!
! Returns with SS$_RESIGNAL to resignal the condition.
!
! SIDE EFFECTS:
!
! NONE
!
!--
BEGIN
MAP
SIGVEC : REF BLOCK,
MECHVEC: REF BLOCK,
ENAVEC : REF BLOCK;
LOCAL
MSGBLK : REF BLOCK,
SIZE,
STATUS;
BIND
SIGNAME = SIGVEC [CHF$L_SIG_NAME] : CONDITION_VALUE;
!
! If we are unwinding then just resignal.
!
IF .SIGVEC [CHF$L_SIG_NAME] EQLU SS$_UNWIND
THEN
RETURN SS$_RESIGNAL;
!
! If the error is severe then resignal.
!
IF .SIGNAME [STS$V_SEVERITY] EQLU STS$K_SEVERE
THEN
RETURN SS$_RESIGNAL;
!
! Output the message.
!
STATUS = MSG$EXPAND_ERROR (MSGBLK = .SIGVEC);
!
! Return primary status to caller. If just informational then continue.
!
IF .SIGNAME [STS$V_SEVERITY] NEQU STS$K_INFO
THEN
BEGIN
SETUNWIND ();
MECHVEC [CHF$L_MCH_SAVR0] = .SIGNAME;
END;
!
! Continue.
!
RETURN SS$_CONTINUE
END; ! End of SNT$MSGHANDLER
END ! End of module
ELUDOM