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

FreeBSD Manual Pages

  
 
  

home | help
sg_get_mem_stats(3)					   sg_get_mem_stats(3)

NAME
       sg_get_mem_stats,	 sg_get_mem_stats_r,	    sg_free_mem_stats,
       sg_get_swap_stats, sg_get_swap_stats_r,	sg_free_swap_stats  -  get  VM
       statistics

SYNOPSIS
       #include	<statgrab.h>

       sg_mem_stats *sg_get_mem_stats (size_t *entries);

       sg_mem_stats *sg_get_mem_stats_r	(size_t	*entries);

       sg_error	sg_free_mem_stats (sg_mem_stats	*data);

       sg_swap_stats *sg_get_swap_stats	(size_t	*entries);

       sg_swap_stats *sg_get_swap_stats_r (size_t *entries);

       sg_error	sg_free_swap_stats (sg_swap_stats *data);

DESCRIPTION
       Memory  statistics are accessed through the sg_get_mem_stats() function
       and the sg_get_mem_stats_r() function.  Both  return  a	pointer	 to  a
       sg_mem_stats  buffer.  Note that	this statistic doesn't need to map the
       entire physical memory usage, it	represents the real memory  usable  by
       the operating system.

       Memory statistics are accessed through the sg_get_swap_stats() function
       and  the	 sg_get_swap_stats_r()	function.  Both	 return	a pointer to a
       sg_swap_stats buffer.

       API Shortcut
       +---------------------+-----------------+---------------------+
       | function	     | returns	       | data owner	     |
       +---------------------+-----------------+---------------------+
       | sg_get_mem_stats    | sg_mem_stats *  | libstatgrab (thread |
       |		     |		       | local)		     |
       +---------------------+-----------------+---------------------+
       | sg_get_mem_stats_r  | sg_mem_stats *  | caller		     |
       +---------------------+-----------------+---------------------+
       | sg_get_swap_stats   | sg_swap_stats * | libstatgrab (thread |
       |		     |		       | local)		     |
       +---------------------+-----------------+---------------------+
       | sg_get_swap_stats_r | sg_swap_stats * | caller		     |
       +---------------------+-----------------+---------------------+

       The sg_mem_stats	buffer	received  from	sg_get_mem_stats_r()  and  the
       sg_swap_stats  buffer received from sg_get_swap_stats_r() must be freed
       using sg_free_mem_stats() or  the  sg_free_swap_stats(),	 respectively,
       when not	needed any more. The caller is responsible for doing it.

       On the FreeBSD operating	system elevated	privileges are required	to ac-
       cess the	swap statistics. Making	the program setgid kmem	should be suf-
       ficient.	Programs running as root will not have this problem.

RETURN VALUES
       The  VM system calls can	return a pointer to either a sg_mem_stats or a
       sg_swap_stats.

       typedef struct{
	       unsigned	long long total;
	       unsigned	long long free;
	       unsigned	long long used;
	       unsigned	long long cache;
	       time_t systime;
       } sg_mem_stats;

       total  The total	amount of real memory in bytes.

       free   The free amount of real memory in	bytes.

       used   The used amount of real memory in	bytes.

       cache  The amount of real memory	in bytes used for caching.

       systime
	      the timestamp when the above stats where	collected  in  seconds
	      since epoch

       typedef struct {
	       unsigned	long long total;
	       unsigned	long long used;
	       unsigned	long long free;
	       time_t systime;
       } sg_swap_stats;

       total  The total	swap space in bytes.

       used   The used swap in bytes.

       free   The free swap in bytes.

       systime
	      The  timestamp  when  the	above stats where collected in seconds
	      since epoch

TODO
       Add a function to hold open the file descriptor to  the	kernel	memory
       structures.  Doing  this	 would	allow  the  elevated  privileges to be
       dropped early on.

SEE ALSO
       statgrab(3)

WEBSITE
       <https://libstatgrab.org/>

libstatgrab			  2019-03-08		   sg_get_mem_stats(3)

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

home | help