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

FreeBSD Manual Pages

  
 
  

home | help
sysinfo(2)			 System	Calls			    sysinfo(2)

NAME
       sysinfo - get and set system information	strings

SYNOPSIS
       #include	<sys/systeminfo.h>

       long sysinfo(int	command, char *buf, long count);

DESCRIPTION
       The  sysinfo()  function	 copies	 information relating to the operating
       system on which the process is executing	into the buffer	pointed	to  by
       buf. It can also	set certain information	where appropriate commands are
       available. The count parameter indicates	the size of the	buffer.

       The POSIX P1003.1 interface (see	standards(5)) sysconf(3C)  provides  a
       similar	class  of  configuration  information,	but returns an integer
       rather than a string.

       The values for command are as follows:

       SI_SYSNAME

	   Copy	into the array pointed to by buf the string that would be  re-
	   turned by uname(2) in the sysnamefield. This	is the name of the im-
	   plementation	of the operating system, for example, SunOS or UTS.

       SI_HOSTNAME

	   Copy	into the array pointed to by  buf  a  string  that  names  the
	   present  host machine. This is the string that would	be returned by
	   uname() in the nodenamefield. This hostname or  nodename  is	 often
	   the	name the machine is known by locally. The hostname is the name
	   of this machine as a	node in	some network. Different	networks might
	   have	 different  names for the node,	but presenting the nodename to
	   the appropriate network directory or	name-to-address	 mapping  ser-
	   vice	 should	 produce a transport end point address.	The name might
	   not be fully	qualified. Internet host names can be up to 256	 bytes
	   in length (plus the terminating null).

       SI_SET_HOSTNAME

	   Copy	 the  null-terminated  contents	of the array pointed to	by buf
	   into	the string maintained by the kernel whose value	 will  be  re-
	   turned  by  succeeding calls	to sysinfo() with the command SI_HOST-
	   NAME. This command requires that {PRIV_SYS_ADMIN}  is  asserted  in
	   the effective set of	the calling process.

       SI_RELEASE

	   Copy	 into the array	pointed	to by buf the string that would	be re-
	   turned by uname(2) in the release field. Typical  values  might  be
	   5.2 or 4.1.

       SI_VERSION

	   Copy	 into the array	pointed	to by buf the string that would	be re-
	   turned by uname(2) in the versionfield. The syntax and semantics of
	   this	string are defined by the system provider.

       SI_MACHINE

	   Copy	 into the array	pointed	to by buf the string that would	be re-
	   turned by uname(2) in the machine field, for	example, sun4u.

       SI_ARCHITECTURE

	   Copy	into the array pointed to by buf a string describing the basic
	   instruction	set  architecture  of the current system, for example,
	   sparc, mc68030, m32100, or i386. These names	might not match	prede-
	   fined names in the C	language compilation system.

       SI_ARCHITECTURE_64

	   Copy	 into  the  array  pointed  to	by buf a string	describing the
	   64-bit instruction set architecture of the current system, for  ex-
	   ample,  sparcv9  or	amd64.	These names might not match predefined
	   names in the	C language compilation system.	This  subcode  is  not
	   recognized  on  systems  that  do not allow a 64-bit	application to
	   run.

       SI_ARCHITECTURE_32

	   Copy	into the array pointed to  by  buf  a  string  describing  the
	   32-bit  instruction set architecture	of the current system, for ex-
	   ample, sparc	or i386.  These	names might not	match predefined names
	   in the C language compilation system.

       SI_ARCHITECTURE_K

	   Copy	 into the array	pointed	to by buf a string describing the ker-
	   nel instruction set architecture of the current system for  example
	   sparcv9  or	i386.  These names might not match predefined names in
	   the C language compilation system.

       SI_ARCHITECTURE_NATIVE

	   Copy	into the array pointed to by buf a string describing  the  na-
	   tive	 instruction set architecture of the current system, for exam-
	   ple sparcv9 or i386.	 These names might not match predefined	 names
	   in the C language compilation system.

       SI_ISALIST

	   Copy	 into the array	pointed	to by buf the names of the variant in-
	   struction set architectures executable on the current system.

	   The names are space-separated and are ordered in the	sense of  best
	   performance.	 That is, earlier-named	instruction sets might contain
	   more	instructions than later-named instruction sets;	a program that
	   is  compiled	 for an	earlier-named instruction set will most	likely
	   run faster on this machine than the same  program  compiled	for  a
	   later-named instruction set.

	   Programs  compiled  for  an instruction set that does not appear in
	   the list will most likely experience	performance degradation	or not
	   run at all on this machine.

	   The	instruction  set names known to	the system are listed in isal-
	   ist(5); these names might not match predefined  names  or  compiler
	   options in the C language compilation system.

	   See	getisax(2) and the Linker and Libraries	Guide for a better way
	   to handle instruction set extensions.

       SI_PLATFORM

	   Copy	into the array pointed to by buf a string describing the  spe-
	   cific  model	 of the	hardware platform, for example,	SUNW,Sun_4_75,
	   SUNW,SPARCsystem-600, or i86pc.

       SI_HW_PROVIDER

	   Copies the name of the hardware manufacturer	into the array pointed
	   to by buf.

       SI_HW_SERIAL

	   Copy	 into  the array pointed to by buf a string which is the ASCII
	   representation of the hardware-specific serial number of the	physi-
	   cal machine on which	the function is	executed. This might be	imple-
	   mented in Read-Only	Memory,	 using	software  constants  set  when
	   building the	operating system, or by	other means, and might contain
	   non-numeric characters. It is anticipated that  manufacturers  will
	   not	issue  the  same "serial number" to more than one physical ma-
	   chine. The pair of strings returned by SI_HW_PROVIDER and SI_HW_SE-
	   RIAL	 is  likely  to	be unique across all vendor's SVR4 implementa-
	   tions.

       SI_SRPC_DOMAIN

	   Copies the Secure Remote Procedure Call domain name into the	 array
	   pointed to by buf.

       SI_SET_SRPC_DOMAIN

	   Set	the string to be returned by sysinfo() with the	SI_SRPC_DOMAIN
	   command to the value	contained in the array pointed to by buf. This
	   command requires that {PRIV_SYS_ADMIN} is asserted in the effective
	   set of the calling process.

       SI_DHCP_CACHE

	   Copy	into the array pointed to by buf an ASCII string consisting of
	   the ASCII hexidecimal encoding of the name of the interface config-
	   ured	by boot(1M) followed by	the DHCPACK  reply  from  the  server.
	   This	 command  is  intended	for use	only by	the dhcpagent(1M) DHCP
	   client daemon for the purpose of adopting the DHCP  maintenance  of
	   the interface configured by boot.

RETURN VALUES
       Upon  successful	 completion,  the  value returned indicates the	buffer
       size in bytes required to hold the complete value and  the  terminating
       null  character.	 If  this value	is no greater than the value passed in
       count, the entire string	was copied. If	this  value  is	 greater  than
       count,  the string copied into buf has been truncated to	 count-1 bytes
       plus a terminating null character.

       Otherwise, -1 is	returned and errno is set to indicate the error.

ERRORS
       The sysinfo() function will fail	if:

       EFAULT	       The buf argument	does not point to a valid address.

       EINVAL	       The count argument for a	non-SET	command	is less	than 0
		       or the data for a SET command exceeds the limits	estab-
		       lished by the implementation.

       EPERM	       The {PRIV_SYS_ADMIN} was	not asserted in	the  effective
		       set of the calling process.

USAGE
       In  many	 cases	there is no corresponding programming interface	to set
       these values; such strings are typically	settable only  by  the	system
       administrator  modifying	 entries  in  the /etc/system directory	or the
       code provided by	the particular OEM reading a serial number or code out
       of read-only memory, or hard-coded in the version of the	operating sys-
       tem.

       A good estimation for count is  257,  which  is	likely	to  cover  all
       strings returned	by this	interface in typical installations.

SEE ALSO
       boot(1M),  dhcpagent(1M), getisax(2), uname(2), gethostid(3C), gethost-
       name(3C), sysconf(3C), isalist(5), privileges(5), standards(5)

       Linker and Libraries Guide

SunOS 5.10			  5 Oct	2004			    sysinfo(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | USAGE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=sysinfo&sektion=2&manpath=SunOS+5.10>

home | help