!*** MODULE $CLSDEF *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! + ! ! Security classification block. Contains secrecy and integrity ! level and categories for non-discretionary (mandatory) access controls. ! ! - PARAMETER CLS$S_CLSDEF_TLVRNG = '00000004'X ! Preserve previous size symbol STRUCTURE /CLS_TLVRNG/ ! Range specifier field references INTEGER*2 CLS$W_RANGE_LOW ! Range low limit INTEGER*2 CLS$W_RANGE_HIGH ! Range high limit END STRUCTURE ! CLS_TLVRNG PARAMETER CLS$K_END = '00000000'X ! List terminator PARAMETER CLS$K_SC_ENUMERATE = '00000001'X ! Secrecy category enumerated list PARAMETER CLS$K_SC_RANGE = '00000002'X ! Secrecy category range list PARAMETER CLS$K_SC_MASK = '00000003'X ! Secrecy category bitmask PARAMETER CLS$K_IC_ENUMERATE = '00000011'X ! Integrity category enumerated list PARAMETER CLS$K_IC_RANGE = '00000012'X ! Integirty category range list PARAMETER CLS$K_IC_MASK = '00000013'X ! Integrity category bitmask PARAMETER CLS$K_VOID = '000000FF'X ! Voided entry PARAMETER CLS$S_CLSDEF_TLV = '00000008'X ! Preserve previous size symbol STRUCTURE /CLS_TLV/ ! TLV entry field references UNION MAP BYTE CLS$B_TAG ! Format code UNION ! dependent: MAP BYTE CLS$B_COUNT ! # entries in an enumerated list END MAP ! # range pairs in a range list ! # longwords following voided entry MAP BYTE CLS$B_MASK_SIZE ! # longwords in a bitmask END MAP END UNION UNION MAP INTEGER*2 CLS$W_CATLST(1:1) ! Vector of enumerated cat. END MAP MAP INTEGER*2 %FILL INTEGER*4 CLS$L_RNGLST(1:1) ! Vector of high:low word ! range pairs END MAP MAP INTEGER*2 CLS$W_BASE ! Bias value INTEGER*4 CLS$L_MASK(1:1) ! <32 * MASK_SIZE> bit mask END MAP MAP INTEGER*2 %FILL(1:3) END MAP MAP INTEGER*2 CLS$W_VOID(1:1) ! words END MAP END UNION END MAP END UNION END STRUCTURE ! CLS_TLV PARAMETER CLS$K_MIN_SEC_LEV = '00000000'X ! Minimum secrecy level PARAMETER CLS$K_MIN_INT_LEV = '00000000'X ! Minimum integrity level PARAMETER CLS$K_MAX_SEC_LEV = '000000FF'X ! Maximum secrecy level PARAMETER CLS$K_MAX_INT_LEV = '000000FF'X ! Maximum integrity level PARAMETER CLS$K_MIN_SEC_CAT = '00000001'X ! Minimum secrecy category PARAMETER CLS$K_MIN_INT_CAT = '00000001'X ! Minimum integrity category PARAMETER CLS$K_MAX_SEC_CAT = '00010000'X ! Maximum supported secrecy category PARAMETER CLS$K_MAX_INT_CAT = '00010000'X ! Maximum supported integrity category PARAMETER CLS$K_MAX_SEC_CAT_S64I64 = '00000040'X ! Maximum type 0 secrecy category PARAMETER CLS$K_MAX_INT_CAT_S64I64 = '00000040'X ! Maximum type 0 integrity category PARAMETER CLS$K_MAX_SEC_CAT_S128 = '00000080'X ! Maximum type 1 secrecy category PARAMETER CLS$K_MAX_SEC_CAT_DYN_CAT = '00010000'X ! Maximum type 2 secrecy category PARAMETER CLS$K_MAX_INT_CAT_DYN_CAT = '00010000'X ! Maximum type 2 integrity category PARAMETER CLS$K_TYP_S64I64 = '00000000'X ! Type 0 class block identifier PARAMETER CLS$K_TYP_S128 = '00000001'X ! Type 1 class block identifier PARAMETER CLS$K_TYP_DYN_CAT = '00000002'X ! Type 2 class blook identifier PARAMETER CLS$K_LENGTH_HDR = '00000004'X ! Size of common header PARAMETER CLS$K_LENGTH_S64I64 = '00000014'X ! Size of type 0 class block PARAMETER CLS$K_LENGTH_S128 = '00000014'X ! Size of type 1 class block PARAMETER CLS$K_LENGTH_DYN_CAT = '00000004'X ! Size of type 2 class block ! fixed portion PARAMETER CLS$S_CLSDEF = '00000014'X ! Preserve previous size definition PARAMETER CLS$K_LENGTH = '00000014'X ! length of structure STRUCTURE /CLS/ UNION MAP BYTE CLS$B_SEC_LEV ! Secrecy level BYTE CLS$B_INT_LEV ! Integrity level BYTE CLS$B_TYPE ! Class block type ! Class block type identifiers BYTE CLS$B_TLVLST_SIZE ! Size in longwords of TLV list in ! a type 2 class block. UNION ! ! Usage of the ..._S64I64 and ..._S128 symbolic name forms is preferred. ! Previous name forms have been retained for backwards compatibility only. ! MAP INTEGER*4 CLS$Q_SEC_CAT_S64I64(2) ! Secrecy category mask INTEGER*4 CLS$Q_INT_CAT_S64I64(2) ! Integrity category mask END MAP MAP INTEGER*4 CLS$O_SEC_CAT_S128(4) ! Secrecy category mask END MAP MAP INTEGER*4 CLS$L_TLVLST(1:1) ! Tag-Length-Value_set list END MAP ! ! The following definitions have been superseded and are being retained for backwards compatibilit ! The following definitions have been superseded and are bein ! Usage of the ..._S64I64 and ..._S128 symbolic names is preferred. ! MAP INTEGER*4 CLS$Q_SEC_CAT_0(2) ! Secrecy category mask - Usage of CLS$Q_SEC_CAT_ ! Secrecy category mask - Usage of CLS$Q_SEC_CAT_S64I64 pre INTEGER*4 CLS$Q_INT_CAT_0(2) ! Integrity category mask - Usage of CLS$Q_INT_CAT ! Integrity category mask - Usage of CLS$Q_INT_CAT_S64I64 pr END MAP MAP INTEGER*4 CLS$O_SEC_CAT_1(4) ! Secrecy category mask - Usage of CLS$O_SEC_CAT_S ! Secrecy category mask - Usage of CLS$O_SEC_CAT_S128 prefer END MAP END UNION END MAP ! ! The following definitions have been superseded and are being retained for backwards compatibilit ! The following definitions have been superseded and are bein ! Usage of the ..._S64I64 and ..._S128 symbolic names is preferred. ! MAP BYTE CLS$B_SECUR_LEV ! Security level - Usage of CLS$B_SEC_LEV preferred BYTE CLS$B_INTEG_LEV ! Integrity level - Usage of CLS$B_INT_LEV preferred INTEGER*2 %FILL ! Reserved INTEGER*4 CLS$Q_SECUR_CAT(2) ! Security category mask - Usage of CLS$Q_SEC_CAT_S64I64/CL ! Security category mask - Usage of CLS$Q_SEC_CAT_S64I64/CLS$ INTEGER*4 CLS$Q_INTEG_CAT(2) ! Integrity category mask - Usage of CLS$Q_INT_CAT_S64I64 p ! Integrity category mask - Usage of CLS$Q_INT_CAT_S64I64 pre END MAP ! ! The CLS$S_CLSDEF definition is provided for backwards compatibility only. ! Usage of the CLS$K_LENGTH_S64I64, CLS$K_LENGTH_S128 and CLS$K_LENGTH_DYN_CAT definitions is pref ! Usage of the CLS$K_LENGTH_S64I64, CLS$K_LENGTH_S128 and CLS ! END UNION END STRUCTURE ! CLS ! ! $CHANGE_CLASS, PARSE_CLASS, FORMAT_CLASS system service item codes ! PARAMETER CLS$_SECSTR = '00000001'X ! Textual secrecy/security string PARAMETER CLS$_INTSTR = '00000002'X ! Textual integrity string PARAMETER CLS$_CLSBLK = '00000003'X ! Simple classification block PARAMETER CLS$_MINCLSBLK = '00000004'X ! Minimum classification block PARAMETER CLS$_MAXCLSBLK = '00000005'X ! Maximum classification block PARAMETER CLS$_WIDTH = '00000006'X ! Width of display for $FORMAT_CLASS PARAMETER CLS$_TRMDSC = '00000007'X ! Line terminator for $FORMAT_CLASS PARAMETER CLS$_INDENT = '00000008'X ! Line indenting for $FORMAT_CLASS PARAMETER CLS$_OLDCLSBLK = '00000009'X ! Previous classification block PARAMETER CLS$_OLDMINCLS = '0000000A'X ! Previous minimum class block PARAMETER CLS$_OLDMAXCLS = '0000000B'X ! Previous maximum class block PARAMETER CLS$_TRANQUIL = '0000000C'X ! Override tranquility checks - Usage reserved to Digital PARAMETER CLS$_FLAGS = '0000000D'X ! Formatting control flags ! ADD ITEM-CODES BEFORE THIS COMMENT PARAMETER CLS$_MIN_ITEM_CODE = '00000001'X PARAMETER CLS$_MAX_ITEM_CODE = '0000000D'X PARAMETER CLS$M_COMPRESS = '00000001'X PARAMETER CLS$M_EXPAND = '00000002'X STRUCTURE /CLS$$FILL_112_/ UNION MAP INTEGER*4 CLS$L_FLAGS ! $FORMAT_CLASS control flags END MAP MAP PARAMETER CLS$S_COMPRESS = 1 PARAMETER CLS$V_COMPRESS = 0 ! Compress category range strings PARAMETER CLS$S_EXPAND = 1 PARAMETER CLS$V_EXPAND = 1 ! Expande category range strings BYTE %FILL (1) END MAP END UNION END STRUCTURE ! CLS$$FILL_112_ !DEC$ END OPTIONS