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  informa-
     tion  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  returned  by uname(2) in the sysname field.
           This is the name of the implementation of the  operat-
           ing 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(2)  in  the  nodename
           field.   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. Dif-
           ferent networks may have different names for the node,
           but presenting the nodename to the appropriate network
           directory or name-to-address  mapping  service  should
           produce  a  transport  end point address. The name may
           not be fully qualified.  Internet host names may 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 returned by  succeeding  calls  to
           sysinfo()  with  the command SI_HOSTNAME. This command
           requires that the effective-user-id be super-user.

     SI_RELEASE
           Copy into the array pointed to by buf the string  that
           would  be  returned  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  returned  by uname(2) in the version field.
           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  returned  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 may 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  instruction  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 may contain  more  instructions  than
           later-named  instruction  sets; a program that is com-
           piled for an earlier-named instruction set  will  most
           likely  run  faster on this machine than the same pro-
           gram compiled for a later-named instruction set.

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

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

     SI_PLATFORM
           Copy into  the  array  pointed  to  by  buf  a  string
           describing  the  specific  model of the hardware plat-
           form, 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 physical  machine  on  which  the
           function  is  executed.  Note  that this may be imple-
           mented in Read-Only Memory, using  software  constants
           set  when  building  the operating system, or by other
           means, and may contain non-numeric characters.  It  is
           anticipated that manufacturers will not issue the same
           "serial number" to more than one physical machine. The
           pair   of   strings  returned  by  SI_HW_PROVIDER  and
           SI_HW_SERIAL  is  likely  to  be  unique  across   all
           vendor's SVR4 implementations.

     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
           the effective-user-id be super-user.

     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 configured 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 mainte-
           nance 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 data for a SET command exceeds  the  limits  esta-
           blished by the implementation.

     EPERM The effective user  of  the  calling  process  is  not
           super-user.


USAGE

     In many cases there is no corresponding  programming  inter-
     face  to  set these values; such strings are typically sett-
     able only by the system administrator modifying  entries  in
     the  /etc/system  directory or the code provided by the par-
     ticular 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 installa-
     tions.


SEE ALSO

     boot(1M),    dhcpagent(1M),     uname(2),     gethostid(3C),
     gethostname(3C), sysconf(3C), isalist(5), standards(5)


Man(1) output converted with man2html