/********************************************************************************************************************************/ /* 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 $PRVDEF ***/ #ifndef __PRVDEF_LOADED #define __PRVDEF_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 /* */ /* PRIVILEGE BIT DEFINITIONS */ /* */ #define PRV$M_CMKRNL 0x1 #define PRV$M_CMEXEC 0x2 #define PRV$M_SYSNAM 0x4 #define PRV$M_GRPNAM 0x8 #define PRV$M_ALLSPOOL 0x10 #define PRV$M_IMPERSONATE 0x20 #define PRV$M_DIAGNOSE 0x40 #define PRV$M_LOG_IO 0x80 #define PRV$M_GROUP 0x100 #define PRV$M_NOACNT 0x200 #define PRV$M_PRMCEB 0x400 #define PRV$M_PRMMBX 0x800 #define PRV$M_PSWAPM 0x1000 #define PRV$M_SETPRI 0x2000 #define PRV$M_SETPRV 0x4000 #define PRV$M_TMPMBX 0x8000 #define PRV$M_WORLD 0x10000 #define PRV$M_MOUNT 0x20000 #define PRV$M_OPER 0x40000 #define PRV$M_EXQUOTA 0x80000 #define PRV$M_NETMBX 0x100000 #define PRV$M_VOLPRO 0x200000 #define PRV$M_PHY_IO 0x400000 #define PRV$M_BUGCHK 0x800000 #define PRV$M_PRMGBL 0x1000000 #define PRV$M_SYSGBL 0x2000000 #define PRV$M_PFNMAP 0x4000000 #define PRV$M_SHMEM 0x8000000 #define PRV$M_SYSPRV 0x10000000 #define PRV$M_BYPASS 0x20000000 #define PRV$M_SYSLCK 0x40000000 #define PRV$M_SHARE 0x80000000 #define PRV$M_UPGRADE 0x100000000 #define PRV$M_DOWNGRADE 0x200000000 #define PRV$M_GRPPRV 0x400000000 #define PRV$M_READALL 0x800000000 #define PRV$M_IMPORT 0x1000000000 #define PRV$M_AUDIT 0x2000000000 #define PRV$M_SECURITY 0x4000000000 #define PRV$K_NUMBER_OF_PRIVS 39 /* Total number of privilege bits. */ #define PRV$M_ACNT 0x200 #define PRV$M_ALTPRI 0x2000 #define PRV$M_DETACH 0x20 #ifdef __NEW_STARLET typedef union _prvdef { __struct { unsigned prv$v_cmkrnl : 1; /* MAY CHANGE MODE TO KERNEL */ unsigned prv$v_cmexec : 1; /* MAY CHANGE MODE TO EXEC */ unsigned prv$v_sysnam : 1; /* MAY INSERT IN SYSTEM LOGICAL NAME TABLE */ unsigned prv$v_grpnam : 1; /* MAY INSERT IN GROUP LOGICAL NAME TABLE */ unsigned prv$v_allspool : 1; /* MAY ALLOCATE SPOOLED DEVICE */ unsigned prv$v_impersonate : 1; /* Replacement name for DETACH (synonyms) */ unsigned prv$v_diagnose : 1; /* MAY DIAGNOSE DEVICES */ unsigned prv$v_log_io : 1; /* MAY DO LOGICAL I/O */ unsigned prv$v_group : 1; /* MAY AFFECT OTHER PROCESSES IN SAME GROUP */ unsigned prv$v_noacnt : 1; /* MAY SUPPRESS ACCOUNTING MESSAGE */ unsigned prv$v_prmceb : 1; /* MAY CREATE PERMANENT COMMON EVENT CLUSTERS */ unsigned prv$v_prmmbx : 1; /* MAY CREATE PERMANENT MAILBOX */ unsigned prv$v_pswapm : 1; /* MAY CHANGE PROCESS SWAP MODE */ unsigned prv$v_setpri : 1; /* MAY SET ANY PRIORITY VALUE */ unsigned prv$v_setprv : 1; /* MAY SET ANY PRIVILEGE BIT */ unsigned prv$v_tmpmbx : 1; /* MAY CREATE TEMPORARY MAILBOX */ unsigned prv$v_world : 1; /* MAY AFFECT OTHER PROCESSES IN THE WORLD */ unsigned prv$v_mount : 1; /* MAY EXECUTE MOUNT ACP FUNCTIONS */ unsigned prv$v_oper : 1; /* OPERATOR PRIVILEGE */ unsigned prv$v_exquota : 1; /* MAY EXCEED QUOTAS */ unsigned prv$v_netmbx : 1; /* MAY CREATE NETWORK DEVICE */ unsigned prv$v_volpro : 1; /* MAY OVERRIDE VOLUME PROTECTION */ unsigned prv$v_phy_io : 1; /* MAY DO PHYSICAL I/O */ unsigned prv$v_bugchk : 1; /* MAY MAKE BUG CHECK ERROR LOG ENTRIES */ unsigned prv$v_prmgbl : 1; /* MAY CREATE PERMANENT GLOBAL SECTIONS */ unsigned prv$v_sysgbl : 1; /* MAY CREATE SYSTEM WIDE GLOBAL SECTIONS */ unsigned prv$v_pfnmap : 1; /* MAY MAP TO SECTION BY PFN */ unsigned prv$v_shmem : 1; /* MAY ALLOCATE STRUCTURES IN SHARED MEMORY */ unsigned prv$v_sysprv : 1; /* ELIGIBLE FOR SYSTEM PROTECTION FIELD */ unsigned prv$v_bypass : 1; /* MAY BYPASS UIC BASED PROTECTION */ unsigned prv$v_syslck : 1; /* MAY CREATE SYSTEM WIDE LOCKS */ unsigned prv$v_share : 1; /* MAY ASSIGN CHANNEL TO NON-SHARED DEVICE */ unsigned prv$v_upgrade : 1; /* May upgrade object integrity */ unsigned prv$v_downgrade : 1; /* May downgrade object secrecy */ unsigned prv$v_grpprv : 1; /* May access group objects via system protection field */ unsigned prv$v_readall : 1; /* May read any object */ unsigned prv$v_import : 1; /* May set classification for unlabeled object */ unsigned prv$v_audit : 1; /* May direct audit to system security audit log */ unsigned prv$v_security : 1; /* May perform security functions */ /* XXXXXX bitfield mask; /* Reserved for SEVMS */ unsigned prv$v_fill_1 : 25; } prv$r_prvdef_bits0; __struct { unsigned prv$v_fill_2 : 9; unsigned prv$v_acnt : 1; /* MAY SUPPRESS ACCOUNTING MESSAGES (NOACNT) */ unsigned prv$v_fill_3 : 3; unsigned prv$v_altpri : 1; /* MAY SET ANY PRIORITY VALE (SETPRI) */ unsigned prv$v_fill_72_ : 2; } prv$r_prvdef_bits1; __struct { unsigned int prv$l_l1_bits; /* Bits in first longword */ unsigned int prv$l_l2_bits; /* Bits in second longword */ } prv$r_prvdef_bits2; __struct { unsigned prv$v_fill_4 : 5; /* Offset to obsolete DETACH bitfield */ unsigned prv$v_detach : 1; /* MAY CREATE DETACHED PROCESSES */ unsigned prv$v_fill_73_ : 2; } prv$r_prvdef_bits3; } PRVDEF; #if !defined(__VAXC) #define prv$v_cmkrnl prv$r_prvdef_bits0.prv$v_cmkrnl #define prv$v_cmexec prv$r_prvdef_bits0.prv$v_cmexec #define prv$v_sysnam prv$r_prvdef_bits0.prv$v_sysnam #define prv$v_grpnam prv$r_prvdef_bits0.prv$v_grpnam #define prv$v_allspool prv$r_prvdef_bits0.prv$v_allspool #define prv$v_impersonate prv$r_prvdef_bits0.prv$v_impersonate #define prv$v_diagnose prv$r_prvdef_bits0.prv$v_diagnose #define prv$v_log_io prv$r_prvdef_bits0.prv$v_log_io #define prv$v_group prv$r_prvdef_bits0.prv$v_group #define prv$v_noacnt prv$r_prvdef_bits0.prv$v_noacnt #define prv$v_prmceb prv$r_prvdef_bits0.prv$v_prmceb #define prv$v_prmmbx prv$r_prvdef_bits0.prv$v_prmmbx #define prv$v_pswapm prv$r_prvdef_bits0.prv$v_pswapm #define prv$v_setpri prv$r_prvdef_bits0.prv$v_setpri #define prv$v_setprv prv$r_prvdef_bits0.prv$v_setprv #define prv$v_tmpmbx prv$r_prvdef_bits0.prv$v_tmpmbx #define prv$v_world prv$r_prvdef_bits0.prv$v_world #define prv$v_mount prv$r_prvdef_bits0.prv$v_mount #define prv$v_oper prv$r_prvdef_bits0.prv$v_oper #define prv$v_exquota prv$r_prvdef_bits0.prv$v_exquota #define prv$v_netmbx prv$r_prvdef_bits0.prv$v_netmbx #define prv$v_volpro prv$r_prvdef_bits0.prv$v_volpro #define prv$v_phy_io prv$r_prvdef_bits0.prv$v_phy_io #define prv$v_bugchk prv$r_prvdef_bits0.prv$v_bugchk #define prv$v_prmgbl prv$r_prvdef_bits0.prv$v_prmgbl #define prv$v_sysgbl prv$r_prvdef_bits0.prv$v_sysgbl #define prv$v_pfnmap prv$r_prvdef_bits0.prv$v_pfnmap #define prv$v_shmem prv$r_prvdef_bits0.prv$v_shmem #define prv$v_sysprv prv$r_prvdef_bits0.prv$v_sysprv #define prv$v_bypass prv$r_prvdef_bits0.prv$v_bypass #define prv$v_syslck prv$r_prvdef_bits0.prv$v_syslck #define prv$v_share prv$r_prvdef_bits0.prv$v_share #define prv$v_upgrade prv$r_prvdef_bits0.prv$v_upgrade #define prv$v_downgrade prv$r_prvdef_bits0.prv$v_downgrade #define prv$v_grpprv prv$r_prvdef_bits0.prv$v_grpprv #define prv$v_readall prv$r_prvdef_bits0.prv$v_readall #define prv$v_import prv$r_prvdef_bits0.prv$v_import #define prv$v_audit prv$r_prvdef_bits0.prv$v_audit #define prv$v_security prv$r_prvdef_bits0.prv$v_security #define prv$v_acnt prv$r_prvdef_bits1.prv$v_acnt #define prv$v_altpri prv$r_prvdef_bits1.prv$v_altpri #define prv$l_l1_bits prv$r_prvdef_bits2.prv$l_l1_bits #define prv$l_l2_bits prv$r_prvdef_bits2.prv$l_l2_bits #define prv$v_detach prv$r_prvdef_bits3.prv$v_detach #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ union prvdef { __struct { unsigned prv$v_cmkrnl : 1; /* MAY CHANGE MODE TO KERNEL */ unsigned prv$v_cmexec : 1; /* MAY CHANGE MODE TO EXEC */ unsigned prv$v_sysnam : 1; /* MAY INSERT IN SYSTEM LOGICAL NAME TABLE */ unsigned prv$v_grpnam : 1; /* MAY INSERT IN GROUP LOGICAL NAME TABLE */ unsigned prv$v_allspool : 1; /* MAY ALLOCATE SPOOLED DEVICE */ unsigned prv$v_impersonate : 1; /* Replacement name for DETACH (synonyms) */ unsigned prv$v_diagnose : 1; /* MAY DIAGNOSE DEVICES */ unsigned prv$v_log_io : 1; /* MAY DO LOGICAL I/O */ unsigned prv$v_group : 1; /* MAY AFFECT OTHER PROCESSES IN SAME GROUP */ unsigned prv$v_noacnt : 1; /* MAY SUPPRESS ACCOUNTING MESSAGE */ unsigned prv$v_prmceb : 1; /* MAY CREATE PERMANENT COMMON EVENT CLUSTERS */ unsigned prv$v_prmmbx : 1; /* MAY CREATE PERMANENT MAILBOX */ unsigned prv$v_pswapm : 1; /* MAY CHANGE PROCESS SWAP MODE */ unsigned prv$v_setpri : 1; /* MAY SET ANY PRIORITY VALUE */ unsigned prv$v_setprv : 1; /* MAY SET ANY PRIVILEGE BIT */ unsigned prv$v_tmpmbx : 1; /* MAY CREATE TEMPORARY MAILBOX */ unsigned prv$v_world : 1; /* MAY AFFECT OTHER PROCESSES IN THE WORLD */ unsigned prv$v_mount : 1; /* MAY EXECUTE MOUNT ACP FUNCTIONS */ unsigned prv$v_oper : 1; /* OPERATOR PRIVILEGE */ unsigned prv$v_exquota : 1; /* MAY EXCEED QUOTAS */ unsigned prv$v_netmbx : 1; /* MAY CREATE NETWORK DEVICE */ unsigned prv$v_volpro : 1; /* MAY OVERRIDE VOLUME PROTECTION */ unsigned prv$v_phy_io : 1; /* MAY DO PHYSICAL I/O */ unsigned prv$v_bugchk : 1; /* MAY MAKE BUG CHECK ERROR LOG ENTRIES */ unsigned prv$v_prmgbl : 1; /* MAY CREATE PERMANENT GLOBAL SECTIONS */ unsigned prv$v_sysgbl : 1; /* MAY CREATE SYSTEM WIDE GLOBAL SECTIONS */ unsigned prv$v_pfnmap : 1; /* MAY MAP TO SECTION BY PFN */ unsigned prv$v_shmem : 1; /* MAY ALLOCATE STRUCTURES IN SHARED MEMORY */ unsigned prv$v_sysprv : 1; /* ELIGIBLE FOR SYSTEM PROTECTION FIELD */ unsigned prv$v_bypass : 1; /* MAY BYPASS UIC BASED PROTECTION */ unsigned prv$v_syslck : 1; /* MAY CREATE SYSTEM WIDE LOCKS */ unsigned prv$v_share : 1; /* MAY ASSIGN CHANNEL TO NON-SHARED DEVICE */ unsigned prv$v_upgrade : 1; /* May upgrade object integrity */ unsigned prv$v_downgrade : 1; /* May downgrade object secrecy */ unsigned prv$v_grpprv : 1; /* May access group objects via system protection field */ unsigned prv$v_readall : 1; /* May read any object */ unsigned prv$v_import : 1; /* May set classification for unlabeled object */ unsigned prv$v_audit : 1; /* May direct audit to system security audit log */ unsigned prv$v_security : 1; /* May perform security functions */ /* XXXXXX bitfield mask; /* Reserved for SEVMS */ unsigned prv$v_fill_1 : 25; } prv$r_prvdef_bits0; __struct { unsigned prv$v_fill_2 : 9; unsigned prv$v_acnt : 1; /* MAY SUPPRESS ACCOUNTING MESSAGES (NOACNT) */ unsigned prv$v_fill_3 : 3; unsigned prv$v_altpri : 1; /* MAY SET ANY PRIORITY VALE (SETPRI) */ unsigned prv$v_fill_72_ : 2; } prv$r_prvdef_bits1; __struct { unsigned int prv$l_l1_bits; /* Bits in first longword */ unsigned int prv$l_l2_bits; /* Bits in second longword */ } prv$r_prvdef_bits2; __struct { unsigned prv$v_fill_4 : 5; /* Offset to obsolete DETACH bitfield */ unsigned prv$v_detach : 1; /* MAY CREATE DETACHED PROCESSES */ unsigned prv$v_fill_73_ : 2; } prv$r_prvdef_bits3; } ; #if !defined(__VAXC) #define prv$v_cmkrnl prv$r_prvdef_bits0.prv$v_cmkrnl #define prv$v_cmexec prv$r_prvdef_bits0.prv$v_cmexec #define prv$v_sysnam prv$r_prvdef_bits0.prv$v_sysnam #define prv$v_grpnam prv$r_prvdef_bits0.prv$v_grpnam #define prv$v_allspool prv$r_prvdef_bits0.prv$v_allspool #define prv$v_impersonate prv$r_prvdef_bits0.prv$v_impersonate #define prv$v_diagnose prv$r_prvdef_bits0.prv$v_diagnose #define prv$v_log_io prv$r_prvdef_bits0.prv$v_log_io #define prv$v_group prv$r_prvdef_bits0.prv$v_group #define prv$v_noacnt prv$r_prvdef_bits0.prv$v_noacnt #define prv$v_prmceb prv$r_prvdef_bits0.prv$v_prmceb #define prv$v_prmmbx prv$r_prvdef_bits0.prv$v_prmmbx #define prv$v_pswapm prv$r_prvdef_bits0.prv$v_pswapm #define prv$v_setpri prv$r_prvdef_bits0.prv$v_setpri #define prv$v_setprv prv$r_prvdef_bits0.prv$v_setprv #define prv$v_tmpmbx prv$r_prvdef_bits0.prv$v_tmpmbx #define prv$v_world prv$r_prvdef_bits0.prv$v_world #define prv$v_mount prv$r_prvdef_bits0.prv$v_mount #define prv$v_oper prv$r_prvdef_bits0.prv$v_oper #define prv$v_exquota prv$r_prvdef_bits0.prv$v_exquota #define prv$v_netmbx prv$r_prvdef_bits0.prv$v_netmbx #define prv$v_volpro prv$r_prvdef_bits0.prv$v_volpro #define prv$v_phy_io prv$r_prvdef_bits0.prv$v_phy_io #define prv$v_bugchk prv$r_prvdef_bits0.prv$v_bugchk #define prv$v_prmgbl prv$r_prvdef_bits0.prv$v_prmgbl #define prv$v_sysgbl prv$r_prvdef_bits0.prv$v_sysgbl #define prv$v_pfnmap prv$r_prvdef_bits0.prv$v_pfnmap #define prv$v_shmem prv$r_prvdef_bits0.prv$v_shmem #define prv$v_sysprv prv$r_prvdef_bits0.prv$v_sysprv #define prv$v_bypass prv$r_prvdef_bits0.prv$v_bypass #define prv$v_syslck prv$r_prvdef_bits0.prv$v_syslck #define prv$v_share prv$r_prvdef_bits0.prv$v_share #define prv$v_upgrade prv$r_prvdef_bits0.prv$v_upgrade #define prv$v_downgrade prv$r_prvdef_bits0.prv$v_downgrade #define prv$v_grpprv prv$r_prvdef_bits0.prv$v_grpprv #define prv$v_readall prv$r_prvdef_bits0.prv$v_readall #define prv$v_import prv$r_prvdef_bits0.prv$v_import #define prv$v_audit prv$r_prvdef_bits0.prv$v_audit #define prv$v_security prv$r_prvdef_bits0.prv$v_security #define prv$v_acnt prv$r_prvdef_bits1.prv$v_acnt #define prv$v_altpri prv$r_prvdef_bits1.prv$v_altpri #define prv$l_l1_bits prv$r_prvdef_bits2.prv$l_l1_bits #define prv$l_l2_bits prv$r_prvdef_bits2.prv$l_l2_bits #define prv$v_detach prv$r_prvdef_bits3.prv$v_detach #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define PRV$M_SORTED 0x1 #define PRV$M_BRIEF 0x2 #define PRV$M_FILLED 0x4 #ifdef __NEW_STARLET typedef struct _prvdsp_bits { unsigned prv$v_sorted : 1; /* sort privilege list */ unsigned prv$v_brief : 1; /* display only privilege names */ unsigned prv$v_filled : 1; /* display names in columns */ unsigned prv$v_fill_74_ : 5; } PRVDSP_BITS; #else /* __OLD_STARLET */ struct prvdsp_bits { unsigned prv$v_sorted : 1; /* sort privilege list */ unsigned prv$v_brief : 1; /* display only privilege names */ unsigned prv$v_filled : 1; /* display names in columns */ unsigned prv$v_fill_74_ : 5; } ; #endif /* #ifdef __NEW_STARLET */ #define PRV$K_PRVMASK_WORKING 0 /* Working (Temporary) privs to be modified */ #define PRV$K_PRVMASK_PERMANENT 1 /* Permanent privs to be modified */ #define PRV$K_PRVMASK_IMAGE 2 /* Image privs to be modified */ #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 /* __PRVDEF_LOADED */