MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Driver Entry Points                                 ksupdate(9E)



NAME
     ksupdate - dynamically update kstats

SYNOPSIS
     #include 
     #include 
     #include 
     #include 



     int prefixksupdate(kstatt *ksp, int rw);


INTERFACE LEVEL
     Solaris DI specific (Solaris DI)

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


     rw      Read/Write flag. Possible values are

             KSTATREAD      Update  kstat  structure  statistics
                             from the driver.


             KSTATWRITE     Update driver  statistics  from  the
                             kstat structure.



DESCRIPTION
     The kstat mechanism allows for an optional ksupdate() func-
     tion 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
     ksupdate()  function which updates the kstat's data section
     on demand. To  take  advantage  of  this  feature,  set  the
     ksupdate field before calling kstatinstall(9F).


     The ksupdate() function must have the following structure:

       static int
       xxkstatupdate(kstatt *ksp, int rw)
       {
            if (rw == KSTATWRITE) {
                 /* update the native stats from ksp->ksdata */
                 /* return EACES if you don't support this */
            } else {



SunOS 5.11          Last change: 27 May 1994                    1






Driver Entry Points                                 ksupdate(9E)



                 /* update ksp->ksdata from the native stats */
            }
            return (0);
       }



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


     No kstat locking should be done inside the ksupdate()  rou-
     tine.   The  caller  will  already  be  holding  the kstat's
     kslock (to ensure consistent data)  and  will  prevent  the
     kstat from being removed.

RETURN VALUES
     ksupdate() should return

     0          For success.


     EACES     If KSTATWRITE is not allowed.


     EIO        For any other error.


SEE ALSO
     kstatcreate(9F), kstatinstall(9F), kstat(9S)


     Writing Device Drivers



















SunOS 5.11          Last change: 27 May 1994                    2



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™