/********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:29:56 by OpenVMS SDL EV3-3 */ /* Source: 30-MAR-2010 17:29:22 $1$DGA7274:[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 */