/* // Note: This header is use by both the CC compiler and the IA64 // assembler (via the CC preprocessor which creates the // IA64 assembler source file). // // The CC portion of this header starts at the comment line // 'CC header begins here'. // // ----------------------------------------------------------------------------- */ #ifdef IAS_ASSEMBLER /* IA64 assembler header begins here */ /* ************************************************************************* */ /* * * */ /* * HP CONFIDENTIAL. This software is confidential proprietary software * */ /* * licensed by Hewlett-Packard Development Company, L.P., and is not * */ /* * authorized to be used, duplicated OR disclosed to anyone without the * */ /* * prior written permission of HP. * */ /* * © 2021 Copyright Hewlett-Packard Development Company, L.P. * */ /* * * */ /* * 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. * */ /* * © 2021 Copyright VMS Software, Inc. * */ /* * * */ /* ************************************************************************* */ /* ******************************************************************************************************************************** */ /* Created: 9-Mar-2021 22:28:12 by OpenVMS SDL EV3-3 */ /* Source: 26-MAR-2003 10:42:00 $1$DGA8085:[STARLET_H.SRC]VADEF.SDL;1 */ /* ******************************************************************************************************************************** */ /* .MACRO $VADEF,$GBL */ /* $DEFINI VA,$GBL */ /* + */ /* VIRTUAL ADDRESS VIELDS */ /* - */ #define VA$M_P1 0x40000000 #define VA$M_SYSTEM 0x80000000 #define VA$M_BYTES_PER_PAGELET 0x1FF #define VA$M_BYTE_IN_PAGELET 0x1FF #define VA$M_VRN 0xE000000000000000 #define VA$C_VRN_SYSTEM 7 /* VRN for system space */ #define VA$C_REGION_COUNT 8 /* Number of virtual regions */ #define VA$M_VRNX 0xF000000000000000 #define VA$C_VRNX_SYSTEM 15 /* VRNX for system space */ #define VA$C_VRNX_COUNT 16 /* Number of virtual address spaces */ #define VA$S_VADEF 8 #define VA$C_PAGELET_SIZE 512 #define VA$C_PAGELET_SHIFT_SIZE 9 #define VA$S_VA 8 #define VA$S_QUAD 8 #define VA$Q_QUAD 0 #define VA$V_P1 30 /* P1 SPACE */ #define VA$V_SYSTEM 31 /* SYSTEM SPACE */ #define VA$S_BYTES_PER_PAGELET 9 #define VA$V_BYTES_PER_PAGELET 0 /* BYTES PER PAGELET */ #define VA$S_BYTE_IN_PAGELET 9 #define VA$V_BYTE_IN_PAGELET 0 /* BYTE IN PAGELET (common name) */ #define VA$S_VRN 3 #define VA$V_VRN 61 /* Virtual Region Number */ #define VA$S_VRNX 4 #define VA$V_VRNX 60 /* Virtual Address Space */ /* + */ /* Process permanent region ids */ /* - */ #define VA$C_P0 0 /* Region id for 32-bit program region */ #define VA$C_P1 1 /* Region id for control region */ #define VA$C_P2 2 /* Region id for 64-bit program region */ #define VA$M_DESCEND 0x1 #define VA$M_P0_SPACE 0x2 #define VA$M_P1_SPACE 0x4 #define VA$M_PERMANENT 0x8 #define VA$M_EXPAND_ON_ACCVIO 0x10 #define VA$M_SHARED_PTS 0x40 #define VA$M_OWNER_MODE 0xF #define VA$M_CREATE_MODE 0xF0 #define VA$C_REGSUM_LENGTH 40 #define VA$_REGSUM_BY_ID 0 #define VA$_REGSUM_BY_VA 1 #define VA$_NEXT_REGSUM_BY_VA 2 /* + */ #define VA$C_REGION_UCREATE_UOWN 51 #define VA$C_REGION_UCREATE_SOWN 50 #define VA$C_REGION_UCREATE_EOWN 49 #define VA$C_REGION_UCREATE_KOWN 48 #define VA$C_REGION_SCREATE_SOWN 34 #define VA$C_REGION_SCREATE_EOWN 33 #define VA$C_REGION_SCREATE_KOWN 32 #define VA$C_REGION_ECREATE_EOWN 17 #define VA$C_REGION_ECREATE_KOWN 16 #define VA$C_REGION_KCREATE_KOWN 0 #define VA$S_REGSUM 40 #define VA$S_REGION_ID 8 #define VA$Q_REGION_ID 0 /* Id of region */ #define VA$L_FLAGS 8 /* FLAGS longword */ #define VA$V_DESCEND 0 /* Region is descending */ #define VA$V_P0_SPACE 1 /* Region is in P0 space */ #define VA$V_P1_SPACE 2 /* Region is in P1 space */ #define VA$V_PERMANENT 3 /* Region is permanent */ #define VA$V_EXPAND_ON_ACCVIO 4 /* Expand within region on accvio */ /* public interface. */ #define VA$V_SHARED_PTS 6 /* Region is a shared PT region */ #define VA$L_REGION_PROTECTION 12 #define VA$S_OWNER_MODE 4 #define VA$V_OWNER_MODE 0 /* Region owner mode */ #define VA$S_CREATE_MODE 4 #define VA$V_CREATE_MODE 4 /* Region create mode */ #define VA$S_START_VA 8 #define VA$PQ_START_VA 16 /* Lowest address in region */ #define VA$PS_START_VA 16 /* Lowest address in 32-bit region */ #define VA$S_REGION_SIZE 8 #define VA$Q_REGION_SIZE 24 /* Size of region */ #define VA$L_REGION_SIZE 24 /* Size of 32-bit region */ #define VA$S_FIRST_FREE_VA 8 #define VA$PQ_FIRST_FREE_VA 32 /* First free VA in region */ #define VA$PS_FIRST_FREE_VA 32 /* First free VA in 32-bit region */ /* Region protection encodings */ /* - */ /* + */ /* VA flags */ /* - */ #define VA$M_NO_OVERMAP 0x1 #define VA$V_NO_OVERMAP 0 /* Do not overmap while creating pages */ /* + */ /* SETSTK_64 flags */ /* - */ #define VA$M_SETSTK_REGISTER 0x1 #define VA$V_SETSTK_REGISTER 0 /* Set register stack limits */ /* $DEFEND VA,$GBL,DEF */ /* .ENDM */ /* IA64 assembler header ends here */ #else /* IAS_ASSEMBLER */ /* CC header begins here */ /********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:06 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]STARDEFQZ.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE $VADEF ***/ #ifndef __VADEF_LOADED #define __VADEF_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 /*+ */ /* VIRTUAL ADDRESS VIELDS */ /*- */ #define VA$M_P1 0x40000000 #define VA$M_SYSTEM 0x80000000 #define VA$M_BYTES_PER_PAGELET 0x1FF #define VA$M_BYTE_IN_PAGELET 0x1FF #define VA$M_VRN 0xE000000000000000 #define VA$C_VRN_SYSTEM 7 /* VRN for system space */ #define VA$C_REGION_COUNT 8 /* Number of virtual regions */ #define VA$M_VRNX 0xF000000000000000 #define VA$C_VRNX_SYSTEM 15 /* VRNX for system space */ #define VA$C_VRNX_COUNT 16 /* Number of virtual address spaces */ #define VA$S_VADEF 8 #define VA$C_PAGELET_SIZE 512 #define VA$C_PAGELET_SHIFT_SIZE 9 #ifdef __NEW_STARLET typedef struct _va { __union { unsigned __int64 va$q_quad; __struct { unsigned vadef$$_fill_1 : 30; unsigned va$v_p1 : 1; /*P1 SPACE */ unsigned va$v_system : 1; /*SYSTEM SPACE */ } va$r_vadef_bits0; __struct { unsigned va$v_bytes_per_pagelet : 9; /*BYTES PER PAGELET */ unsigned va$v_fill_74_ : 7; } va$r_vadef_bits2; __struct { unsigned va$v_byte_in_pagelet : 9; /*BYTE IN PAGELET (common name) */ unsigned va$v_fill_75_ : 7; } va$r_vadef_bits3; __struct { unsigned va$v_fill_4 : 32; unsigned va$v_fill_5 : 29; unsigned va$v_vrn : 3; /* Virtual Region Number */ } va$r_vadef_bits4; __struct { unsigned va$v_fill_6 : 32; unsigned va$v_fill_7 : 28; unsigned va$v_vrnx : 4; /* Virtual Address Space */ } va$r_vadef_bits5; } va$r_vadef_union; } VA; #if !defined(__VAXC) #define va$q_quad va$r_vadef_union.va$q_quad #define va$v_p1 va$r_vadef_union.va$r_vadef_bits0.va$v_p1 #define va$v_system va$r_vadef_union.va$r_vadef_bits0.va$v_system #define va$v_bytes_per_pagelet va$r_vadef_union.va$r_vadef_bits2.va$v_bytes_per_pagelet #define va$v_byte_in_pagelet va$r_vadef_union.va$r_vadef_bits3.va$v_byte_in_pagelet #define va$v_vrn va$r_vadef_union.va$r_vadef_bits4.va$v_vrn #define va$v_vrnx va$r_vadef_union.va$r_vadef_bits5.va$v_vrnx #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef struct _va { __union { unsigned int va$q_quad [2]; __struct { unsigned vadef$$_fill_1 : 30; unsigned va$v_p1 : 1; /*P1 SPACE */ unsigned va$v_system : 1; /*SYSTEM SPACE */ } va$r_vadef_bits0; __struct { unsigned va$v_bytes_per_pagelet : 9; /*BYTES PER PAGELET */ unsigned va$v_fill_74_ : 7; } va$r_vadef_bits2; __struct { unsigned va$v_byte_in_pagelet : 9; /*BYTE IN PAGELET (common name) */ unsigned va$v_fill_75_ : 7; } va$r_vadef_bits3; __struct { unsigned va$v_fill_4 : 32; unsigned va$v_fill_5 : 29; unsigned va$v_vrn : 3; /* Virtual Region Number */ } va$r_vadef_bits4; __struct { unsigned va$v_fill_6 : 32; unsigned va$v_fill_7 : 28; unsigned va$v_vrnx : 4; /* Virtual Address Space */ } va$r_vadef_bits5; } va$r_vadef_union; } va; #if !defined(__VAXC) #define va$q_quad va$r_vadef_union.va$q_quad #define va$v_p1 va$r_vadef_union.va$r_vadef_bits0.va$v_p1 #define va$v_system va$r_vadef_union.va$r_vadef_bits0.va$v_system #define va$v_bytes_per_pagelet va$r_vadef_union.va$r_vadef_bits2.va$v_bytes_per_pagelet #define va$v_byte_in_pagelet va$r_vadef_union.va$r_vadef_bits3.va$v_byte_in_pagelet #define va$v_vrn va$r_vadef_union.va$r_vadef_bits4.va$v_vrn #define va$v_vrnx va$r_vadef_union.va$r_vadef_bits5.va$v_vrnx #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /*+ */ /* Process permanent region ids */ /*- */ #define VA$C_P0 0 /* Region id for 32-bit program region */ #define VA$C_P1 1 /* Region id for control region */ #define VA$C_P2 2 /* Region id for 64-bit program region */ #define VA$M_DESCEND 0x1 #define VA$M_P0_SPACE 0x2 #define VA$M_P1_SPACE 0x4 #define VA$M_PERMANENT 0x8 #define VA$M_EXPAND_ON_ACCVIO 0x10 #define VA$M_SHARED_PTS 0x40 #define VA$M_OWNER_MODE 0xF #define VA$M_CREATE_MODE 0xF0 #define VA$C_REGSUM_LENGTH 40 #define VA$_REGSUM_BY_ID 0 #define VA$_REGSUM_BY_VA 1 #define VA$_NEXT_REGSUM_BY_VA 2 /*+ */ #define VA$C_REGION_UCREATE_UOWN 51 #define VA$C_REGION_UCREATE_SOWN 50 #define VA$C_REGION_UCREATE_EOWN 49 #define VA$C_REGION_UCREATE_KOWN 48 #define VA$C_REGION_SCREATE_SOWN 34 #define VA$C_REGION_SCREATE_EOWN 33 #define VA$C_REGION_SCREATE_KOWN 32 #define VA$C_REGION_ECREATE_EOWN 17 #define VA$C_REGION_ECREATE_KOWN 16 #define VA$C_REGION_KCREATE_KOWN 0 #ifdef __NEW_STARLET typedef struct _regsum { unsigned __int64 va$q_region_id; /* Id of region */ __union { unsigned int va$l_flags; /* FLAGS longword */ __struct { unsigned va$v_descend : 1; /* Region is descending */ unsigned va$v_p0_space : 1; /* Region is in P0 space */ unsigned va$v_p1_space : 1; /* Region is in P1 space */ unsigned va$v_permanent : 1; /* Region is permanent */ unsigned va$v_expand_on_accvio : 1; /* Expand within region on accvio */ unsigned va$v_no_clone : 1; /* Don't replicate this bit in the */ /* public interface. */ unsigned va$v_shared_pts : 1; /* Region is a shared PT region */ unsigned va$v_fill_76_ : 1; } va$r_flags_bits; } va$r_flags_overlay; __union { int va$l_region_protection; __struct { unsigned va$v_owner_mode : 4; /* Region owner mode */ unsigned va$v_create_mode : 4; /* Region create mode */ } va$r_region_fields; } va$r_region_prot; __union { #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *va$pq_start_va; /* Lowest address in region */ #else unsigned __int64 va$pq_start_va; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif void *va$ps_start_va; /* Lowest address in 32-bit region */ } va$r_start_va_union; __union { unsigned __int64 va$q_region_size; /* Size of region */ unsigned int va$l_region_size; /* Size of 32-bit region */ } va$r_region_size_union; __union { #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __long /* And set ptr size default to 64-bit pointers */ void *va$pq_first_free_va; /* First free VA in region */ #else unsigned __int64 va$pq_first_free_va; #endif #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif void *va$ps_first_free_va; /* First free VA in 32-bit region */ } va$r_free_va_union; /* Region protection encodings */ /*- */ } REGSUM; #if !defined(__VAXC) #define va$l_flags va$r_flags_overlay.va$l_flags #define va$v_descend va$r_flags_overlay.va$r_flags_bits.va$v_descend #define va$v_p0_space va$r_flags_overlay.va$r_flags_bits.va$v_p0_space #define va$v_p1_space va$r_flags_overlay.va$r_flags_bits.va$v_p1_space #define va$v_permanent va$r_flags_overlay.va$r_flags_bits.va$v_permanent #define va$v_expand_on_accvio va$r_flags_overlay.va$r_flags_bits.va$v_expand_on_accvio #define va$v_shared_pts va$r_flags_overlay.va$r_flags_bits.va$v_shared_pts #define va$l_region_protection va$r_region_prot.va$l_region_protection #define va$v_owner_mode va$r_region_prot.va$r_region_fields.va$v_owner_mode #define va$v_create_mode va$r_region_prot.va$r_region_fields.va$v_create_mode #define va$pq_start_va va$r_start_va_union.va$pq_start_va #define va$ps_start_va va$r_start_va_union.va$ps_start_va #define va$q_region_size va$r_region_size_union.va$q_region_size #define va$l_region_size va$r_region_size_union.va$l_region_size #define va$pq_first_free_va va$r_free_va_union.va$pq_first_free_va #define va$ps_first_free_va va$r_free_va_union.va$ps_first_free_va #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ typedef struct _regsum { unsigned int va$q_region_id [2]; /* Id of region */ __union { unsigned int va$l_flags; /* FLAGS longword */ __struct { unsigned va$v_descend : 1; /* Region is descending */ unsigned va$v_p0_space : 1; /* Region is in P0 space */ unsigned va$v_p1_space : 1; /* Region is in P1 space */ unsigned va$v_permanent : 1; /* Region is permanent */ unsigned va$v_expand_on_accvio : 1; /* Expand within region on accvio */ unsigned va$v_no_clone : 1; /* Don't replicate this bit in the */ /* public interface. */ unsigned va$v_shared_pts : 1; /* Region is a shared PT region */ unsigned va$v_fill_76_ : 1; } va$r_flags_bits; } va$r_flags_overlay; __union { int va$l_region_protection; __struct { unsigned va$v_owner_mode : 4; /* Region owner mode */ unsigned va$v_create_mode : 4; /* Region create mode */ } va$r_region_fields; } va$r_region_prot; __union { unsigned __int64 va$pq_start_va; /* Lowest address in region */ int va$ps_start_va; /* Lowest address in 32-bit region */ } va$r_start_va_union; __union { unsigned int va$q_region_size [2]; /* Size of region */ unsigned int va$l_region_size; /* Size of 32-bit region */ } va$r_region_size_union; __union { unsigned __int64 va$pq_first_free_va; /* First free VA in region */ int va$ps_first_free_va; /* First free VA in 32-bit region */ } va$r_free_va_union; /* Region protection encodings */ /*- */ } regsum; #if !defined(__VAXC) #define va$l_flags va$r_flags_overlay.va$l_flags #define va$v_descend va$r_flags_overlay.va$r_flags_bits.va$v_descend #define va$v_p0_space va$r_flags_overlay.va$r_flags_bits.va$v_p0_space #define va$v_p1_space va$r_flags_overlay.va$r_flags_bits.va$v_p1_space #define va$v_permanent va$r_flags_overlay.va$r_flags_bits.va$v_permanent #define va$v_expand_on_accvio va$r_flags_overlay.va$r_flags_bits.va$v_expand_on_accvio #define va$v_shared_pts va$r_flags_overlay.va$r_flags_bits.va$v_shared_pts #define va$l_region_protection va$r_region_prot.va$l_region_protection #define va$v_owner_mode va$r_region_prot.va$r_region_fields.va$v_owner_mode #define va$v_create_mode va$r_region_prot.va$r_region_fields.va$v_create_mode #define va$pq_start_va va$r_start_va_union.va$pq_start_va #define va$ps_start_va va$r_start_va_union.va$ps_start_va #define va$q_region_size va$r_region_size_union.va$q_region_size #define va$l_region_size va$r_region_size_union.va$l_region_size #define va$pq_first_free_va va$r_free_va_union.va$pq_first_free_va #define va$ps_first_free_va va$r_free_va_union.va$ps_first_free_va #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /*+ */ /* VA flags */ /*- */ #define VA$M_NO_OVERMAP 0x1 #ifdef __NEW_STARLET typedef struct _va_flags { unsigned va$v_no_overmap : 1; /* Do not overmap while creating pages */ unsigned va$v_fill_77_ : 7; } VA_FLAGS; #else /* __OLD_STARLET */ typedef struct _va_flags { unsigned va$v_no_overmap : 1; /* Do not overmap while creating pages */ unsigned va$v_fill_77_ : 7; } va_flags; #endif /* #ifdef __NEW_STARLET */ /*+ */ /* SETSTK_64 flags */ /*- */ #define VA$M_SETSTK_REGISTER 0x1 #ifdef __NEW_STARLET typedef struct _setstk_flags { unsigned va$v_setstk_register : 1; /* Set register stack limits */ unsigned va$v_fill_78_ : 7; } SETSTK_FLAGS; #else /* __OLD_STARLET */ typedef struct _setstk_flags { unsigned va$v_setstk_register : 1; /* Set register stack limits */ unsigned va$v_fill_78_ : 7; } setstk_flags; #endif /* #ifdef __NEW_STARLET */ #ifdef __INITIAL_POINTER_SIZE #pragma __required_pointer_size __save #pragma __required_pointer_size __long #ifdef __NEW_STARLET typedef REGSUM *REGSUM_PQ; #else typedef regsum *regsum_pq; #endif #pragma __required_pointer_size __restore #endif #ifndef __INITIAL_POINTER_SIZE #ifdef __NEW_STARLET typedef unsigned __int64 REGSUM_PQ; #else typedef unsigned __int64 regsum_pq; #endif #endif #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 /* __VADEF_LOADED */ /* CC header ends here */ #endif /* IAS_ASSEMBLER */