ks_update(9e) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

ks_update(9e)

ks_update(9E)                 Driver Entry Points                ks_update(9E)



NAME
       ks_update - dynamically update kstats

SYNOPSIS
       #include <sys/types.h>
       #include <sys/kstat.h>
       #include <sys/ddi.h>
       #include <sys/sunddi.h>

       int prefix_ks_update(kstat_t *ksp, int rw);

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI)

PARAMETERS
       ksp    Pointer to a kstat(9S) structure.


       rw     Read/Write flag. Possible values are

              KSTAT_READ     Update   kstat   structure  statistics  from  the
                             driver.


              KSTAT_WRITE    Update driver statistics from  the  kstat  struc‐
                             ture.



DESCRIPTION
       The  kstat  mechanism  allows  for  an optional ks_update() function to
       update kstat data. This is useful  for  drivers  where  the  underlying
       device  keeps  cheap  hardware statistics, but extraction is expensive.
       Instead of constantly keeping the kstat data section up  to  date,  the
       driver can supply a ks_update() function which updates the kstat's data
       section on demand. To take advantage of this feature, set the ks_update
       field  before  calling  the kstat_install() function. For more informa‐
       tion, see the kstat_install(9F) man page.


       The ks_update() function must have the following structure:



         static int
         xx_kstat_update(kstat_t *ksp, int rw)
         {
              if (rw == KSTAT_WRITE) {
                   /* update the native stats from ksp->ks_data */
                   /* return EACCES if you don't support this */
              } else {
                   /* update ksp->ks_data from the native stats */
              }
              return (0);
         }



       In general, the ks_update() routine may need to refer to  provider-pri‐
       vate  data;  for  example,  it may need a pointer to the provider's raw
       statistics. The ks_private field is available for this purpose. Its use
       is entirely at the provider's discretion.


       No  kstat  locking  should  be done inside the ks_update() routine. The
       caller will already be holding the kstat's  ks_lock (to ensure  consis‐
       tent data) and will prevent the kstat from being removed.

RETURN VALUES
       ks_update() should return

       0         For success.


       EACCES    If KSTAT_WRITE is not allowed.


       EIO       For any other error.


SEE ALSO
       kstat_create(9F),   kstat_install(9F),   kstat(9S),  kstat2_create(9F),
       kstat2_install(9F), kstat2(9S)


       Writing Device Drivers in Oracle Solaris 11.4

NOTES
       The ks_update() function is deprecated. Use the kstat2_create() to cre‐
       ate  a  kstat and set the ks2_update field to point to the update func‐
       tion. For more information, see the kstat2_create(9F) man page.



Oracle Solaris 11.4               19 Aug 2016                    ks_update(9E)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3