/***************************************************************************/ /** **/ /** HPE CONFIDENTIAL. This software is confidential proprietary software **/ /** licensed by Hewlett-Packard Enterprise Development, LP, and is not **/ /** authorized to be used, duplicated OR disclosed to anyone without the **/ /** prior written permission of HPE. **/ /** © 2023 Copyright Hewlett-Packard Enterprise Development, LP **/ /** **/ /** VMS SOFTWARE, INC. CONFIDENTIAL. This software is confidential **/ /** proprietary software licensed by VMS Software, Inc., and is not **/ /** authorized to be used, duplicated or disclosed to anyone without **/ /** the prior written permission of VMS Software, Inc. **/ /** © 2023 Copyright VMS Software, Inc. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 9-Nov-2023 12:06:54 by OpenVMS SDL V3.7 */ /* Source: 06-FEB-2002 10:24:28 $1$DGA8345:[LIB_H.SRC]PSRDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $PSRDEF ***/ #ifndef __PSRDEF_LOADED #define __PSRDEF_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 /* */ /* Definitions for Processor Status Register */ /* */ #define PSR$M_USER_MASK 0x3F #define PSR$M_SYSTEM_MASK 0xFFFFFF #define PSR$M_RV0 0x1 #define PSR$M_BE 0x2 #define PSR$M_UP 0x4 #define PSR$M_AC 0x8 #define PSR$M_MFL 0x10 #define PSR$M_MFH 0x20 #define PSR$M_MBZ0 0x1FC0 #define PSR$M_IC 0x2000 #define PSR$M_I 0x4000 #define PSR$M_PK 0x8000 #define PSR$M_MBZ1 0x10000 #define PSR$M_DT 0x20000 #define PSR$M_DFL 0x40000 #define PSR$M_DFH 0x80000 #define PSR$M_SP 0x100000 #define PSR$M_PP 0x200000 #define PSR$M_DI 0x400000 #define PSR$M_SI 0x800000 #define PSR$M_DB 0x1000000 #define PSR$M_LP 0x2000000 #define PSR$M_TB 0x4000000 #define PSR$M_RT 0x8000000 #define PSR$M_MBZ2 0xF0000000 #define PSR$M_CPL 0x300000000 #define PSR$M_IS 0x400000000 #define PSR$M_MC 0x800000000 #define PSR$M_IT 0x1000000000 #define PSR$M_ID 0x2000000000 #define PSR$M_DA 0x4000000000 #define PSR$M_DD 0x8000000000 #define PSR$M_SS 0x10000000000 #define PSR$M_RI 0x60000000000 #define PSR$M_ED 0x80000000000 #define PSR$M_BN 0x100000000000 #define PSR$M_IA 0x200000000000 #define PSR$M_MBZ3 0xFFFFC00000000000 #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _psr { #pragma __nomember_alignment __union { unsigned __int64 psr$q_processor_status; /* Processor status register - entire 64-bits */ unsigned psr$v_user_mask : 6; /* User mask bits PSR{5:0} */ unsigned psr$v_system_mask : 24; /* System mask bits PSR{23:0} */ __struct { unsigned psr$v_rv0 : 1; /* 0 Reserved bit PSR{0:0} */ unsigned psr$v_be : 1; /* 1 Big-Endian */ unsigned psr$v_up : 1; /* 2 User Performance monitor enabled */ unsigned psr$v_ac : 1; /* 3 Alignment Check */ unsigned psr$v_mfl : 1; /* 4 Lower (f2..f31) floating-point registers written */ unsigned psr$v_mfh : 1; /* 5 Upper (f32..f127) floating-point registers written */ unsigned psr$v_mbz0 : 7; /* 6-12 Reserved bits PSR{12:6} (MBZ) */ unsigned psr$v_ic : 1; /* 13 Interruption Collection */ unsigned psr$v_i : 1; /* 14 Interrupt bit */ unsigned psr$v_pk : 1; /* 15 Protection Key enable */ unsigned psr$v_mbz1 : 1; /* 16 Reserved bit PSR{16:16} (MBZ) */ unsigned psr$v_dt : 1; /* 17 Data address Translation */ unsigned psr$v_dfl : 1; /* 18 Disabled Floating-point Low register set */ unsigned psr$v_dfh : 1; /* 19 Disabled Floating-point High register set */ unsigned psr$v_sp : 1; /* 20 Secure Performance monitors */ unsigned psr$v_pp : 1; /* 21 Privileged Performance monitor enable */ unsigned psr$v_di : 1; /* 22 Disable Instruction set transition */ unsigned psr$v_si : 1; /* 23 Secure Interval timer */ unsigned psr$v_db : 1; /* 24 Debug Breakpoint fault */ unsigned psr$v_lp : 1; /* 25 Lower Privilege transfer trap */ unsigned psr$v_tb : 1; /* 26 Taken Branch trap */ unsigned psr$v_rt : 1; /* 27 Register stack Translation */ unsigned psr$v_mbz2 : 4; /* 28-31 Reserved bits PSR{31:28} (MBZ) */ unsigned psr$v_cpl : 2; /* 32-33 Current Privilege Level */ unsigned psr$v_is : 1; /* 34 Instruction Set */ unsigned psr$v_mc : 1; /* 35 Machine Check abort mask */ unsigned psr$v_it : 1; /* 36 Instruction address Translation */ unsigned psr$v_id : 1; /* 37 Instruction Debug fault disable */ unsigned psr$v_da : 1; /* 38 Disable Data Access and Dirty-bit faults */ unsigned psr$v_dd : 1; /* 39 Data Debug fault disable */ unsigned psr$v_ss : 1; /* 40 Single Step enable */ unsigned psr$v_ri : 2; /* 41-42 Restart Instruction */ unsigned psr$v_ed : 1; /* 43 Exception Deferral */ unsigned psr$v_bn : 1; /* 44 Register bank */ unsigned psr$v_ia : 1; /* 45 Disable Instruction Access-bit faults */ unsigned psr$v_mbz3 : 18; /* 46-63 Reserved bits PSR{63:46} */ } psr$r_psrdef_bits; } psr$r_psr_union; } PSR; #if !defined(__VAXC) #define psr$q_processor_status psr$r_psr_union.psr$q_processor_status #define psr$v_user_mask psr$r_psr_union.psr$v_user_mask #define psr$v_system_mask psr$r_psr_union.psr$v_system_mask #define psr$v_rv0 psr$r_psr_union.psr$r_psrdef_bits.psr$v_rv0 #define psr$v_be psr$r_psr_union.psr$r_psrdef_bits.psr$v_be #define psr$v_up psr$r_psr_union.psr$r_psrdef_bits.psr$v_up #define psr$v_ac psr$r_psr_union.psr$r_psrdef_bits.psr$v_ac #define psr$v_mfl psr$r_psr_union.psr$r_psrdef_bits.psr$v_mfl #define psr$v_mfh psr$r_psr_union.psr$r_psrdef_bits.psr$v_mfh #define psr$v_mbz0 psr$r_psr_union.psr$r_psrdef_bits.psr$v_mbz0 #define psr$v_ic psr$r_psr_union.psr$r_psrdef_bits.psr$v_ic #define psr$v_i psr$r_psr_union.psr$r_psrdef_bits.psr$v_i #define psr$v_pk psr$r_psr_union.psr$r_psrdef_bits.psr$v_pk #define psr$v_mbz1 psr$r_psr_union.psr$r_psrdef_bits.psr$v_mbz1 #define psr$v_dt psr$r_psr_union.psr$r_psrdef_bits.psr$v_dt #define psr$v_dfl psr$r_psr_union.psr$r_psrdef_bits.psr$v_dfl #define psr$v_dfh psr$r_psr_union.psr$r_psrdef_bits.psr$v_dfh #define psr$v_sp psr$r_psr_union.psr$r_psrdef_bits.psr$v_sp #define psr$v_pp psr$r_psr_union.psr$r_psrdef_bits.psr$v_pp #define psr$v_di psr$r_psr_union.psr$r_psrdef_bits.psr$v_di #define psr$v_si psr$r_psr_union.psr$r_psrdef_bits.psr$v_si #define psr$v_db psr$r_psr_union.psr$r_psrdef_bits.psr$v_db #define psr$v_lp psr$r_psr_union.psr$r_psrdef_bits.psr$v_lp #define psr$v_tb psr$r_psr_union.psr$r_psrdef_bits.psr$v_tb #define psr$v_rt psr$r_psr_union.psr$r_psrdef_bits.psr$v_rt #define psr$v_mbz2 psr$r_psr_union.psr$r_psrdef_bits.psr$v_mbz2 #define psr$v_cpl psr$r_psr_union.psr$r_psrdef_bits.psr$v_cpl #define psr$v_is psr$r_psr_union.psr$r_psrdef_bits.psr$v_is #define psr$v_mc psr$r_psr_union.psr$r_psrdef_bits.psr$v_mc #define psr$v_it psr$r_psr_union.psr$r_psrdef_bits.psr$v_it #define psr$v_id psr$r_psr_union.psr$r_psrdef_bits.psr$v_id #define psr$v_da psr$r_psr_union.psr$r_psrdef_bits.psr$v_da #define psr$v_dd psr$r_psr_union.psr$r_psrdef_bits.psr$v_dd #define psr$v_ss psr$r_psr_union.psr$r_psrdef_bits.psr$v_ss #define psr$v_ri psr$r_psr_union.psr$r_psrdef_bits.psr$v_ri #define psr$v_ed psr$r_psr_union.psr$r_psrdef_bits.psr$v_ed #define psr$v_bn psr$r_psr_union.psr$r_psrdef_bits.psr$v_bn #define psr$v_ia psr$r_psr_union.psr$r_psrdef_bits.psr$v_ia #define psr$v_mbz3 psr$r_psr_union.psr$r_psrdef_bits.psr$v_mbz3 #endif /* #if !defined(__VAXC) */ #define IS$C_IA64 0 /* IA64 */ #define IS$C_IA32 1 /* IA32 */ #ifdef __INITIAL_POINTER_SIZE #pragma __required_pointer_size __save /* Save current pointer size */ #pragma __required_pointer_size __long /* Pointers are 64-bit */ typedef struct _psr * PSR_PQ; /* Pointer to a PSR structure. */ typedef struct _psr ** PSR_PPQ; /* Pointer to a pointer to a PSR structure. */ #pragma __required_pointer_size __restore /* Return to previous pointer size */ #else typedef unsigned __int64 PSR_PQ; typedef unsigned __int64 PSR_PPQ; #endif /* __INITIAL_POINTER_SIZE */ #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 /* __PSRDEF_LOADED */