kstat man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

KSTAT(9S)							     KSTAT(9S)

NAME
       kstat - kernel statistics structure

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

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI)

DESCRIPTION
       Each  kernel statistic (kstat) exported by device drivers consists of a
       header section and a data section. The kstat structure  is  the	header
       portion of the statistic.

       A driver receives a pointer to a kstat structure from a successful call
       to kstat_create(9F). Drivers should never allocate a kstat structure in
       any other manner.

       After  allocation, the driver should perform any further initialization
       needed before calling kstat_install(9F) to actually export the kstat.

STRUCTURE MEMBERS
	 void	   *ks_data;		 /* kstat type-specif. data */
	 ulong_t   ks_ndata;		 /* # of type-specif. data
					      records */
	 ulong_t   ks_data_size;	 /* total size of kstat data
					    section */
	 int	   (*ks_update)(struct kstat *, int);
	 void	   *ks_private;		 /* arbitrary provider-private
					    data */
	 void	   *ks_lock;		 /* protects kstat's data */

       The members of the kstat structure available to examine	or  set	 by  a
       driver are as follows:

       ks_data
			Points	to the data portion of the kstat. Either allo‐
			cated by kstat_create(9F) for the drivers use,	or  by
			the driver if it is using virtual kstats.

       ks_ndata
			The  number  of data records in this kstat. Set by the
			ks_update(9E) routine.

       ks_data_size
			The amount of data pointed to by ks_data. Set  by  the
			ks_update(9E) routine.

       ks_update
			Pointer	 to  a routine that dynamically updates kstat.
			This is useful for drivers where the underlying device
			keeps  cheap hardware statistics, but where extraction
			is expensive. Instead of constantly keeping the	 kstat
			data  section  up  to  date,  the  driver can supply a
			ks_update(9E) function that  updates  the  kstat  data
			section	 on demand. To take advantage of this feature,
			set    the    ks_update	   field    before     calling
			kstat_install(9F).

       ks_private
			Is a private field for the driver's use. Often used in
			ks_update(9E).

       ks_lock
			Is a pointer to a  mutex  that	protects  this	kstat.
			kstat  data  sections  are optionally protected by the
			per-kstat  ks_lock.  If	 ks_lock  is  non-NULL,	 kstat
			clients	 (such	as  /dev/kstat) will acquire this lock
			for all of their operations on that kstat. It is up to
			the kstat provider to decide whether guaranteeing con‐
			sistent data to kstat clients is  sufficiently	impor‐
			tant to justify the locking cost.  Note, however, that
			most statistic updates already occur under one of  the
			provider's  mutexes.  If  the provider sets ks_lock to
			point to that mutex, then kstat data locking is	 free.
			ks_lock	 is really of type (kmutex_t*) and is declared
			as (void*) in the kstat header.	 That  way,  users  do
			not  have  to  be exposed to all of the kernel's lock-
			related data structures.

SEE ALSO
       kstat_create(9F)

       Writing Device Drivers

				  Apr 4, 1994			     KSTAT(9S)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net