unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

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
           returned  by  uname(2) in the sysnamefield. This is the name of the
           implementation 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
           returned 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
           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 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
           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 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
           example,  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
           example, 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
           native  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_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 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
           machine.  The  pair  of  strings  returned  by  SI_HW_PROVIDER  and
           SI_HW_SERIAL is likely to be unique across all vendor's SVR4 imple-
           mentations.



       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)