Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/mcb/nmxlib.req
There are no other files named nmxlib.req in the archive.
! COPYRIGHT (c) 1980, 1981, 1982
! 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.
!+
! NMX Library File
!-
%if not %declared (XPO$K_VERSION) %then library 'MCB:XPORTX' %fi;
%if not %declared (MCB$K_VERSION) %then library 'MCB:MCBLIB' %fi;
require 'MCB:NMLIB';
$show (all)
literal
NMX$K_VERSION = 1,
NMX$K_LEVEL = 0,
NMX$K_EDIT = 3;
!+
! Field mapping for NMX usage of CCB
!-
$field NM_FIELDS =
set
$overlay (C_PRM1)
C_NM_QUAL = [$bit], ! Qualifier bit
C_NM_FUNC = [$bits (7)], ! Function code
C_NM_ENTITY = [$bits (4)], ! Entity identifier
C_NM_SELECT = [$bits (4)], ! Operation selector
$continue
$overlay (C_PRM2)
C_NM_NMPAR = [$pointer] ! Parameter block pointer
$continue
tes;
macro
C_NM_FIELDS = C_FIELDS, NM_FIELDS %;
$field
NMX_NMPAR_FIELDS =
set
NMX_NMPAR_AX0_BIAS = [$address], ! Qualifier bias
NMX_NMPAR_AX0_ADDR = [$address], ! Qualifier address
NMX_NMPAR_ENTITY = [$sub_block (0)], ! Start of Entity Id
$overlay (NMX_NMPAR_ENTITY) ! Node
NMX_NMPAR_NODE_ADDRESS = [$bytes (2)],
NMX_NMPAR_NODE_NAME_LENGTH = [$byte],
NMX_NMPAR_NODE_NAME = [$byte_string (6)],
$continue
$overlay (NMX_NMPAR_ENTITY) ! Line, Circuit, Module
NMX_NMPAR_OTHER_LENGTH = [$byte],
NMX_NMPAR_OTHER_ITSELF = [$byte_string (16)],
$continue
$overlay (NMX_NMPAR_ENTITY) ! For RETURN function:
NMX_NMPAR_RETURN_CNT = [$integer] ! Bytes already in buffer
$continue
$align (fullword)
tes;
literal
NMX_NMPAR_HDR_LEN = %fieldexpand (NMX_NMPAR_ENTITY, 0), ! Length in words
NMX_NMPAR_LEN = $field_set_size, ! Length in words
NMX_NMPAR_LENGTH = $field_set_units; ! Length in bytes
$field
NODE_ENTITY_ID =
set
NODE_ADDRESS = [$bytes (2)],
NAME_LENGTH = [$byte],
NAME_ITSELF = [$byte_string (6)]
tes;
literal
NODE_ENTITY_LEN = $field_set_size; ! Length in words
$field
OTHER_ENTITY_ID =
set
OTHER_LENGTH = [$byte],
OTHER_ITSELF = [$byte_string (16)]
tes;
!+
! Operational Code Definitions
!-
$literal
NMX$FNC_set = 1, ! Set parameter
NMX$FNC_clr = 2, ! Clear parameter
NMX$FNC_zro = 3, ! Zero counter(s)
NMX$FNC_sho = 4, ! Show selected items
NMX$FNC_szc = 5, ! Show and zero counter(s)
NMX$FNC_ret = 6, ! Return selected items
NMX$FNC_lo = min (NMX$FNC_set, NMX$FNC_clr, NMX$FNC_zro, NMX$FNC_sho, NMX$FNC_szc, NMX$FNC_ret),
NMX$FNC_hi = max (NMX$FNC_set, NMX$FNC_clr, NMX$FNC_zro, NMX$FNC_sho, NMX$FNC_szc, NMX$FNC_ret);
$literal
NMX$ENT_nod = 1, ! Node entity
NMX$ENT_lin = 2, ! Line Entity
NMX$ENT_log = 3, ! Logging Entity
NMX$ENT_ckt = 4, ! Circuit entity
NMX$ENT_mod = 5, ! Module entity
NMX$ENT_lo = min (NMX$ENT_nod, NMX$ENT_lin, NMX$ENT_log, NMX$ENT_ckt, NMX$ENT_mod),
NMX$ENT_hi = max (NMX$ENT_nod, NMX$ENT_lin, NMX$ENT_log, NMX$ENT_ckt, NMX$ENT_mod);
$literal
NMX$SEL_kno = 1, ! Known
NMX$SEL_act = 2, ! Active
NMX$SEL_lop = 3, ! Loop
NMX$SEL_sum = 1, ! Summary
NMX$SEL_sta = 2, ! Status
NMX$SEL_cha = 3, ! Characteristics
NMX$SEL_cou = 4, ! Counters
NMX$SEL_lo = min (NMX$SEL_kno, NMX$SEL_act, NMX$SEL_lop,
NMX$SEL_sum, NMX$SEL_sta, NMX$SEL_cha, NMX$SEL_cou),
NMX$SEL_hi = max (NMX$SEL_kno, NMX$SEL_act, NMX$SEL_lop,
NMX$SEL_sum, NMX$SEL_sta, NMX$SEL_cha, NMX$SEL_cou);
!+
! Define NICE data type codes (for autoparsing data)
!-
literal
$C$ = %o'200', ! Coded single field (add length)
$CM$ = %o'300', ! Coded multiple field (add number)
$AI$ = %o'100', ! ASCII image
$DU$ = %o'000', ! Decimal unsigned (add length, or 0 for image)
$DS$ = %o'020', ! Decimal signed (add length, or 0 for image)
$H$ = %o'040', ! Hexadecimal (add length, or 0 for image)
$O$ = %o'060'; ! Octal (add length, or 0 for image)
!+
! Define NICE return codes/values/text-strings
!-
compiletime
%temp=0;
literal
NM$SUC = 1; ! SUC, 1, 'Function Completed Successfully'
macro ! This macro defines the set of error codes
$NM$NICE_ERRORS =
UFO, -1, 'Unrecognized function or option',
IMF, -2, 'Invalid message format',
PRV, -3, 'Privilege violation',
OCM, -4, 'Oversized Management command message',
MPE, -5, 'Management program error',
UPT, -6, 'Unrecognized parameter type',
IMV, -7, 'Incompatible Management version',
URC, -8, 'Unrecognized component',
IID, -9, 'Invalid identification',
LCE, -10, 'Line communication error',
CWS, -11, 'Component in wrong state',
FOE, -13, 'File open error',
IFC, -14, 'Invalid file contents',
REE, -15, 'Resource error',
IPV, -16, 'Invalid parameter value',
LPE, -17, 'Line protocol error',
FIO, -18, 'File I/O error',
MLD, -19, 'Mirror link disconnected',
NRE, -20, 'No room for new entry',
MCF, -21, 'Mirror connect failed',
PNA, -22, 'Parameter not applicable',
PVL, -23, 'Parameter value too long',
HWF, -24, 'Hardware failure',
OPF, -25, 'Operation failure',
SFS, -26, 'System-specific Management function not supported',
IPG, -27, 'Invalid parameter grouping',
BLR, -28, 'Bad loopback response',
PAM, -29, 'Parameter missing' %;
macro ! This macro uses above definition to generate codes
$NM$NICERR_MACRO [MNE, VAL, STR] =
%assign (%TEMP, VAL)
%quote literal %name ('NE$', MNE) = VAL %quote ;
%if %TEMP GEQ 0
%then %print ('NE$', MNE, ' = ', '$NM$ERR_', MNE, ' = ', %number (%TEMP), '; !', STR)
%else %print ('NE$', MNE, ' = ', '$NM$ERR_', MNE, ' = -', %assign (%TEMP, -%TEMP), %number (%TEMP), '; !', STR)
%fi
%quote macro %name ('$NM$ERR_', MNE) =
%name ('NE$', MNE) %quote % %quote ; % ;
$NM$NICERR_MACRO ($NM$NICE_ERRORS); ! *** Generate the code set ***
!+
! Define NMX Synchronous Calls
!-
$field ! This is the type field passed to NMX
NMX_TYPE_FIELDS =
set
N$QUAL = [$bit],
N$FFNC = [$bits(7)],
N$IENT = [$bits(4)],
N$SELE = [$bits(4)]
tes;
literal
NMX_TYPE_SIZE = $field_set_size,
NMX_TYPE_ALLOCATION = $field_set_units;
macro
NMX_TYPE_BLOCK = block[NMX_TYPE_SIZE] field(NMX_TYPE_FIELDS) %;
literal
NMX$ID_owner = 1, ! Owner-Id being modified
NMX$ID_provider = 2; ! Provider-Id being modified
literal
NMX$FLG_maintenance_allowed = 1^0;
macro
$NMX$TYPE (ENT, FNC) =
(ENT^%fieldexpand (N$IENT, 1) %if not %null (FNC) %then +
FNC^%fieldexpand (N$FFNC, 1) %fi) %,
NMX$CREATE_CIRCUIT(NMXPIX, NAME_PTR, FLAGS, NMXID) =
begin
CALL$P($NMCRE,NMXPIX,$NMX$TYPE (NMX$ENT_ckt),NAME_PTR, FLAGS, NMXID)
end %,
NMX$CREATE_LINE (NMXPIX, NAME_PTR , FLAGS, NMXID) =
begin
CALL$P($NMCRE,NMXPIX,$NMX$TYPE (NMX$ENT_lin),NAME_PTR, FLAGS, NMXID)
end %,
NMX$CREATE_MODULE (NMXPIX, NAME_PTR, FLAGS, NMXID) =
begin
CALL$P($NMCRE,NMXPIX,$NMX$TYPE (NMX$ENT_mod),NAME_PTR, FLAGS, NMXID)
end %,
NMX$DESTROY_CIRCUIT (NMXPIX, NAME_PTR) =
begin
CALL$P($NMDES,NMXPIX,$NMX$TYPE (NMX$ENT_ckt),NAME_PTR)
end %,
NMX$DESTROY_LINE (NMXPIX, NAME_PTR) =
begin
CALL$P($NMDES,NMXPIX,$NMX$TYPE (NMX$ENT_lin),NAME_PTR)
end %,
NMX$DESTROY_MODULE (NMXPIX, NAME_PTR) =
begin
CALL$P($NMDES,NMXPIX,$NMX$TYPE (NMX$ENT_mod),NAME_PTR)
end %,
NMX$MODIFY_CIRCUIT_OWNER (NMXPIX, NAME_PTR, OWNER_ID, NMXID) =
begin
CALL$P($NMMID,NMXPIX,$NMX$TYPE(NMX$ENT_ckt,NMX$ID_owner),NAME_PTR,OWNER_ID, NMXID)
end %,
NMX$MODIFY_CIRCUIT_PROVIDER (NMXPIX, NAME_PTR, PROVIDER_ID, NMXID) =
begin
CALL$P($NMMID,NMXPIX,$NMX$TYPE(NMX$ENT_ckt,NMX$ID_provider),NAME_PTR,PROVIDER_ID, NMXID)
end %,
NMX$MODIFY_CIRCUIT_NAME (NMXPIX, NAME_PTR, NEW_NAME_PTR, NMXID) =
begin
CALL$P($NMMNA,NMXPIX,$NMX$TYPE(NMX$ENT_ckt),NAME_PTR,NEW_NAME_PTR, NMXID)
end %,
NMX$OBTAIN_CIRCUIT_OWNER (NMXPIX, NAME_PTR, OWNER_ID, NMXID) =
begin
CALL$P($NMGID,NMXPIX,$NMX$TYPE(NMX$ENT_ckt,NMX$ID_owner),NAME_PTR,OWNER_ID, NMXID)
end %,
NMX$OBTAIN_CIRCUIT_PROVIDER (NMXPIX, NAME_PTR, PROVIDER_ID, NMXID) =
begin
CALL$P($NMGID,NMXPIX,$NMX$TYPE(NMX$ENT_ckt,NMX$ID_provider),NAME_PTR,PROVIDER_ID, NMXID)
end %,
NMX$PARAMETER_CIRCUIT (NMXPIX, NMXID, PRMNUM) =
begin
CALL$P($NPNAM,NMXPIX,$NMX$TYPE(NMX$ENT_ckt), NMXID, PRMNUM)
end %,
NMX$PARAMETER_CIRCUIT_OWNER (NMXPIX, NMXID, PRMNUM) =
begin
CALL$P($NPOWN,NMXPIX,$NMX$TYPE(NMX$ENT_ckt), NMXID, PRMNUM)
end %,
NMX$PARAMETER_CIRCUIT_USER (NMXPIX, NMXID, PRMNUM) =
begin
CALL$P($NPUSR,NMXPIX,$NMX$TYPE(NMX$ENT_ckt,NMX$ID_provider), NMXID, PRMNUM)
end %,
NMX$MODIFY_LINE_OWNER (NMXPIX, NAME_PTR, OWNER_ID, NMXID) =
begin
CALL$P($NMMID,NMXPIX,$NMX$TYPE(NMX$ENT_lin,NMX$ID_owner),NAME_PTR,OWNER_ID, NMXID)
end %,
NMX$MODIFY_LINE_PROVIDER (NMXPIX, NAME_PTR, PROVIDER_ID, NMXID) =
begin
CALL$P($NMMID,NMXPIX,$NMX$TYPE(NMX$ENT_lin,NMX$ID_provider),NAME_PTR,PROVIDER_ID, NMXID)
end %,
NMX$MODIFY_LINE_NAME (NMXPIX, NAME_PTR, NEW_NAME_PTR, NMXID) =
begin
CALL$P($NMMNA,NMXPIX,$NMX$TYPE(NMX$ENT_lin),NAME_PTR,NEW_NAME_PTR, NMXID)
end %,
NMX$OBTAIN_LINE_OWNER (NMXPIX, NAME_PTR, OWNER_ID, NMXID) =
begin
CALL$P($NMGID,NMXPIX,$NMX$TYPE(NMX$ENT_lin,NMX$ID_owner),NAME_PTR,OWNER_ID, NMXID)
end %,
NMX$OBTAIN_LINE_PROVIDER (NMXPIX, NAME_PTR, PROVIDER_ID, NMXID) =
begin
CALL$P($NMGID,NMXPIX,$NMX$TYPE(NMX$ENT_lin,NMX$ID_provider),NAME_PTR,PROVIDER_ID, NMXID)
end %,
NMX$PARAMETER_LINE (NMXPIX, NMXID, PRMNUM) =
begin
CALL$P($NPNAM,NMXPIX,$NMX$TYPE(NMX$ENT_lin,NMX$ID_provider), NMXID, PRMNUM)
end %,
NMX$MODIFY_MODULE_PROVIDER (NMXPIX, NAME_PTR, PROVIDER_ID, NMXID) =
begin
CALL$P($NMMID,NMXPIX,$NMX$TYPE(NMX$ENT_mod,NMX$ID_provider),NAME_PTR,PROVIDER_ID, NMXID)
end %,
NMX$MODIFY_MODULE_NAME (NMXPIX, NAME_PTR, NEW_NAME_PTR, NMXID) =
begin
CALL$P($NMMNA,NMXPIX,$NMX$TYPE(NMX$ENT_mod),NAME_PTR,NEW_NAME_PTR, NMXID)
end %,
NMX$OBTAIN_MODULE_PROVIDER (NMXPIX, NAME_PTR, PROVIDER_ID, NMXID) =
begin
CALL$P($NMGID,NMXPIX,$NMX$TYPE(NMX$ENT_mod,NMX$ID_provider),NAME_PTR,PROVIDER_ID, NMXID)
end %,
NMX$MAP_NMXID (NMXPIX, NMXID, TYPE, NAME_PTR) =
begin
CALL$P($NMMAP,NMXPIX,NMXID,TYPE,NAME_PTR)
end %;
!
$show (none)