Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
sg_get_cpu_stats(3)					   sg_get_cpu_stats(3)

NAME
       sg_get_cpu_stats,       sg_get_cpu_stats_r,	sg_get_cpu_stats_diff,
       sg_get_cpu_stats_diff_between,	sg_get_cpu_percents,   sg_get_cpu_per-
       cents_of, sg_get_cpu_percents_r,	sg_free_cpu_stats - get	cpu usage

SYNOPSIS
       #include	<statgrab.h>

       sg_cpu_percents *sg_get_cpu_percents (size_t *entries);

       sg_cpu_percents *sg_get_cpu_percents_of (sg_cpu_percent_source cps,
		       size_t *entries);

       sg_cpu_percents *sg_get_cpu_percents_r (const sg_cpu_stats *whereof,
					      size_t *entries);

       void sg_free_cpu_percents (sg_cpu_percents *data);

       sg_cpu_stats *sg_get_cpu_stats (size_t *entries);

       sg_cpu_stats *sg_get_cpu_stats_diff (size_t *entries);

       sg_cpu_stats *sg_get_cpu_stats_r	(size_t	*entries);

       sg_cpu_stats *sg_get_cpu_stats_diff_between (const sg_cpu_stats
		       *cpu_now, const sg_cpu_stats *cpu_last, size_t
		       *entries);

       sg_error	sg_free_cpu_stats (sg_cpu_stats	*data);

DESCRIPTION
       These  are  the	categories  of data delivered by the cpu stats module:
       sg_get_cpu_stats() and sg_get_cpu_stats_r() deliver native cpu counters
       since  the  machine  has	 been  started,	 sg_get_cpu_stats_diff()   and
       sg_get_cpu_stats_diff_between() deliver native cpu counters between two
       sg_get_cpu_stats()     calls	and    sg_get_cpu_percents_of()	   and
       sg_get_cpu_percents_r() deliver correlated relative cpu counters	(where
       total is	100%).

       API Shortcut
       +---------------------------+-------------------+---------------------+
       | function		   | returns	       | data owner	     |
       +---------------------------+-------------------+---------------------+
       | sg_get_cpu_stats	   | sg_cpu_stats *    | libstatgrab (thread |
       |			   |		       | local)		     |
       +---------------------------+-------------------+---------------------+
       | sg_get_cpu_stats_r	   | sg_cpu_stats *    | caller		     |
       +---------------------------+-------------------+---------------------+
       | sg_get_cpu_stats_diff	   | sg_cpu_stats *    | libstatgrab (thread |
       |			   |		       | local)		     |
       +---------------------------+-------------------+---------------------+
       | sg_get_cpu_stats_diff_be- | sg_cpu_stats *    | caller		     |
       | tween			   |		       |		     |
       +---------------------------+-------------------+---------------------+
       | sg_get_cpu_percents_of	   | sg_cpu_percents * | libstatgrab (thread |
       |			   |		       | local)		     |
       +---------------------------+-------------------+---------------------+
       | sg_get_cpu_percents_r	   | sg_cpu_percents * | caller		     |
       +---------------------------+-------------------+---------------------+

       The sg_cpu_stats	buffer	received  from	sg_get_cpu_stats_r()  and  the
       sg_get_cpu_stats_diff_between()	as  well as the	sg_cpu_percents	buffer
       received	  from	 sg_get_cpu_percents_r()   must	  be	freed	 using
       sg_free_cpu_stats()  or	the sg_free_cpu_percents(), respectively, when
       not needed any more. The	caller is responsible for doing	it.

       The value stored	(the "ticks") will vary	between	operating systems. For
       example Solaris has a total of 100 per second, while Linux has substan-
       tially more. Also, different operating systems store different informa-
       tion - you won't	find nice cpu on Solaris for example.

       Modern systems shall provide information	about the clock	 tick  resolu-
       tion by invoking	sysconf(_SC_CLK_TCK).

RETURN VALUES
       There are two structures	returned by the	CPU statistics functions.

       typedef struct {
	       unsigned	long long user;
	       unsigned	long long kernel;
	       unsigned	long long idle;
	       unsigned	long long iowait;
	       unsigned	long long swap;
	       unsigned	long long nice;
	       unsigned	long long total;

	       unsigned	long long context_switches;
	       unsigned	long long voluntary_context_switches;
	       unsigned	long long involuntary_context_switches;
	       unsigned	long long syscalls;
	       unsigned	long long interrupts;
	       unsigned	long long soft_interrupts;

	       time_t systime;
       } sg_cpu_stats;

       typedef struct {
	       double user;
	       double kernel;
	       double idle;
	       double iowait;
	       double swap;
	       double nice;
	       time_t time_taken;
       } sg_cpu_percents;

       user kernel idle	iowait swap nice total
	      The different CPU	states.

       context_switches	voluntary_context_switches involuntary_context_switch-
       es syscalls interrupts soft_interrupts
	      The different program actions on CPU.

       systime time_taken
	      The  time	 taken in seconds since	the last call of the function,
	      or the system time.

SEE ALSO
       statgrab(3)

WEBSITE
       <https://libstatgrab.org/>

libstatgrab			  2019-03-08		   sg_get_cpu_stats(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sg_get_cpu_stats_diff_between&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help