sysinfo(2)                                                          sysinfo(2)


NAME
     sysinfo - get and set system information strings

SYNOPSIS
     #include <sys/systeminfo.h>

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

DESCRIPTION
     sysinfo copies information relating to the UNIX system on which the
     process is executing into the buffer pointed to by buf; sysinfo can also
     set certain information where appropriate commands are available.  count
     is the size of the buffer.

     The POSIX P1003.1 interface sysconf [see sysconf(2)] provides a similar
     class of configuration information, but returns an integer rather than a
     string.

     The commands available are:

     SI_SYSNAME    Copy into the array pointed to by buf the string that would
                   be returned by uname [see uname(2)] in the sysname field.
                   This is the name of the implementation of the operating
                   system, for example, System V 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 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; different 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 in the release field.  Typical values
                   might be 4.0 or 3.2.


     SI_VERSION    Copy into the array pointed to by buf the string that would
                   be returned by uname in the version field.  The syntax and
                   semantics of this string are defined by the system
                   provider.  Under IRIX, this is the date and time that the
                   system was generated and has the form mmddhhmm.

     SI_MACHINE    Copy into the array pointed to by buf the string that would
                   be returned by uname in the machine field, for example,
                   IP27 or IP30.

     SI_ARCHITECTURE
                   Copy into the array pointed to by buf a string describing
                   the instruction set architecture of the current system, for
                   example, MIPS-II, m32100, or i80486.  These names may not
                   match predefined names in the C language compilation
                   system.

     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 32 bit hardware-specific
                   identifier of the physical machine on which the system call
                   is executed.  Note that this may be implemented in Read-
                   Only Memory, via 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 ``32-bit identifier'' 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 System V implementations.

     SI_SRPC_DOMAIN
                   This command is not supported under IRIX.

     SI_SET_SRPC_DOMAIN
                   This command is not supported under IRIX.

     SI_INITTAB_NAME
                   Copy into the array pointed to by buf a string that is the
                   pathname of the inittab file used by the currently running
                   bootable operating system.  This is the same as the file
                   specified by the INITTAB keyword found in the system file
                   [see system(4)].

     _MIPS_SI_VENDOR
                   Copy into the array pointed to by buf a string which is the
                   name of the company providing the system. The vendor is the
                   company actually selling the product rather than the
                   company which built the product. Eg: "Silicon Graphics
                   Inc".


     _MIPS_SI_OS_PROVIDER
                   Copy into the array pointed to by buf a string which is the
                   name of the company providing the operating system. This is
                   the name of the company which built the operating system.
                   Eg: "Silicon Graphics Inc".

     _MIPS_SI_OS_NAME
                   Copy into the array pointed to by buf a string which is the
                   name of the operating system. Eg: "IRIX".

     _MIPS_SI_HW_NAME
                   Copy into the array pointed to by buf a string which is the
                   name of the hardware platform. This is the name of the
                   platform in the pricelist. Eg: "IP19"

     _MIPS_SI_NUM_PROCESSORS
                   Copy into the array pointed to by buf a string which is the
                   ASCII representation of the number of configured
                   processors. Eg: "16"

     _MIPS_SI_HOSTID
                   Copy into the array pointed to by buf a string which is the
                   ASCII representation of the host id in hex.  This example
                   uses sgi.sgi.com, which has an internet address of
                   192.26.75.5. Eg: "c01a4b05"

     _MIPS_SI_OSREL_MAJ
                   Copy into the array pointed to by buf a string which is the
                   ASCII representation of the  OS major release number.

     _MIPS_SI_OSREL_MIN
                   Copy into the array pointed to by buf a string which is the
                   ASCII representation of the OS minor release number.

     _MIPS_SI_OSREL_PATCH
                   Copy into the array pointed to by buf a string which is the
                   ASCII representation of the OS patch release number.

     _MIPS_SI_PROCESSORS
                   Copy into the array pointed to by buf a string which is the
                   processor type. In the case of a multiprocessor, this will
                   be a comma separated list with _MIPS_SI_NUM_PROCESSORS
                   entries.

     _MIPS_SI_AVAIL_PROCESSORS
                   Copy into the array pointed to by buf a string which is the
                   ASCII representation of the number of processors available
                   for running unrestricted processes.

     sysinfo fails if one or both of the following are true:


     EPERM         The process does not have appropriate privilege for a SET
                   command.

     EINVAL        buf does not point to a valid address, or the data for a
                   SET command exceeds the limits established by the
                   implementation.

DIAGNOSTICS
     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, a value of -1 is returned and errno is set to indicate the
     error.

USAGE
     There is in many cases no corresponding programmatic interface to set
     these values; such strings are typically settable only by the system
     administrator modifying entries in the master.d 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 system.

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

SEE ALSO
     uname(2), gethostname(3), gethostid(3), sysconf(3C)


                                                                        Page 4