drv_priv(D3)drv_priv(D3)NAMEdrv_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.
Page 1