/********************************************************************************************************************************/ /* 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 $SECDEF ***/ #ifndef __SECDEF_LOADED #define __SECDEF_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 /*+ */ /* PROCESS OR GLOBAL SECTION DEFINITIONS */ /*- */ /* */ /* ***** L_VBN, L_WINDOW, and L_PFC must be the same offset values as the */ /* ***** equivalently named offsets in $PFLDEF. */ /* */ #define SEC$M_GBL 0x1 #define SEC$M_CRF 0x2 #define SEC$M_DZRO 0x4 #define SEC$M_WRT 0x8 #define SEC$M_SHMGS 0x10 #define SEC$M_ARGS64 0x20 #define SEC$M_WRTMOD 0xC0 #define SEC$M_AMOD 0x300 #define SEC$M_UNCACHED 0x400 #define SEC$M_READ_ONLY_SHPT 0x800 #define SEC$M_SHARED_PTS 0x1000 #define SEC$M_MRES 0x2000 #define SEC$M_PERM 0x4000 #define SEC$M_SYSGBL 0x8000 #define SEC$M_PFNMAP 0x10000 #define SEC$M_EXPREG 0x20000 #define SEC$M_PROTECT 0x40000 #define SEC$M_PAGFIL 0x80000 #define SEC$M_EXECUTE 0x100000 #define SEC$M_NOPROTCHK 0x200000 #define SEC$M_NO_OVERMAP 0x400000 #define SEC$M_INPROG 0x800000 #define SEC$M_PARANOID 0x1000000 #define SEC$M_GRANHINT 0x2000000 #define SEC$M_MRES_ALLOC 0x4000000 #define SEC$M_RAD_HINT 0x8000000 #define SEC$M_INCONMMGST 0x10000000 #ifdef __NEW_STARLET typedef struct _secdef { __union { int sec$l_gsd; /*GLOBAL SECTION DESCRIPTOR ADDRESS */ int sec$l_ccb; /*CHANNEL CONTROL BLOCK ADDRESS IF PROCESS SECTION */ } sec$r_gsd_overlay; unsigned int sec$l_secxfl; /*SECTION INDEX FORWARD LINK */ unsigned int sec$l_secxbl; /*SECTION INDEX BACKWARD LINK */ unsigned int sec$l_pfc; /*PFC - Page Fault Cluster */ __union { __int64 sec$q_mres_refcnt; /*REFERENCE COUNT FOR MRES/SHMGS SECTIONS */ __struct { __union { /*BASE VIRTUAL BLOCK NUMBER */ unsigned int sec$l_vbn; unsigned __int64 sec$q_vbn; } sec$r_vbn_overlay; int sec$l_window; /*WINDOW CONTROL BLOCK */ } sec$r_file_fields; } sec$r_mres_file_overlay; /* */ /* ***** NOTE ***** */ /* All flags in sec$l_flags must be kept in sync with flags in the */ /* SECFLG structure defined further in this module. */ /* **************** */ /* */ __union { unsigned int sec$l_flags; /* VARIOUS CONTROL FLAGS IN LOW WORD */ __struct { unsigned sec$v_gbl : 1; /* GLOBAL SECTION */ unsigned sec$v_crf : 1; /* COPY ON REFERENCE */ unsigned sec$v_dzro : 1; /* DEMAND ZERO */ unsigned sec$v_wrt : 1; /* WRITABLE */ unsigned sec$v_shmgs : 1; /* SHARED MEMORY GLOBAL SECTION */ unsigned sec$v_args64 : 1; /* Arguments passed as quads */ unsigned sec$v_wrtmod : 2; /* WRITE ACCESS MODE FOR SECTION */ unsigned sec$v_amod : 2; /* ACCESS MODE OF SECTION */ unsigned sec$v_uncached : 1; /* PFN-map I/O space uncached. */ unsigned sec$v_read_only_shpt : 1; /* Shared page tables map section read-only */ unsigned sec$v_shared_pts : 1; /* Section is a shared PT section */ unsigned sec$v_mres : 1; /* MEMORY RESIDENT SECTION */ unsigned sec$v_perm : 1; /* PERMANENT SECTION */ unsigned sec$v_sysgbl : 1; /* 1 = SYSTEM GLOBAL, 0 = GROUP GLOBAL */ /* */ /* ***** THE FOLLOWING FLAGS ARE INDICATORS FOR PRIVATE AND GLOBAL SECTION */ /* ***** SYSTEM SERVICE REQUESTS AND ARE NOT STORED IN THE FLAGS LONGWORD */ /* ***** FIELD. */ /* */ unsigned sec$v_pfnmap : 1; /* MAP TO SPECIFIC PFN'S */ unsigned sec$v_expreg : 1; /* MAP INTO FIRST FREE ADDRESS SPACE */ unsigned sec$v_protect : 1; /* CHECK WRITE ACCESS MODE (WRTMOD) */ unsigned sec$v_pagfil : 1; /* GLOBAL SECTION HAS PAGE FILE BACKING STORE */ unsigned sec$v_execute : 1; /* CHECK FOR EXECUTE ACCESS */ unsigned sec$v_noprotchk : 1; /* INHIBIT PROTECTION CHECK */ unsigned sec$v_no_overmap : 1; /* DON'T OVERMAP ADDRESS SPACE */ unsigned sec$v_inprog : 1; /* Section creation in progress */ unsigned sec$v_paranoid : 1; /* Go into paranoia mode */ unsigned sec$v_granhint : 1; /* Allow enhanced GH regions */ unsigned sec$v_mres_alloc : 1; /* Allocate memory resident pages during create */ unsigned sec$v_rad_hint : 1; /* Allocate pages based on RAD hint */ unsigned sec$v_inconmmgst : 1; /* Possible INCONMMGST workaround (saved in flags longword) */ unsigned sec$v_fill_18_ : 3; } sec$r_flags_bits; } sec$r_flags_overlay; int sec$l_refcnt; /* COUNT OF PTE'S REFERENCING THIS SECTION (unless MRES/SHMGS) */ /* */ /* UNIT_CNT contains the number of pagelets (512 byte units) in the section, except for */ /* PFN-mapped sections. In that case, UNIT_CNT contains the number of PFNs mapped by the section. */ /* */ unsigned int sec$l_vpx; /* Starting virtual page index */ __union { /* Number of pagelets/PFNs in the section */ unsigned int sec$l_unit_cnt; unsigned __int64 sec$q_unit_cnt; } sec$r_unit_cnt_overlay; } SECDEF; #if !defined(__VAXC) #define sec$l_gsd sec$r_gsd_overlay.sec$l_gsd #define sec$l_ccb sec$r_gsd_overlay.sec$l_ccb #define sec$q_mres_refcnt sec$r_mres_file_overlay.sec$q_mres_refcnt #define sec$r_file_fields sec$r_mres_file_overlay.sec$r_file_fields #define sec$l_vbn sec$r_file_fields.sec$r_vbn_overlay.sec$l_vbn #define sec$q_vbn sec$r_file_fields.sec$r_vbn_overlay.sec$q_vbn #define sec$l_window sec$r_file_fields.sec$l_window #define sec$l_flags sec$r_flags_overlay.sec$l_flags #define sec$v_gbl sec$r_flags_overlay.sec$r_flags_bits.sec$v_gbl #define sec$v_crf sec$r_flags_overlay.sec$r_flags_bits.sec$v_crf #define sec$v_dzro sec$r_flags_overlay.sec$r_flags_bits.sec$v_dzro #define sec$v_wrt sec$r_flags_overlay.sec$r_flags_bits.sec$v_wrt #define sec$v_shmgs sec$r_flags_overlay.sec$r_flags_bits.sec$v_shmgs #define sec$v_args64 sec$r_flags_overlay.sec$r_flags_bits.sec$v_args64 #define sec$v_wrtmod sec$r_flags_overlay.sec$r_flags_bits.sec$v_wrtmod #define sec$v_amod sec$r_flags_overlay.sec$r_flags_bits.sec$v_amod #define sec$v_uncached sec$r_flags_overlay.sec$r_flags_bits.sec$v_uncached #define sec$v_read_only_shpt sec$r_flags_overlay.sec$r_flags_bits.sec$v_read_only_shpt #define sec$v_shared_pts sec$r_flags_overlay.sec$r_flags_bits.sec$v_shared_pts #define sec$v_mres sec$r_flags_overlay.sec$r_flags_bits.sec$v_mres #define sec$v_perm sec$r_flags_overlay.sec$r_flags_bits.sec$v_perm #define sec$v_sysgbl sec$r_flags_overlay.sec$r_flags_bits.sec$v_sysgbl #define sec$v_pfnmap sec$r_flags_overlay.sec$r_flags_bits.sec$v_pfnmap #define sec$v_expreg sec$r_flags_overlay.sec$r_flags_bits.sec$v_expreg #define sec$v_protect sec$r_flags_overlay.sec$r_flags_bits.sec$v_protect #define sec$v_pagfil sec$r_flags_overlay.sec$r_flags_bits.sec$v_pagfil #define sec$v_execute sec$r_flags_overlay.sec$r_flags_bits.sec$v_execute #define sec$v_noprotchk sec$r_flags_overlay.sec$r_flags_bits.sec$v_noprotchk #define sec$v_no_overmap sec$r_flags_overlay.sec$r_flags_bits.sec$v_no_overmap #define sec$v_inprog sec$r_flags_overlay.sec$r_flags_bits.sec$v_inprog #define sec$v_paranoid sec$r_flags_overlay.sec$r_flags_bits.sec$v_paranoid #define sec$v_granhint sec$r_flags_overlay.sec$r_flags_bits.sec$v_granhint #define sec$v_mres_alloc sec$r_flags_overlay.sec$r_flags_bits.sec$v_mres_alloc #define sec$v_rad_hint sec$r_flags_overlay.sec$r_flags_bits.sec$v_rad_hint #define sec$v_inconmmgst sec$r_flags_overlay.sec$r_flags_bits.sec$v_inconmmgst #define sec$l_unit_cnt sec$r_unit_cnt_overlay.sec$l_unit_cnt #define sec$q_unit_cnt sec$r_unit_cnt_overlay.sec$q_unit_cnt #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct secdef { __union { int sec$l_gsd; /*GLOBAL SECTION DESCRIPTOR ADDRESS */ int sec$l_ccb; /*CHANNEL CONTROL BLOCK ADDRESS IF PROCESS SECTION */ } sec$r_gsd_overlay; unsigned int sec$l_secxfl; /*SECTION INDEX FORWARD LINK */ unsigned int sec$l_secxbl; /*SECTION INDEX BACKWARD LINK */ unsigned int sec$l_pfc; /*PFC - Page Fault Cluster */ __union { int sec$q_mres_refcnt [2]; /*REFERENCE COUNT FOR MRES/SHMGS SECTIONS */ __struct { __union { /*BASE VIRTUAL BLOCK NUMBER */ unsigned int sec$l_vbn; unsigned int sec$q_vbn [2]; } sec$r_vbn_overlay; int sec$l_window; /*WINDOW CONTROL BLOCK */ } sec$r_file_fields; } sec$r_mres_file_overlay; /* */ /* ***** NOTE ***** */ /* All flags in sec$l_flags must be kept in sync with flags in the */ /* SECFLG structure defined further in this module. */ /* **************** */ /* */ __union { unsigned int sec$l_flags; /* VARIOUS CONTROL FLAGS IN LOW WORD */ __struct { unsigned sec$v_gbl : 1; /* GLOBAL SECTION */ unsigned sec$v_crf : 1; /* COPY ON REFERENCE */ unsigned sec$v_dzro : 1; /* DEMAND ZERO */ unsigned sec$v_wrt : 1; /* WRITABLE */ unsigned sec$v_shmgs : 1; /* SHARED MEMORY GLOBAL SECTION */ unsigned sec$v_args64 : 1; /* Arguments passed as quads */ unsigned sec$v_wrtmod : 2; /* WRITE ACCESS MODE FOR SECTION */ unsigned sec$v_amod : 2; /* ACCESS MODE OF SECTION */ unsigned sec$v_uncached : 1; /* PFN-map I/O space uncached. */ unsigned sec$v_read_only_shpt : 1; /* Shared page tables map section read-only */ unsigned sec$v_shared_pts : 1; /* Section is a shared PT section */ unsigned sec$v_mres : 1; /* MEMORY RESIDENT SECTION */ unsigned sec$v_perm : 1; /* PERMANENT SECTION */ unsigned sec$v_sysgbl : 1; /* 1 = SYSTEM GLOBAL, 0 = GROUP GLOBAL */ /* */ /* ***** THE FOLLOWING FLAGS ARE INDICATORS FOR PRIVATE AND GLOBAL SECTION */ /* ***** SYSTEM SERVICE REQUESTS AND ARE NOT STORED IN THE FLAGS LONGWORD */ /* ***** FIELD. */ /* */ unsigned sec$v_pfnmap : 1; /* MAP TO SPECIFIC PFN'S */ unsigned sec$v_expreg : 1; /* MAP INTO FIRST FREE ADDRESS SPACE */ unsigned sec$v_protect : 1; /* CHECK WRITE ACCESS MODE (WRTMOD) */ unsigned sec$v_pagfil : 1; /* GLOBAL SECTION HAS PAGE FILE BACKING STORE */ unsigned sec$v_execute : 1; /* CHECK FOR EXECUTE ACCESS */ unsigned sec$v_noprotchk : 1; /* INHIBIT PROTECTION CHECK */ unsigned sec$v_no_overmap : 1; /* DON'T OVERMAP ADDRESS SPACE */ unsigned sec$v_inprog : 1; /* Section creation in progress */ unsigned sec$v_paranoid : 1; /* Go into paranoia mode */ unsigned sec$v_granhint : 1; /* Allow enhanced GH regions */ unsigned sec$v_mres_alloc : 1; /* Allocate memory resident pages during create */ unsigned sec$v_rad_hint : 1; /* Allocate pages based on RAD hint */ unsigned sec$v_inconmmgst : 1; /* Possible INCONMMGST workaround (saved in flags longword) */ unsigned sec$v_fill_18_ : 3; } sec$r_flags_bits; } sec$r_flags_overlay; int sec$l_refcnt; /* COUNT OF PTE'S REFERENCING THIS SECTION (unless MRES/SHMGS) */ /* */ /* UNIT_CNT contains the number of pagelets (512 byte units) in the section, except for */ /* PFN-mapped sections. In that case, UNIT_CNT contains the number of PFNs mapped by the section. */ /* */ unsigned int sec$l_vpx; /* Starting virtual page index */ __union { /* Number of pagelets/PFNs in the section */ unsigned int sec$l_unit_cnt; unsigned int sec$q_unit_cnt [2]; } sec$r_unit_cnt_overlay; } ; #if !defined(__VAXC) #define sec$l_gsd sec$r_gsd_overlay.sec$l_gsd #define sec$l_ccb sec$r_gsd_overlay.sec$l_ccb #define sec$q_mres_refcnt sec$r_mres_file_overlay.sec$q_mres_refcnt #define sec$l_vbn sec$r_mres_file_overlay.sec$r_file_fields.sec$r_vbn_overlay.sec$l_vbn #define sec$q_vbn sec$r_mres_file_overlay.sec$r_file_fields.sec$r_vbn_overlay.sec$q_vbn #define sec$l_window sec$r_mres_file_overlay.sec$r_file_fields.sec$l_window #define sec$l_flags sec$r_flags_overlay.sec$l_flags #define sec$v_gbl sec$r_flags_overlay.sec$r_flags_bits.sec$v_gbl #define sec$v_crf sec$r_flags_overlay.sec$r_flags_bits.sec$v_crf #define sec$v_dzro sec$r_flags_overlay.sec$r_flags_bits.sec$v_dzro #define sec$v_wrt sec$r_flags_overlay.sec$r_flags_bits.sec$v_wrt #define sec$v_shmgs sec$r_flags_overlay.sec$r_flags_bits.sec$v_shmgs #define sec$v_args64 sec$r_flags_overlay.sec$r_flags_bits.sec$v_args64 #define sec$v_wrtmod sec$r_flags_overlay.sec$r_flags_bits.sec$v_wrtmod #define sec$v_amod sec$r_flags_overlay.sec$r_flags_bits.sec$v_amod #define sec$v_uncached sec$r_flags_overlay.sec$r_flags_bits.sec$v_uncached #define sec$v_read_only_shpt sec$r_flags_overlay.sec$r_flags_bits.sec$v_read_only_shpt #define sec$v_shared_pts sec$r_flags_overlay.sec$r_flags_bits.sec$v_shared_pts #define sec$v_mres sec$r_flags_overlay.sec$r_flags_bits.sec$v_mres #define sec$v_perm sec$r_flags_overlay.sec$r_flags_bits.sec$v_perm #define sec$v_sysgbl sec$r_flags_overlay.sec$r_flags_bits.sec$v_sysgbl #define sec$v_pfnmap sec$r_flags_overlay.sec$r_flags_bits.sec$v_pfnmap #define sec$v_expreg sec$r_flags_overlay.sec$r_flags_bits.sec$v_expreg #define sec$v_protect sec$r_flags_overlay.sec$r_flags_bits.sec$v_protect #define sec$v_pagfil sec$r_flags_overlay.sec$r_flags_bits.sec$v_pagfil #define sec$v_execute sec$r_flags_overlay.sec$r_flags_bits.sec$v_execute #define sec$v_noprotchk sec$r_flags_overlay.sec$r_flags_bits.sec$v_noprotchk #define sec$v_no_overmap sec$r_flags_overlay.sec$r_flags_bits.sec$v_no_overmap #define sec$v_inprog sec$r_flags_overlay.sec$r_flags_bits.sec$v_inprog #define sec$v_paranoid sec$r_flags_overlay.sec$r_flags_bits.sec$v_paranoid #define sec$v_granhint sec$r_flags_overlay.sec$r_flags_bits.sec$v_granhint #define sec$v_mres_alloc sec$r_flags_overlay.sec$r_flags_bits.sec$v_mres_alloc #define sec$v_rad_hint sec$r_flags_overlay.sec$r_flags_bits.sec$v_rad_hint #define sec$v_inconmmgst sec$r_flags_overlay.sec$r_flags_bits.sec$v_inconmmgst #define sec$l_unit_cnt sec$r_unit_cnt_overlay.sec$l_unit_cnt #define sec$q_unit_cnt sec$r_unit_cnt_overlay.sec$q_unit_cnt #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ /* */ /* ***** NOTE THAT NUMBER OF LONG WORDS MUST BE EVEN */ /* */ #define SEC$K_LENGTH 48 /*SIZE OF PSTE/GSTE */ #define SEC$C_LENGTH 48 /*SIZE OF PSTE/GSTE */ /* */ /* ***** NOTE ***** */ /* All flags in the SECFLG structure must be kept in sync with flags in */ /* sec$l_flags defined in the SECDEF structure. */ /* **************** */ /* */ #define SECFLG$M_GBL 0x1 #define SECFLG$M_CRF 0x2 #define SECFLG$M_DZRO 0x4 #define SECFLG$M_WRT 0x8 #define SECFLG$M_SHMGS 0x10 #define SECFLG$M_ARGS64 0x20 #define SECFLG$M_WRTMOD 0xC0 #define SECFLG$M_AMOD 0x300 #define SECFLG$M_UNCACHED 0x400 #define SECFLG$M_READ_ONLY_SHPT 0x800 #define SECFLG$M_SHARED_PTS 0x1000 #define SECFLG$M_MRES 0x2000 #define SECFLG$M_PERM 0x4000 #define SECFLG$M_SYSGBL 0x8000 #define SECFLG$M_PFNMAP 0x10000 #define SECFLG$M_EXPREG 0x20000 #define SECFLG$M_PROTECT 0x40000 #define SECFLG$M_PAGFIL 0x80000 #define SECFLG$M_EXECUTE 0x100000 #define SECFLG$M_NOPROTCHK 0x200000 #define SECFLG$M_NO_OVERMAP 0x400000 #define SECFLG$M_INPROG 0x800000 #define SECFLG$M_PARANOID 0x1000000 #define SECFLG$M_GRANHINT 0x2000000 #define SECFLG$M_MRES_ALLOC 0x4000000 #define SECFLG$M_RAD_HINT 0x8000000 #ifdef __NEW_STARLET typedef struct _secdef_flags { __union { unsigned short int secflg$w_saved_flags; /* FLAGS SAVED IN SECTION TABLE ENTRY */ unsigned int secflg$l_flags; /* VARIOUS CONTROL FLAGS IN LOW WORD */ __struct { unsigned secflg$v_gbl : 1; /* GLOBAL SECTION */ unsigned secflg$v_crf : 1; /* COPY ON REFERENCE */ unsigned secflg$v_dzro : 1; /* DEMAND ZERO */ unsigned secflg$v_wrt : 1; /* WRITABLE */ unsigned secflg$v_shmgs : 1; /* SHARED MEMORY GLOBAL SECTION */ unsigned secflg$v_args64 : 1; /* Arguments passed as quads */ unsigned secflg$v_wrtmod : 2; /* WRITE ACCESS MODE FOR SECTION */ unsigned secflg$v_amod : 2; /* ACCESS MODE OF SECTION */ unsigned secflg$v_uncached : 1; /* PFN-map I/O space uncached. */ unsigned secflg$v_read_only_shpt : 1; /* Shared page tables map section read-only */ unsigned secflg$v_shared_pts : 1; /* Section is a shared PT section */ unsigned secflg$v_mres : 1; /* MEMORY RESIDENT SECTION */ unsigned secflg$v_perm : 1; /* PERMANENT SECTION */ unsigned secflg$v_sysgbl : 1; /* 1 = SYSTEM GLOBAL, 0 = GROUP GLOBAL */ /* */ /* ***** THE FOLLOWING FLAGS ARE INDICATORS FOR PRIVATE AND GLOBAL SECTION */ /* ***** SYSTEM SERVICE REQUESTS AND ARE NOT STORED IN THE FLAGS LONGWORD */ /* ***** FIELD. */ /* */ unsigned secflg$v_pfnmap : 1; /* MAP TO SPECIFIC PFN'S */ unsigned secflg$v_expreg : 1; /* MAP INTO FIRST FREE ADDRESS SPACE */ unsigned secflg$v_protect : 1; /* CHECK WRITE ACCESS MODE (WRTMOD) */ unsigned secflg$v_pagfil : 1; /* GLOBAL SECTION HAS PAGE FILE BACKING STORE */ unsigned secflg$v_execute : 1; /* CHECK FOR EXECUTE ACCESS */ unsigned secflg$v_noprotchk : 1; /* INHIBIT PROTECTION CHECK */ unsigned secflg$v_no_overmap : 1; /* DON'T OVERMAP ADDRESS SPACE */ unsigned secflg$v_inprog : 1; /* Section creation in progress */ unsigned secflg$v_paranoid : 1; /* Go into paranoia mode */ unsigned secflg$v_granhint : 1; /* Allow enhanced GH regions */ unsigned secflg$v_mres_alloc : 1; /* Allocate memory resident pages during create */ unsigned secflg$v_rad_hint : 1; /* Allocate pages based on RAD hint */ unsigned secflg$v_fill_19_ : 4; } secflg$r_flags_bits; } secflg$r_flags_overlay; } SECDEF_FLAGS; #if !defined(__VAXC) #define secflg$w_saved_flags secflg$r_flags_overlay.secflg$w_saved_flags #define secflg$l_flags secflg$r_flags_overlay.secflg$l_flags #define secflg$v_gbl secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_gbl #define secflg$v_crf secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_crf #define secflg$v_dzro secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_dzro #define secflg$v_wrt secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_wrt #define secflg$v_shmgs secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_shmgs #define secflg$v_args64 secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_args64 #define secflg$v_wrtmod secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_wrtmod #define secflg$v_amod secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_amod #define secflg$v_uncached secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_uncached #define secflg$v_read_only_shpt secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_read_only_shpt #define secflg$v_shared_pts secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_shared_pts #define secflg$v_mres secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_mres #define secflg$v_perm secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_perm #define secflg$v_sysgbl secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_sysgbl #define secflg$v_pfnmap secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_pfnmap #define secflg$v_expreg secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_expreg #define secflg$v_protect secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_protect #define secflg$v_pagfil secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_pagfil #define secflg$v_execute secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_execute #define secflg$v_noprotchk secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_noprotchk #define secflg$v_no_overmap secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_no_overmap #define secflg$v_inprog secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_inprog #define secflg$v_paranoid secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_paranoid #define secflg$v_granhint secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_granhint #define secflg$v_mres_alloc secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_mres_alloc #define secflg$v_rad_hint secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_rad_hint #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct secdef_flags { __union { unsigned short int secflg$w_saved_flags; /* FLAGS SAVED IN SECTION TABLE ENTRY */ unsigned int secflg$l_flags; /* VARIOUS CONTROL FLAGS IN LOW WORD */ __struct { unsigned secflg$v_gbl : 1; /* GLOBAL SECTION */ unsigned secflg$v_crf : 1; /* COPY ON REFERENCE */ unsigned secflg$v_dzro : 1; /* DEMAND ZERO */ unsigned secflg$v_wrt : 1; /* WRITABLE */ unsigned secflg$v_shmgs : 1; /* SHARED MEMORY GLOBAL SECTION */ unsigned secflg$v_args64 : 1; /* Arguments passed as quads */ unsigned secflg$v_wrtmod : 2; /* WRITE ACCESS MODE FOR SECTION */ unsigned secflg$v_amod : 2; /* ACCESS MODE OF SECTION */ unsigned secflg$v_uncached : 1; /* PFN-map I/O space uncached. */ unsigned secflg$v_read_only_shpt : 1; /* Shared page tables map section read-only */ unsigned secflg$v_shared_pts : 1; /* Section is a shared PT section */ unsigned secflg$v_mres : 1; /* MEMORY RESIDENT SECTION */ unsigned secflg$v_perm : 1; /* PERMANENT SECTION */ unsigned secflg$v_sysgbl : 1; /* 1 = SYSTEM GLOBAL, 0 = GROUP GLOBAL */ /* */ /* ***** THE FOLLOWING FLAGS ARE INDICATORS FOR PRIVATE AND GLOBAL SECTION */ /* ***** SYSTEM SERVICE REQUESTS AND ARE NOT STORED IN THE FLAGS LONGWORD */ /* ***** FIELD. */ /* */ unsigned secflg$v_pfnmap : 1; /* MAP TO SPECIFIC PFN'S */ unsigned secflg$v_expreg : 1; /* MAP INTO FIRST FREE ADDRESS SPACE */ unsigned secflg$v_protect : 1; /* CHECK WRITE ACCESS MODE (WRTMOD) */ unsigned secflg$v_pagfil : 1; /* GLOBAL SECTION HAS PAGE FILE BACKING STORE */ unsigned secflg$v_execute : 1; /* CHECK FOR EXECUTE ACCESS */ unsigned secflg$v_noprotchk : 1; /* INHIBIT PROTECTION CHECK */ unsigned secflg$v_no_overmap : 1; /* DON'T OVERMAP ADDRESS SPACE */ unsigned secflg$v_inprog : 1; /* Section creation in progress */ unsigned secflg$v_paranoid : 1; /* Go into paranoia mode */ unsigned secflg$v_granhint : 1; /* Allow enhanced GH regions */ unsigned secflg$v_mres_alloc : 1; /* Allocate memory resident pages during create */ unsigned secflg$v_rad_hint : 1; /* Allocate pages based on RAD hint */ unsigned secflg$v_fill_19_ : 4; } secflg$r_flags_bits; } secflg$r_flags_overlay; } ; #if !defined(__VAXC) #define secflg$w_saved_flags secflg$r_flags_overlay.secflg$w_saved_flags #define secflg$l_flags secflg$r_flags_overlay.secflg$l_flags #define secflg$v_gbl secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_gbl #define secflg$v_crf secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_crf #define secflg$v_dzro secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_dzro #define secflg$v_wrt secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_wrt #define secflg$v_shmgs secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_shmgs #define secflg$v_args64 secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_args64 #define secflg$v_wrtmod secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_wrtmod #define secflg$v_amod secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_amod #define secflg$v_uncached secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_uncached #define secflg$v_read_only_shpt secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_read_only_shpt #define secflg$v_shared_pts secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_shared_pts #define secflg$v_mres secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_mres #define secflg$v_perm secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_perm #define secflg$v_sysgbl secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_sysgbl #define secflg$v_pfnmap secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_pfnmap #define secflg$v_expreg secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_expreg #define secflg$v_protect secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_protect #define secflg$v_pagfil secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_pagfil #define secflg$v_execute secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_execute #define secflg$v_noprotchk secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_noprotchk #define secflg$v_no_overmap secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_no_overmap #define secflg$v_inprog secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_inprog #define secflg$v_paranoid secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_paranoid #define secflg$v_granhint secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_granhint #define secflg$v_mres_alloc secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_mres_alloc #define secflg$v_rad_hint secflg$r_flags_overlay.secflg$r_flags_bits.secflg$v_rad_hint #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define SEC$K_MATALL 0 /* MATCH ALWAYS, USE GLOBAL SECTION */ #define SEC$K_MATEQU 1 /* MATCH IF ISD$L_IDENT EQU GBL ID */ #define SEC$K_MATLEQ 2 /* MATCH IF ISD$L_IDENT LEQ GBL ID */ #ifdef __NEW_STARLET typedef struct _secdef1 { char secdef$$_fill_6 [25]; unsigned char sec$b_amod; /*ACCESS MODE OF SECTION */ /*+ */ /* MATCH CONTROL VIELD VALUES */ /*- */ /* BASE OF ZERO , INCR 1 */ } SECDEF1; #else /* __OLD_STARLET */ struct secdef1 { char secdef$$_fill_6 [25]; unsigned char sec$b_amod; /*ACCESS MODE OF SECTION */ /*+ */ /* MATCH CONTROL VIELD VALUES */ /*- */ /* BASE OF ZERO , INCR 1 */ } ; #endif /* #ifdef __NEW_STARLET */ /* */ /* Definitions for $GETSECI service */ /* */ #define SECI$_CHAIN 1 /* Chained item block */ #define SECI$_GSMODE 2 /* Access mode of section */ #define SECI$_GSFLAGS 3 /* Flags */ #define SECI$_GSNAME 4 /* Global section name */ #define SECI$_GSIDENT 5 /* Global section ident */ #define SECI$_GSRELPAG 6 /* Relative page number */ /* */ /* Definitions for $UPDEC(W) AND $UPDSEC_64(W) system services */ /* */ #define UPDFLG$M_WRT_MODIFIED 0x1 #ifdef __NEW_STARLET typedef struct _updsec_flags { __union { unsigned int updflg$l_flags; /* Flags */ __struct { unsigned updflg$v_wrt_modified : 1; /* Write pages only if modified */ unsigned updflg$v_fill_20_ : 7; } updflg$r_flags_bits; } updflg$r_flags_overlay; } UPDSEC_FLAGS; #if !defined(__VAXC) #define updflg$l_flags updflg$r_flags_overlay.updflg$l_flags #define updflg$v_wrt_modified updflg$r_flags_overlay.updflg$r_flags_bits.updflg$v_wrt_modified #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ struct updsec_flags { __union { unsigned int updflg$l_flags; /* Flags */ __struct { unsigned updflg$v_wrt_modified : 1; /* Write pages only if modified */ unsigned updflg$v_fill_20_ : 7; } updflg$r_flags_bits; } updflg$r_flags_overlay; } ; #if !defined(__VAXC) #define updflg$l_flags updflg$r_flags_overlay.updflg$l_flags #define updflg$v_wrt_modified updflg$r_flags_overlay.updflg$r_flags_bits.updflg$v_wrt_modified #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 /* __SECDEF_LOADED */