Google
 

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)