2 LCLCDEF
 The text library SYS$LIBRARY:LCLCDEF.TLB contains VAX-11 C #INCLUDE
 modules created locally at Fermilab.  Among these #INCLUDE sources are
 additional system INCLUDE sources created from definition macros in
 the system and executive macro libraries in the same way as the
 FORTRAN INCLUDE sources in LCLFORDEF were made.  Those modules made
 from these macros have names beginning with "$" and are the same as the
 names of the defintion macros (for the most part).

 Unless stated otherwise, all of the VAX-11 C #INCLUDE sources define
 constants.  In particular, any file or text library module named
 xxxDEF will always define constants. Those #INCLUDE sources which
 define structures identified as such in the text and in its help topic.

 The modules currently contained in this library are:

3 $BRDCSTDEF
  Module ($BRDCSTDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines mask bits for flags of the $BRDCST system service.

3 $CLIMSGDEF
  Module ($CLIMSGDEF) SYS$LIBRARY:LCLCDEF.TLB.
  Defines the CLI$ status codes values returned by the Command Line
  Interpreter (DCL or MCR).

3 $CLISERVDEF
  Module ($CLISERVDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines request codes for CLI call-back operations for DCL.

3 $CREDEF
  Module ($CREDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines offsets into and constants for the create-options
  array used by the LBR$OPEN LIBRARIAN routine.

3 DESCRIP2
 Module (DESCRIP2) of SYS$LIBRARY:LCLCDEF.TLB and file DESCRIP2.H.
 This module defines some additions to the standard VAX-11 C include
 module (DESCRIP) found in SYS$LIBRARY:CSYSDEF.TLB.

 The following macros are defined:

  $DESCRIPTOR0(name)             empty string descriptor (length and
                                 pointer fields are 0).
  $DESCRIPTOR1(name,string)      string descriptor for 1 character
                                 or a whole structure.
  $DESCRIPTORM(name,string)      string descriptor for structure
                                 member or non-NUL terminated strings.
  $DESCRIPTORA(name,array,type)  array descriptor.

  $LENGTH(descriptor)            length field of descriptor.
  $POINTER(descriptor)           pointer field of descriptor.

3 $DEVDEF
  Module ($DEVDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines bit masks and offsets of the device characteristics longword.

3 $DIBDEF
  Module ($DIBDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines offsets (as contants) and field sizes for the device
  characteristics buffer returned by the $GETDEV and $GETCHN system
  services.

3 $DVIDEF
  Module ($DVIDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines names for device information item constants for the $GETDVI
  system service.

3 $HLPDEF
  Module ($HLPDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines symbolic masks for the flags argument of the
  LIBRARIAN LBR$OUTPUT_HELP routine.

3 $IODEF
  Module ($IODEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines symbols for the I/O function codes and modifiers.

3 $JBCMSGDEF
  Module ($JBCMSGDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines symbolic names for Job Controller status codes (JBC$_...).

3 $LBRDEF
  Module ($LBRDEF) of SYS$LIBRARY:LCLCDEF.TLB
  Defines symbolic names for constants used with the
  LIBRARIAN utility routines.

3 $LCKDEF
  Module ($LCKDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines lock mode request codes and the bits of the lock
  characteristics for the $ENQ and $DEQ system services.

3 MSGTYPDEF
  Module (MSGTYPDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  MSGTYPDEF defines the ACNET message type code symbols for FORTRAN.
 
    HDR_K_LENGTH  gives the length of the message header in bytes
    MSG_K_REPLY   gives the Reply message type code
    MSG_K_RPY     same as MSG_K_REPLY
    MSG_K_REQUEST gives the Request message type code
    MSG_K_REQ     same as MSG_K_REQUEST
    MSG_K_UNSOLIC gives the Unsolicited Special Message type code
    MSG_K_USM     same as MSG_K_UNSOLIC
 

3 $MTDEF
  Module ($MTDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines magtape device status bits and fields.

3 $NETAGS_DEF
  Module ($NETAGS_DEF) of SYS$LIBRARY:LCLCDEF.TLB.
  $NETAGS_DEF defines symbolic names for ACNET Global Status values
  returned by the ACNET network.

3 $NET_DEF
  Module ($NET_DEF) of SYS$LIBRARY:LCLCDEF.TLB.
  $NET_DEF defines symbolic names for the VAX/VMS ACNET network
  condition codes (signal names).

3 NODEDEFS
  Module (NODEDEFS) of SYS$LIBRARY:LCLCDEF.TLB.
  Files NODEDEFS.H in SYS$LIBRARY: and RSX$LIB:.
  NODEDEFS defines symbolic names for the ACNET logical nodes.
 
 	Nodes should always be specified symbolically though for ease
 	of verifying conversions (ODT) some node definitions may be
 	computed based on the MAC number used on the XEROX systems by
 	adding the following decimal offsets:
 
 	Booster:	add 30 to old MAC number
 	MR/SY:		add 30 to old MAC number (includes Beam Lines)
 	SCRUB System:	add 50 to old MAC number
 

3 $OPCMSG
  Module ($OPCMSG) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines symbols for the OPCOM status codes (OPC$_...).

3 $PRCDEF
  Module ($PRCDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines masks and offsets for the bits of the status flag
  argument of the $CREPRC system service.

3 $PRDEF
  Module ($PRDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines symbols for the processor register codes and fields.

3 REQRPYFLG
  Module (REQRPYFLG) of SYS$LIBRARY:LCLCDEF.TLB.
  REQRPYFLG defines the symbolic names for FORTRAN of the bit masks
  for the Request and Reply option flags used in the NET_SEND_REQUEST
  and NET_SEND_REPLY network service routines.
 
  The options are:
 
 2 ENDMULT
  Mask for the end-multiple-reply bit in the reply options.
  Used to terminate a multiple-reply request from the replier's
  end.  Also known as EMR.
 
 2 FCPAST
  Mask for the enable first-packet-AST bit in the request options.
  Used to enable delivery of a reply AST whenever the first packet
  (in the chronological sense) has been moved into the user's
  reply buffer.
 
 2 LOCKED
  Mask for the buffer-remains-locked bit in the reply options.
  Used to override the receive buffer unlock done in the
  NET_SEND_REPLY.  Also known as BRL (buffer-remains-locked).
 
 2 MULTRPY
  Mask for the multiple reply bit in the request options.
  Used to indicate a request to which more than one reply message
  is to be returned.  Also known as MLT.
 
 2 NOBSYWT
  Mask for the no-busy-wait bit in the request options.
  Used to fail a request (return status-only reply) if the
  destination task is busy with another message.  Also known
  as NBW.
 

3 $RSC_DEF
  Module ($RSC_DEF) of SYS$LIBRARY:LCLCDEF.TLB.
  $RSC_DEF defines symbolic names for the reply status codes returned
  in the reply message header and the reply status byte of the User
  Ast Block.

3 $SHRDEF
  SYS$LIBRARY:LCLCDEF($SHRDEF) defines symbols for shared message
  codes.
 
  These message codes should not be used directly by a facility since
  they do not contain a subsystem (facility) identifier or a severity
  code.  Use the following formula to calculate actual facility
  message codes:
 
      facility-message-code  common-message-code +
                             facility-id * 65536 +
                             severity-code

  This is implemented by the $SHR_MSGDEF macro which is called by:

      $SHR_MSGDEF(facility_code, message_code, severity_code)

  where the message_code is one of those given by SHR$_...

3 $SMRDEF
  Module ($SMRDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines the symbiont manager request and option codes for
  the $SNDSMB (send-to-symbiont manager) system service.

3 $STATEDEF
  Module ($STATEDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines symbols for the process scheduling states.

3 $SYIDEF
  Module ($SYIDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  Defines the item codes for the $GETSYI system service.

3 $UAB_DEF
  SYS$LIBRARY:LCLCDEF($UAB_DEF) defines symbols for network User AST Block.

3 UABFLGDEF
  Module (UABFLGDEF) of SYS$LIBRARY:LCLCDEF.TLB.
  UABFLGDEF defines the symbolic names (for FORTRAN) of the bit and
  field masks, bit offsets, and field sizes of the UAB_B_FLAGS byte
  and the request_flags and reply_flags arguments of the
  NET_CHECK_xxx and NET_WAIT_xxx network service routines.
 
  The UAB_V_name symbols give the bit offsets (bit number relative to
  bit 0 of UAB_B_FLAGS) of the bit or field named.  The UAB_M_name
  symbols give the masks for the bits or fields (used in bit-wise .AND.
  operations) for the named bits or fields.  The UAB_S_name symbols
  give the sizes, in bits, of the named fields.  The UAB_K_LENGTH
  symbol gives the length, in bytes, of the user AST block.
 
 2 Fields
  MSGTYPE  is the message type code field.  Only used with requests.
 
 2 Bits
  1STPKT   bit indicates that this reply AST is the first packet
           AST (declared after the first chronological packet
           of the message has been stored in the user's reply
           buffer).  Only used with reply AST's.
  CANCEL   bit indicates that the outstanding request has been
           cancelled and no more replies should be generated.
 	   Only used with requests.
  MULTRPY  is the multiple reply bit.
  TOOLONG  bit indicates that the message ws truncated to fit in
           the specified buffer.
 

3 VAXTYPES
  Module (VAXTYPES) of SYS$LIBRARY:LCLCDEF.TLB and file VAXTYPES.H.
  This module defines some data types, constants and macros for use
  with VAX-11 C under VAX/VMS.

4 Constants
 Defined constants for general VAX-11C usage:

  TRUE       conditional true value (1)
  FALSE      conditional false value (0)
  EOF        End-of-file flag (for standard I/O)
  NULL       Undefined pointer value (0)

  MAX_...    Maximum value for types: int,ulong,short,uword,char,ubyte
  MIN_...    Minimum value for types: int,short,char

4 Types
 Additional types (or structures) for use with VAX-11 C

  $byte / $ubyte    signed / unsigned 8-bit byte
  $word / $uword    signed / unsigned 16-bit word
  $long / $ulong    signed / unsigned 32-bit longword
  $quad / $uquad    signed / unsigned 64-bit quadword
  $octa / $uocta    signed / unsigned 128-bit octaword

  address    general address (pointer to byte or char)
  queue      queue header or links structure
  vmstime    VMS-returned system time type

4 Macros
 Macros defined for use with VAX-11 C under VMS

  $VMS_SUCCESS(code)    TRUE if the status code has a severity code of
                        success or informational (success indication).
  $VMS_FAILURE(code)    TRUE if the status code has a severity code of
                        warning, error or severe (error indication).


