drv_priv(D3)

drv_priv - determine whether credentials are privileged

As shipped in IRIX 6.5.30. Last changed in IRIX 6.5.15.

NAME
     drv_priv - determine whether credentials are privileged

SYNOPSIS
     int drv_priv(cred_t *crp);

   Arguments
     crp       Pointer to the user credential structure.

DESCRIPTION
     The drv_priv function determines whether the credentials specified by the
     credential structure pointed to by crp identify a privileged process.

   Return Values
     drv_prv returns 0 if the specified credentials identify a privileged
     process or contain CAP_DEVICE_MGT capability, otherwise, EPERM returned.

USAGE
     This function should only be used when file access modes and special
     minor device numbers are insufficient to provide the necessary protection
     for the driver operation being performed.  Calls to drv_priv should
     replace all calls to suser and any explicit checks for effective user ID
     equal to zero in driver code.

     A credential structure pointer is passed into various driver entry point
     functions [open(D2), close(D2), read(D2), write(D2), and ioctl(D2)] and
     can also be obtained by calling drv_getparm(D3) from base level driver
     code.

   Level
     Base or Interrupt.

   Synchronization Constraints
     Does not sleep.

     Driver-defined basic locks, read/write locks, and sleep locks may be held
     across calls to this function.

   Warnings
     The only valid use for a credential structure pointer is as an argument
     to drv_priv.  The contents of a credential structure are not defined by
     the DDI/DKI and a driver may not examine the contents of the structure
     directly.