/********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:06 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]STARDEFMP.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $PSLDEF ***/ #ifndef __PSLDEF_LOADED #define __PSLDEF_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 /*+ */ /* PROCESSOR STATUS LONGWORD MASK AND FIELD DEFINITIONS */ /* */ /* This definition file provides PSL$xxxx symbols */ /* strictly for the purpose of providing compatibility */ /* for code being ported from VAX which refers to the */ /* fields of the PSL. Only those fields that exist in */ /* both architectures are defined. */ /* */ /* The preferred approach for code that DOES NOT run */ /* on VAX is to use the symbols defined by the $PRDEF */ /* macro instead. */ /*- */ #define PSL$M_PRVMOD 0x3 #define PSL$M_CURMOD 0x18 #define PSL$M_IPL 0x1F00 #define PSL$V_MAX_PS_REG_BIT 13 /* */ #define PSL$C_KERNEL 0 /* Kernel Mode */ #define PSL$C_EXEC 1 /* Executive Mode */ #define PSL$C_SUPER 2 /* Supervisor Mode */ #define PSL$C_USER 3 /* User Mode */ #ifdef __NEW_STARLET typedef union _psldef { __struct { unsigned psl$v_prvmod : 2; /* Previous Processor Mode */ unsigned psldef$$_fill_1 : 1; unsigned psl$v_curmod : 2; /* Current Processor Mode */ unsigned psldef$$_fill_2 : 3; unsigned psl$v_ipl : 5; /* Interrupt Priority Level */ unsigned psl$v_fill_89_ : 3; } psl$r_psldef_bits; /* */ /* Maximum bit number used in the PS register */ /* */ /* MODE SYMBOL DEFINITIONS */ /* */ } PSLDEF; #if !defined(__VAXC) #define psl$v_prvmod psl$r_psldef_bits.psl$v_prvmod #define psl$v_curmod psl$r_psldef_bits.psl$v_curmod #define psl$v_ipl psl$r_psldef_bits.psl$v_ipl #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ union psldef { __struct { unsigned psl$v_prvmod : 2; /* Previous Processor Mode */ unsigned psldef$$_fill_1 : 1; unsigned psl$v_curmod : 2; /* Current Processor Mode */ unsigned psldef$$_fill_2 : 3; unsigned psl$v_ipl : 5; /* Interrupt Priority Level */ unsigned psl$v_fill_89_ : 3; } psl$r_psldef_bits; /* */ /* Maximum bit number used in the PS register */ /* */ /* MODE SYMBOL DEFINITIONS */ /* */ } ; #if !defined(__VAXC) #define psl$v_prvmod psl$r_psldef_bits.psl$v_prvmod #define psl$v_curmod psl$r_psldef_bits.psl$v_curmod #define psl$v_ipl psl$r_psldef_bits.psl$v_ipl #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 /* __PSLDEF_LOADED */