drv_getparm(9F)




NAME

     drv_getparm - retrieve kernel state information


SYNOPSIS

     #include <sys/ddi.h>

     int drv_getparm(unsigned int parm, void *value_p);


INTERFACE LEVEL

     Architecture independent level 1 (DDI/DKI).


PARAMETERS

      parm The kernel parameter to be obtained.  Possible  values
           are:

     LBOLT Read the value of lbolt. lbolt is a  clock_t  that  is
           unconditionally incremented by one at each clock tick.
           No special treatment is applied when this value  over-
           flows  the  maximum  value of the signed integral type
           clock_t. When this occurs, its value will be negative,
           and  its  magnitude  will be decreasing until it again
           passes zero. It can therefore not be  relied  upon  to
           provide  an  indication  of  the  amount  of time that
           passes since the last system reboot, nor should it  be
           used  to mark an absolute time in the system. Only the
           difference between two measurements of lbolt is signi-
           ficant.  It is used in this way inside the system ker-
           nel for timing purposes.

     PPGRP Read the process group  identification  number.   This
           number  determines  which  processes  should receive a
           HANGUP or  BREAK signal when detected by a driver.

     UPROCP
           Read the process table token value.

     PPID  Read process identification number.

     PSID  Read process session identification number.

     TIME  Read time in seconds.

     UCRED Return a pointer to the caller's credential structure.

      value_p
           A pointer to the data space in which the value of  the
           parameter is to be copied.


DESCRIPTION

     Since the release of the Solaris 2.6 operating  environment,
     the    drv_getparm()   function   has   been   replaced   by
     ddi_get_lbolt(9F), ddi_get_time(9F), and ddi_get_pid(9F).
     drv_getparm() function verifies that  parm corresponds to  a
     kernel  parameter  that  may be read.  If the value of  parm
     does not correspond to  a  parameter  or  corresponds  to  a
     parameter that may not be read,  -1 is returned.  Otherwise,
     the value of the parameter  is  stored  in  the  data  space
     pointed to by  value_p.

     drv_getparm() does not explicitly check to see  whether  the
     device  has  the  appropriate  context  when the function is
     called and the function does not check for correct alignment
     in the data space pointed to by value_p. It is the responsi-
     bility of the driver writer to use this function  only  when
     it  is  appropriate  to  do so and to correctly  declare the
     data space needed by the driver.


RETURN VALUES

     drv_getparm() returns 0 to indicate success,  -1 to indicate
     failure.   The  value  stored  in  the  space  pointed to by
     value_p is the value of the parameter if 0 is  returned,  or
     undefined  if  -1 is returned. -1 is returned if you specify
     a value other than  LBOLT, PPGRP, PPID,  PSID, TIME,  UCRED,
     or   UPROCP.   Always  check the return code when using this
     function.


CONTEXT

     drv_getparm() can be called  from  user  context  only  when
     using PPGRP, PPID, PSID, UCRED, or UPROCP.  It can be called
     from user or interrupt context when using the LBOLT or  TIME
     argument.


SEE ALSO

     ddi_get_lbolt(9F),    ddi_get_pid(9F),     ddi_get_time(9F),
     buf(9S)

     Writing Device Drivers


Man(1) output converted with man2html