/********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:05 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]STARDEFAE.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $CLSDEF ***/ #ifndef __CLSDEF_LOADED #define __CLSDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /*+ */ /* */ /* Security classification block. Contains secrecy and integrity */ /* level and categories for non-discretionary (mandatory) access controls. */ /* */ /*- */ #define CLS$S_CLSDEF_TLVRNG 4 /* Preserve previous size symbol */ #ifdef __NEW_STARLET typedef struct _cls_tlvrng { /* Range specifier field references */ unsigned short int cls$w_range_low; /* Range low limit */ unsigned short int cls$w_range_high; /* Range high limit */ } CLS_TLVRNG; #else /* __OLD_STARLET */ typedef struct _cls_tlvrng { /* Range specifier field references */ unsigned short int cls$w_range_low; /* Range low limit */ unsigned short int cls$w_range_high; /* Range high limit */ } cls_tlvrng; #endif /* #ifdef __NEW_STARLET */ #define CLS$K_END 0 /* List terminator */ #define CLS$K_SC_ENUMERATE 1 /* Secrecy category enumerated list */ #define CLS$K_SC_RANGE 2 /* Secrecy category range list */ #define CLS$K_SC_MASK 3 /* Secrecy category bitmask */ #define CLS$K_IC_ENUMERATE 17 /* Integrity category enumerated list */ #define CLS$K_IC_RANGE 18 /* Integirty category range list */ #define CLS$K_IC_MASK 19 /* Integrity category bitmask */ #define CLS$K_VOID 255 /* Voided entry */ #define CLS$S_CLSDEF_TLV 8 /* Preserve previous size symbol */ #ifdef __NEW_STARLET typedef union _cls_tlv { /* TLV entry field references */ __struct { unsigned char cls$b_tag; /* Format code */ __union { /* Field length, intrepretation format */ /* dependent: */ unsigned char cls$b_count; /* # entries in an enumerated list */ /* # range pairs in a range list */ /* # longwords following voided entry */ unsigned char cls$b_mask_size; /* # longwords in a bitmask */ } cls$b_length; __union { /* Value set. */ __struct { unsigned short int cls$w_catlst [1]; /* Vector of enumerated cat. */ } cls$r_catlsttlv; __struct { short int cls$w_rsvd; unsigned int cls$l_rnglst [1]; /* Vector of high:low word */ /* range pairs */ } cls$r_rnglsttlv; __struct { unsigned short int cls$w_base; /* Bias value */ unsigned int cls$l_mask [1]; /* <32 * MASK_SIZE> bit mask */ } cls$r_msktlv; __struct { unsigned short int cls$w_rsvd [3]; } cls$r_endtlv; __struct { unsigned short int cls$w_void [1]; /* words */ } cls$r_voidtlv; } cls$r_value_set; } cls$r_tlv; } CLS_TLV; #if !defined(__VAXC) #define cls$b_tag cls$r_tlv.cls$b_tag #define cls$b_length cls$r_tlv.cls$b_length #define cls$b_count cls$b_length.cls$b_count #define cls$b_mask_size cls$b_length.cls$b_mask_size #define cls$r_value_set cls$r_tlv.cls$r_value_set #define cls$w_catlst cls$r_value_set.cls$r_catlsttlv.cls$w_catlst #define cls$l_rnglst cls$r_value_set.cls$r_rnglsttlv.cls$l_rnglst #define cls$w_base cls$r_value_set.cls$r_msktlv.cls$w_base #define cls$l_mask cls$r_value_set.cls$r_msktlv.cls$l_mask #define cls$w_void cls$r_value_set.cls$r_voidtlv.cls$w_void #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef union _cls_tlv { /* TLV entry field references */ __struct { unsigned char cls$b_tag; /* Format code */ __union { /* Field length, intrepretation format */ /* dependent: */ unsigned char cls$b_count; /* # entries in an enumerated list */ /* # range pairs in a range list */ /* # longwords following voided entry */ unsigned char cls$b_mask_size; /* # longwords in a bitmask */ } cls$b_length; __union { /* Value set. */ __struct { unsigned short int cls$w_catlst [1]; /* Vector of enumerated cat. */ } cls$r_catlsttlv; __struct { short int cls$w_rsvd; unsigned int cls$l_rnglst [1]; /* Vector of high:low word */ /* range pairs */ } cls$r_rnglsttlv; __struct { unsigned short int cls$w_base; /* Bias value */ unsigned int cls$l_mask [1]; /* <32 * MASK_SIZE> bit mask */ } cls$r_msktlv; __struct { unsigned short int cls$w_rsvd [3]; } cls$r_endtlv; __struct { unsigned short int cls$w_void [1]; /* words */ } cls$r_voidtlv; } cls$r_value_set; } cls$r_tlv; } cls_tlv; #if !defined(__VAXC) #define cls$b_tag cls$r_tlv.cls$b_tag #define cls$b_count cls$r_tlv.cls$b_length.cls$b_count #define cls$b_mask_size cls$r_tlv.cls$b_length.cls$b_mask_size #define cls$w_catlst cls$r_tlv.cls$r_value_set.cls$r_catlsttlv.cls$w_catlst #define cls$l_rnglst cls$r_tlv.cls$r_value_set.cls$r_rnglsttlv.cls$l_rnglst #define cls$w_base cls$r_tlv.cls$r_value_set.cls$r_msktlv.cls$w_base #define cls$l_mask cls$r_tlv.cls$r_value_set.cls$r_msktlv.cls$l_mask #define cls$w_void cls$r_tlv.cls$r_value_set.cls$r_voidtlv.cls$w_void #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define CLS$K_MIN_SEC_LEV 0 /* Minimum secrecy level */ #define CLS$K_MIN_INT_LEV 0 /* Minimum integrity level */ #define CLS$K_MAX_SEC_LEV 255 /* Maximum secrecy level */ #define CLS$K_MAX_INT_LEV 255 /* Maximum integrity level */ #define CLS$K_MIN_SEC_CAT 1 /* Minimum secrecy category */ #define CLS$K_MIN_INT_CAT 1 /* Minimum integrity category */ #define CLS$K_MAX_SEC_CAT 65536 /* Maximum supported secrecy category */ #define CLS$K_MAX_INT_CAT 65536 /* Maximum supported integrity category */ #define CLS$K_MAX_SEC_CAT_S64I64 64 /* Maximum type 0 secrecy category */ #define CLS$K_MAX_INT_CAT_S64I64 64 /* Maximum type 0 integrity category */ #define CLS$K_MAX_SEC_CAT_S128 128 /* Maximum type 1 secrecy category */ #define CLS$K_MAX_SEC_CAT_DYN_CAT 65536 /* Maximum type 2 secrecy category */ #define CLS$K_MAX_INT_CAT_DYN_CAT 65536 /* Maximum type 2 integrity category */ #define CLS$K_TYP_S64I64 0 /* Type 0 class block identifier */ #define CLS$K_TYP_S128 1 /* Type 1 class block identifier */ #define CLS$K_TYP_DYN_CAT 2 /* Type 2 class blook identifier */ #define CLS$K_LENGTH_HDR 4 /* Size of common header */ #define CLS$K_LENGTH_S64I64 20 /* Size of type 0 class block */ #define CLS$K_LENGTH_S128 20 /* Size of type 1 class block */ #define CLS$K_LENGTH_DYN_CAT 4 /* Size of type 2 class block */ /* fixed portion */ #define CLS$S_CLSDEF 20 /* Preserve previous size definition */ #define CLS$K_LENGTH 20 /* length of structure */ #ifdef __NEW_STARLET typedef union _cls { __struct { unsigned char cls$b_sec_lev; /* Secrecy level */ unsigned char cls$b_int_lev; /* Integrity level */ unsigned char cls$b_type; /* Class block type */ /* Class block type identifiers */ unsigned char cls$b_tlvlst_size; /* Size in longwords of TLV list in */ /* a type 2 class block. */ __union { /* Type dependent overlays/extensions */ /* */ /* Usage of the ..._S64I64 and ..._S128 symbolic name forms is preferred. */ /* Previous name forms have been retained for backwards compatibility only. */ /* */ __struct { /* Type 0 class block fields */ unsigned __int64 cls$q_sec_cat_s64i64; /* Secrecy category mask */ unsigned __int64 cls$q_int_cat_s64i64; /* Integrity category mask */ } cls$r_clsdef_s64i64; __struct { /* Type 1 class block fields */ unsigned int cls$o_sec_cat_s128 [4]; /* Secrecy category mask */ } cls$r_clsdef_s128; __struct { /* Type 2 class block fields */ unsigned int cls$l_tlvlst [1]; /* Tag-Length-Value_set list */ } cls$r_clsdef_dyn_cat; /* */ /* The following definitions have been superseded and are being retained for backwards compatibility only. */ /* Usage of the ..._S64I64 and ..._S128 symbolic names is preferred. */ /* */ __struct { /* Type 0 class block fields */ unsigned __int64 cls$q_sec_cat_0; /* Secrecy category mask - Usage of CLS$Q_SEC_CAT_S64I64 preferred */ unsigned __int64 cls$q_int_cat_0; /* Integrity category mask - Usage of CLS$Q_INT_CAT_S64I64 preferred */ } cls$r_clsdef_0; __struct { /* Type 1 class block fields */ unsigned int cls$o_sec_cat_1 [4]; /* Secrecy category mask - Usage of CLS$O_SEC_CAT_S128 preferred */ } cls$r_clsdef_1; } cls$r_clsdef_x; } cls$r_sevms_defs; /* */ /* The following definitions have been superseded and are being retained for backwards compatibility only. */ /* Usage of the ..._S64I64 and ..._S128 symbolic names is preferred. */ /* */ __struct { unsigned char cls$b_secur_lev; /* Security level - Usage of CLS$B_SEC_LEV preferred */ unsigned char cls$b_integ_lev; /* Integrity level - Usage of CLS$B_INT_LEV preferred */ short int cls$w_fill_1; /* Reserved */ unsigned __int64 cls$q_secur_cat; /* Security category mask - Usage of CLS$Q_SEC_CAT_S64I64/CLS$O_SEC_CAT_S128 preferred */ unsigned __int64 cls$q_integ_cat; /* Integrity category mask - Usage of CLS$Q_INT_CAT_S64I64 preferred */ } cls$r_vms_defs; /* */ /* 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 preferred. */ /* */ } CLS; #if !defined(__VAXC) #define cls$b_sec_lev cls$r_sevms_defs.cls$b_sec_lev #define cls$b_int_lev cls$r_sevms_defs.cls$b_int_lev #define cls$b_type cls$r_sevms_defs.cls$b_type #define cls$b_tlvlst_size cls$r_sevms_defs.cls$b_tlvlst_size #define cls$q_sec_cat_s64i64 cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_s64i64.cls$q_sec_cat_s64i64 #define cls$q_int_cat_s64i64 cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_s64i64.cls$q_int_cat_s64i64 #define cls$o_sec_cat_s128 cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_s128.cls$o_sec_cat_s128 #define cls$l_tlvlst cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_dyn_cat.cls$l_tlvlst #define cls$q_sec_cat_0 cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_0.cls$q_sec_cat_0 #define cls$q_int_cat_0 cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_0.cls$q_int_cat_0 #define cls$o_sec_cat_1 cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_1.cls$o_sec_cat_1 #define cls$b_secur_lev cls$r_vms_defs.cls$b_secur_lev #define cls$b_integ_lev cls$r_vms_defs.cls$b_integ_lev #define cls$q_secur_cat cls$r_vms_defs.cls$q_secur_cat #define cls$q_integ_cat cls$r_vms_defs.cls$q_integ_cat #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef union _cls { __struct { unsigned char cls$b_sec_lev; /* Secrecy level */ unsigned char cls$b_int_lev; /* Integrity level */ unsigned char cls$b_type; /* Class block type */ /* Class block type identifiers */ unsigned char cls$b_tlvlst_size; /* Size in longwords of TLV list in */ /* a type 2 class block. */ __union { /* Type dependent overlays/extensions */ /* */ /* Usage of the ..._S64I64 and ..._S128 symbolic name forms is preferred. */ /* Previous name forms have been retained for backwards compatibility only. */ /* */ __struct { /* Type 0 class block fields */ unsigned int cls$q_sec_cat_s64i64 [2]; /* Secrecy category mask */ unsigned int cls$q_int_cat_s64i64 [2]; /* Integrity category mask */ } cls$r_clsdef_s64i64; __struct { /* Type 1 class block fields */ unsigned int cls$o_sec_cat_s128 [4]; /* Secrecy category mask */ } cls$r_clsdef_s128; __struct { /* Type 2 class block fields */ unsigned int cls$l_tlvlst [1]; /* Tag-Length-Value_set list */ } cls$r_clsdef_dyn_cat; /* */ /* The following definitions have been superseded and are being retained for backwards compatibility only. */ /* Usage of the ..._S64I64 and ..._S128 symbolic names is preferred. */ /* */ __struct { /* Type 0 class block fields */ unsigned int cls$q_sec_cat_0 [2]; /* Secrecy category mask - Usage of CLS$Q_SEC_CAT_S64I64 preferred */ unsigned int cls$q_int_cat_0 [2]; /* Integrity category mask - Usage of CLS$Q_INT_CAT_S64I64 preferred */ } cls$r_clsdef_0; __struct { /* Type 1 class block fields */ unsigned int cls$o_sec_cat_1 [4]; /* Secrecy category mask - Usage of CLS$O_SEC_CAT_S128 preferred */ } cls$r_clsdef_1; } cls$r_clsdef_x; } cls$r_sevms_defs; /* */ /* The following definitions have been superseded and are being retained for backwards compatibility only. */ /* Usage of the ..._S64I64 and ..._S128 symbolic names is preferred. */ /* */ __struct { unsigned char cls$b_secur_lev; /* Security level - Usage of CLS$B_SEC_LEV preferred */ unsigned char cls$b_integ_lev; /* Integrity level - Usage of CLS$B_INT_LEV preferred */ short int cls$w_fill_1; /* Reserved */ unsigned int cls$q_secur_cat [2]; /* Security category mask - Usage of CLS$Q_SEC_CAT_S64I64/CLS$O_SEC_CAT_S128 preferred */ unsigned int cls$q_integ_cat [2]; /* Integrity category mask - Usage of CLS$Q_INT_CAT_S64I64 preferred */ } cls$r_vms_defs; /* */ /* 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 preferred. */ /* */ } cls; #if !defined(__VAXC) #define cls$b_sec_lev cls$r_sevms_defs.cls$b_sec_lev #define cls$b_int_lev cls$r_sevms_defs.cls$b_int_lev #define cls$b_type cls$r_sevms_defs.cls$b_type #define cls$b_tlvlst_size cls$r_sevms_defs.cls$b_tlvlst_size #define cls$q_sec_cat_s64i64 cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_s64i64.cls$q_sec_cat_s64i64 #define cls$q_int_cat_s64i64 cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_s64i64.cls$q_int_cat_s64i64 #define cls$o_sec_cat_s128 cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_s128.cls$o_sec_cat_s128 #define cls$l_tlvlst cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_dyn_cat.cls$l_tlvlst #define cls$q_sec_cat_0 cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_0.cls$q_sec_cat_0 #define cls$q_int_cat_0 cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_0.cls$q_int_cat_0 #define cls$o_sec_cat_1 cls$r_sevms_defs.cls$r_clsdef_x.cls$r_clsdef_1.cls$o_sec_cat_1 #define cls$b_secur_lev cls$r_vms_defs.cls$b_secur_lev #define cls$b_integ_lev cls$r_vms_defs.cls$b_integ_lev #define cls$q_secur_cat cls$r_vms_defs.cls$q_secur_cat #define cls$q_integ_cat cls$r_vms_defs.cls$q_integ_cat #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* $CHANGE_CLASS, PARSE_CLASS, FORMAT_CLASS system service item codes */ /* */ #define CLS$_SECSTR 1 /* Textual secrecy/security string */ #define CLS$_INTSTR 2 /* Textual integrity string */ #define CLS$_CLSBLK 3 /* Simple classification block */ #define CLS$_MINCLSBLK 4 /* Minimum classification block */ #define CLS$_MAXCLSBLK 5 /* Maximum classification block */ #define CLS$_WIDTH 6 /* Width of display for $FORMAT_CLASS */ #define CLS$_TRMDSC 7 /* Line terminator for $FORMAT_CLASS */ #define CLS$_INDENT 8 /* Line indenting for $FORMAT_CLASS */ #define CLS$_OLDCLSBLK 9 /* Previous classification block */ #define CLS$_OLDMINCLS 10 /* Previous minimum class block */ #define CLS$_OLDMAXCLS 11 /* Previous maximum class block */ #define CLS$_TRANQUIL 12 /* Override tranquility checks - Usage reserved to Digital */ #define CLS$_FLAGS 13 /* Formatting control flags */ /* ADD ITEM-CODES BEFORE THIS COMMENT */ #define CLS$_MIN_ITEM_CODE 1 #define CLS$_MAX_ITEM_CODE 13 #define CLS$M_COMPRESS 0x1 #define CLS$M_EXPAND 0x2 #ifdef __NEW_STARLET typedef union _fill_108_ { unsigned int cls$l_flags; /* $FORMAT_CLASS control flags */ __struct { unsigned cls$v_compress : 1; /* Compress category range strings */ unsigned cls$v_expand : 1; /* Expande category range strings */ unsigned cls$v_fill_110_ : 6; } cls$r_fill_109_; } FILL_108_; #if !defined(__VAXC) #define cls$v_compress cls$r_fill_109_.cls$v_compress #define cls$v_expand cls$r_fill_109_.cls$v_expand #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef union _fill_108_ { unsigned int cls$l_flags; /* $FORMAT_CLASS control flags */ __struct { unsigned cls$v_compress : 1; /* Compress category range strings */ unsigned cls$v_expand : 1; /* Expande category range strings */ unsigned cls$v_fill_110_ : 6; } cls$r_fill_109_; } fill_108_; #if !defined(__VAXC) #define cls$v_compress cls$r_fill_109_.cls$v_compress #define cls$v_expand cls$r_fill_109_.cls$v_expand #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __CLSDEF_LOADED */