Library /sys$common/syshlp/helplib.hlb  —  System Services, $SETPRV
    Enables or disables specified privileges for the calling process.

    Format

      SYS$SETPRV  [enbflg] ,[prvadr] ,[prmflg] ,[prvprv]

    C Prototype

      int sys$setprv  (char enbflg, struct _generic_64 *prvadr, char

                      prmflg, struct _generic_64 *prvprv);

1  –  Arguments

 enbflg

    OpenVMS usage:boolean
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Indicator specifying whether the specified privileges are to be
    enabled or disabled. The enbflg argument is a longword value.
    The value 1 indicates that the privileges specified in the prvadr
    argument are to be enabled. The value 0 (the default) indicates
    that the privileges are to be disabled.

 prvadr

    OpenVMS usage:mask_privileges
    type:         quadword (unsigned)
    access:       read only
    mechanism:    by reference
    Privileges to be enabled or disabled for the calling process. The
    prvadr argument is the address of a quadword bit vector wherein
    each bit corresponds to a privilege that is to be enabled or
    disabled.

    Each bit has a symbolic name. The $PRVDEF macro defines these
    names. You form the bit vector by specifying the symbolic
    name of each desired privilege in a logical OR operation. The
    following table provides the symbolic name and description of
    each privilege:

    User
    Privilege   Symbolic Name      Description

    ACNT        PRV$M_ACNT         Create processes for which no
                                   accounting is done
    ALLSPOOL    PRV$M_ALLSPOOL     Allocate a spooled device
    ALTPRI      PRV$M_ALTPRI       Set (alter) any process priority
    AUDIT       PRV$V_AUDIT        Generate audit records
    BUGCHK      PRV$M_BUGCHK       Make bugcheck error log entries
    BYPASS      PRV$M_BYPASS       Bypass all protection
    CMEXEC      PRV$M_CMEXEC       Change mode to executive
    CMKRNL      PRV$M_CMKRNL       Change mode to kernel
    DIAGNOSE    PRV$M_DIAGNOSE     Can diagnose devices
    DOWNGRADE   PRV$V_DOWNGRADE    Can downgrade classification
    EXQUOTA     PRV$M_EXQUOTA      Can exceed quotas
    GROUP       PRV$M_GROUP        Group process control
    GRPNAM      PRV$M_GRPNAM       Place name in group logical name
                                   table
    GRPPRV      PRV$V_GRPPRV       Group access by means of system
                                   protection field
    IMPERSONATE PRV$M_             Create detached processes under
                IMPERSONATE        another UIC
    IMPORT      PRV$V_IMPORT       Mount a nonlabeled tape volume
    LOG_IO      PRV$M_LOG_IO       Perform logical I/O operations
    MOUNT       PRV$M_MOUNT        Issue mount volume QIO
    NETMBX      PRV$M_NETMBX       Create a network device
    OPER        PRV$M_OPER         All operator privileges
    PFNMAP      PRV$M_PFNMAP       Map to section by physical page
                                   frame number
    PHY_IO      PRV$M_PHY_IO       Perform physical I/O operations
    PRMCEB      PRV$M_PRMCEB       Create permanent common event flag
                                   clusters
    PRMGBL      PRV$M_PRMGBL       Create permanent global sections
    PRMMBX      PRV$M_PRMMBX       Create permanent mailboxes
    PSWAPM      PRV$M_PSWAPM       Change process swap mode
    READALL     PRV$V_READALL      Possess read access to everything
    SECURITY    PRV$V_SECURITY     Can perform security functions
    SETPRV      PRV$M_SETPRV       Set any process privileges
    SHARE       PRV$M_SHARE        Can assign a channel to a
                                   nonshared device
    SHMEM       PRV$M_SHMEM        Allocate structures in memory
                                   shared by multiple processors
    SYSGBL      PRV$M_SYSGBL       Create system global sections
    SYSLCK      PRV$M_SYSLCK       Queue systemwide locks
    SYSNAM      PRV$M_SYSNAM       Place name in system logical name
                                   table
    SYSPRV      PRV$M_SYSPRV       Access files and other resources
                                   as if you have a system UIC
    TMPMBX      PRV$M_TMPMBX       Create temporary mailboxes
    UPGRADE     PRV$V_UPGRADE      Can upgrade classification
    VOLPRO      PRV$M_VOLPRO       Override volume protection
    WORLD       PRV$M_WORLD        World process control

    If you do not specify prvadr or assign it the value 0, the
    privileges are not altered.

 prmflg

    OpenVMS usage:boolean
    type:         longword (unsigned)
    access:       read only
    mechanism:    by value
    Indicator specifying whether the privileges are to be affected
    permanently or temporarily. The prmflg argument is a longword
    value. The value 1 specifies that the privileges are to be
    affected permanently, that is, until you change them again
    by using $SETPRV or until the process is deleted. The value 0
    (the default) specifies that the privileges are to be affected
    temporarily, that is, until the current image exits (at which
    time the permanently enabled privileges of the process will be
    restored).

    Setting the prmflg argument to nonzero changes privilege bits in
    both the CURPRIV mask and the PROCPRIV mask.

 prvprv

    OpenVMS usage:mask_privileges
    type:         quadword (unsigned)
    access:       write only
    mechanism:    by reference
    Privileges previously possessed by the calling process. The
    prvprv argument is the address of a quadword bit vector wherein
    each bit corresponds to a privilege that was previously either
    enabled or disabled. If you do not specify prvprv or assign it
    the value 0, the previous privilege mask is not returned.
Close Help