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 dri‐
                             ver.


              KSTAT_WRITE    Update driver statistics from  the  kstat  struc‐
                             ture.



DESCRIPTION
       The  kstat mechanism allows for an optional ks_update() function to up‐
       date 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 be‐
       fore calling the kstat_install() function. For  more  information,  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            9 September 2024                  ks_update(9E)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3