summaryrefslogtreecommitdiffstats
path: root/man2/sysinfo.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/sysinfo.2')
-rw-r--r--man2/sysinfo.288
1 files changed, 88 insertions, 0 deletions
diff --git a/man2/sysinfo.2 b/man2/sysinfo.2
new file mode 100644
index 000000000..a2ec8e9f3
--- /dev/null
+++ b/man2/sysinfo.2
@@ -0,0 +1,88 @@
+.\" -*- nroff -*-
+.\"
+.\" (C)opyright 1993 by Dan Miner (dminer@nyx.cs.du.edu)
+.\"
+.\" Permission is granted to freely distribute or modify this file
+.\" for the purpose of improving Linux or its documentation efforts.
+.\" If you modify this file, please put a date stamp and HOW you
+.\" changed this file. Thanks. -DM
+.\"
+.\" Modified Sat Jul 24 12:35:12 1993 by Rik Faith <faith@cs.unc.edu>
+.\" Modified Tue Oct 22 22:29:51 1996 by Eric S. Raymond <esr@thyrsus.com>
+.\" Modified Mon Aug 25 16:06:11 1997 by Nicolás Lichtmaier <nick@debian.org>
+.\"
+.TH SYSINFO 2 1997-08-25 "Linux 2.0" "Linux Programmer's Manual"
+.SH NAME
+sysinfo \- returns information on overall system statistics
+.SH SYNOPSIS
+.B #include <sys/sysinfo.h>
+.sp
+.BI "int sysinfo(struct sysinfo *" info );
+.SH DESCRIPTION
+Until Linux 2.3.16,
+.B sysinfo
+used to return information in the following structure:
+
+.RS
+.nf
+struct sysinfo {
+ long uptime; /* Seconds since boot */
+ unsigned long loads[3]; /* 1, 5, and 15 minute load averages */
+ unsigned long totalram; /* Total usable main memory size */
+ unsigned long freeram; /* Available memory size */
+ unsigned long sharedram; /* Amount of shared memory */
+ unsigned long bufferram; /* Memory used by buffers */
+ unsigned long totalswap; /* Total swap space size */
+ unsigned long freeswap; /* swap space still available */
+ unsigned short procs; /* Number of current processes */
+ char _f[22]; /* Pads structure to 64 bytes */
+};
+.fi
+.RE
+
+and the sizes were given in bytes. Since Linux 2.3.23 (i386), 2.3.48
+(all architectures) the structure is
+
+.RS
+.nf
+struct sysinfo {
+ long uptime; /* Seconds since boot */
+ unsigned long loads[3]; /* 1, 5, and 15 minute load averages */
+ unsigned long totalram; /* Total usable main memory size */
+ unsigned long freeram; /* Available memory size */
+ unsigned long sharedram; /* Amount of shared memory */
+ unsigned long bufferram; /* Memory used by buffers */
+ unsigned long totalswap; /* Total swap space size */
+ unsigned long freeswap; /* swap space still available */
+ unsigned short procs; /* Number of current processes */
+ unsigned long totalhigh; /* Total high memory size */
+ unsigned long freehigh; /* Available high memory size */
+ unsigned int mem_unit; /* Memory unit size in bytes */
+ char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding for libc5 */
+};
+.fi
+.RE
+
+and the sizes are given as multiples of \fImem_unit\fP bytes.
+
+.B sysinfo
+provides a simple way of getting overall system statistics. This is more
+portable than reading \fI/dev/kmem\fP.
+For an example of its use, see intro(2).
+.SH "RETURN VALUE"
+On success, zero is returned. On error, \-1 is returned, and
+.I errno
+is set appropriately.
+.SH ERRORS
+.TP
+.B EFAULT
+pointer to \fIstruct\ sysinfo\fP is invalid
+.SH "CONFORMING TO"
+This function is Linux-specific, and should not be used in programs
+intended to be portable.
+.sp
+The Linux kernel has a sysinfo system call since 0.98.pl6.
+Linux libc contains a sysinfo() routine since 5.3.5, and
+glibc has one since 1.90.
+.SH "SEE ALSO"
+.BR proc (5)