1
0
mirror of https://github.com/PDP-10/stacken.git synced 2026-02-03 23:22:44 +00:00
Files
PDP-10.stacken/files/stacken-tape-backup/dskb:10_7/decmai/mx/mxerr.req
Lars Brinkhoff 6e18f5ebef Extract files from tape images.
Some tapes could not be extracted.
2021-01-29 10:47:33 +01:00

274 lines
8.6 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
%title 'MXERR - Error message handler macros'
!++
! Facility: DECMAIL/MS - Message EXchange
!
! Abstract:
! This set of macros is used to manipulate error strings used
! by MX.
!
! Environment: Bliss 36,
!
! Author: Richard B. Waddington, Creation Date: October 8, 1984
!
!--
MACRO error$data =
(
MP$MKF, 'MP$MKF-Missing key field',
MP$SYN, 'MP$SYN-Syntax error in line #%D of %A',
MP$TEL, 'MP$TEL-Extraneous text at end of line - "%A"',
MP$UHF, 'MP$UHF-Unsupported host format requested (Internal Error)',
MQ$MHE, 'MQ$MHE-Message has expired',
SP$UIE, 'SP$UIE-Unexpected internal error',
UF$ACF, 'UF$ACF-Abort close failed',
UF$FCF, 'UF$FCF-File close failed for %A',
UF$FRF, 'UF$FRF-File read failed for %A',
UF$FWF, 'UF$FWF-File write failed for %A',
UF$FOF, 'UF$FOF-File open failed for %A',
UF$CGP, 'UF$CGP-Cannot get page',
UF$IFA, 'UF$IFA-Invalid file access attempted',
UF$IFS, 'UF$IFS-Invalid file specification',
UF$NSR, 'UF$NSR-Non-sequential read attempted',
UF$NSW, 'UF$NSW-Non-sequential write attempted',
UF$TLF, 'UF$TLF-Table lookup failed',
ER$MLE, 'ER$MLE-Message level error occured in SERVER or SPOOLER',
MX$NOM, 'MX$NOM-Insufficient memory',
MX$NOQ, 'MX$NOQ-Insufficient quota in %A',
MG$NSU, 'MG$NSU-%A: No such user %A',
MG$LTL, 'MG$LTL-SMTP: Line too long',
MG$UEC, 'MG$UEC-SMTP: Unexpected command',
MG$UIC, 'MG$UIC-SMTP: Unimplemented command',
MG$UNC, 'MG$UNC-SMTP: Unknown command',
MG$ARG, 'MG$ARG-SMTP: Bad Argument',
MG$NNK, 'MG$NNK-%A: Node %A is not known here',
MG$MFC, 'MG$MFC-SMTP: Mail File corrupted - Mail lost',
MG$IPS, 'MG$IPS-Insufficient privilege for sending mail to SYSTEM',
MG$GPE, 'MG$GPE-%A: %I', !Gen. Purpose Error
SL$NSU, 'SL$NSU-No such user %A',
SL$NNK, 'SL$NNK-Node %A is not known here',
LS$DMF, 'LS$DMF-Duplicate message files %A, %A',
LS$NMF, 'LS$NMF-Message file %A does not exist',
LS$ICP, 'LS$ICP-Invalid continuation packet',
LS$ISP, 'LS$ISP-Invalid sender pid',
LS$ISU, 'LS$ISU-Invalid sender uid',
LS$INN, 'LS$INN-MX does not service node %A',
LS$IDS, 'LS$IDS-Invalid destination string %A',
NW$ERR, 'NW$ERR-Network error at node %A - %A',
S2$ERR, 'S2$ERR-%A',
LS$UOQ, 'LS$UOQ-User %A was over quota',
DN$INP, 'DN$INP-Invalid DECNET mail protocol',
LS$IHT, 'LS$IHT-Invalid Scan_packet Header Type',
LS$IRT, 'LS$IRT-Invalid Scan_packet Record Type',
UF$NQE, 'UF$NQE-ENQ Error: %O',
UF$CGL, 'UF$CGL-Could not get lock',
UF$DQE, 'UF$DQE-DEQ Error: %O',
UF$CFL, 'UF$CFL-Could not free lock',
UF$FPE, 'UF$FPE-FILOP Error: %O',
UF$FPF, 'UF$FPF-FILOP failed',
UF$FNF, 'UF$FNF-File not found',
UF$CNP, 'UF$CNP-Could not parse',
UF$LOK, 'UF$LOK-file is locked',
UF$LEN, 'UF$LEN-Could not get length of %A',
UFD$CR, 'UFD$CR-Could not create searchlist for %A',
LS$CCP, 'LS$CCP-Could not create PID %A',
MX$MZB, 'MX$MZB-Message file %A contained zero bytes',
MX$CTP, 'MX$CTP-Could not translate POBOX:',
MP$PLD, 'MP$PLD-Path loop detected at node %A'
) %;
MACRO
$GLITERAL = ! Initialize for constant creation
%ASSIGN( $xpo$distinct, 0 ) !NOTE GLOBAL LITERAL cannot occur
GLOBAL LITERAL %; !in LIBRARY file.
MACRO
$ERROR_TABLE =
UNDECLARE mxerrs;
UNDECLARE $ebuf;
UNDECLARE ext_lines(%remove(error$data));
$gliteral
lit_lines(%REMOVE(error$data));
GLOBAL mxerrs: VECTOR [max_error]
INITIAL
(0,
STR_LINES(%remove(error$data)) );
GLOBAL $ebuf: VECTOR[CH$ALLOCATION(256)] %;
macro EXT_LINES (CODE,TEXT)[] =
CODE
%if not %null(%remaining) %then ,EXT_LINES(%remaining)
%else ;
%if %declared(max_error) %then
UNDECLARE max_error;
%fi
LITERAL
max_error = %count + 2 %fi %;
macro LIT_LINES (CODE,TEXT)[] =
CODE = $distinct
%if not %null(%remaining)
%then
,LIT_LINES(%remaining)
%fi %;
macro STR_LINES (CODE,TEXT)[] =
ch$ptr(uplit(%string(%asciz TEXT)))
%if not %null(%remaining)
%then
,STR_LINES(%remaining) %fi %;
EXTERNAL ext_lines(%remove(error$data));
EXTERNAL mxerrs: vector[max_error];
EXTERNAL $ebuf: vector[CH$ALLOCATION(256)];
MACRO $$cnt(_A_) =
%LENGTH %;
MACRO $$oplen(_arg) =
%IF %CTCE(_arg) %THEN
%IF (_arg NEQ 0) AND (_arg NEQ $error_code)
%THEN 1
%ELSE 0 %FI
%ELSE 1 %FI %;
MACRO $$assign_args(_n, _arg)[] =
%IF NOT %NULL(_arg) %THEN
_argblck[_n] = _arg;
$$assign_args(_n+1, %REMAINING) %FI %;
KEYWORDMACRO
$error(severity, code, facility,
id=0,
message_data=,
optional_message=0,
optional_data=) =
BEGIN
%IF facility EQL $message
%THEN
%IF %CTCE(id)
%THEN
%ERROR('Missing Message ID in $ERROR call') %FI %FI
STACKLOCAL
_argblck: VECTOR[5 + $$cnt(%remove(message_data)) +
$$cnt(%remove(optional_data)) +
$$oplen(optional_message)]
INITIAL(4 + $$cnt(%remove(message_data)) +
$$cnt(%remove(optional_data)) +
$$oplen(optional_message),
sts$value(SEV=severity,COD=code,FAC=facility),
0,
0,
5 + $$cnt(%remove(message_data)) +
$$oplen(optional_message)
);
_argblck[2] = id;
_argblck[3] = optional_message;
$$assign_args(5, %REMOVE(message_data))
%IF $$oplen(optional_message) %THEN
_argblck[5+$$cnt(%REMOVE(message_data))] = optional_message; %FI
$$assign_args(5+$$cnt(%REMOVE(message_data))+$$oplen(optional_message),
%REMOVE(optional_data))
mx$error_processor(_argblck);
$false
END %;
KEYWORDMACRO
$signal_error(severity, code, facility,
id=0,
message_data=,
optional_message=0,
optional_data=) =
SIGNAL(
sts$value(SEV=severity, COD=code, FAC=facility),
id,
optional_message,
5 + $$cnt(%REMOVE(message_data))
%IF NOT %NULL(message_data) %THEN ,%REMOVE(message_data) %FI
%IF $$oplen(optional_message) %THEN ,optional_message %FI
%IF NOT %NULL(optional_data) %THEN ,%REMOVE(optional_data) %FI
) %;
MACRO
$e_display(b) =
%IF %SWITCHES(TOPS20) %THEN
BEGIN
DECLARE_JSYS(psout);
$$psout(b);
END
%ELSE
task_info(CH$PTR(b))
%FI %;
%if $TOPS20 %then
macro
$LAST_ERROR =
(declare_jsys(geter);
local error;
$$geter($fhslf;error);
.error<0,18>
) %;
%fi
!
! Severity codes:
!
LITERAL
$warning = 0,
$success = 1,
$err = 2,
$info = 3,
$severe = 4;
!
! Facility codes:
!
$LITERAL
$protocol = $DISTINCT,
$message = $DISTINCT,
$internal = $DISTINCT;
LITERAL
min_facility = $protocol,
max_facility = $internal;
!
! Other symbols
!
LITERAL
$error_code = -1;
MACRO
abort_mx =
%IF %SWITCHES(TOPS20) %THEN
BEGIN
DECLARE_JSYS(psout,haltf);
$$psout(crlf_pointer); ![314]New MONSYM change
$$psout(UPLIT(%ASCIZ %STRING('?MX crashed')));
$$haltf();
END
%ELSE
! %WARN('ABORT_MX not implemented for this OS')
BEGIN
BUILTIN UUO;
UUO(0,EXIT(1));
END
%FI %;