System Calls sysinfo(2)
NAME
sysinfo - get and set system information strings
SYNOPSIS
#include
int 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:
SISYSNAME
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 sys-
tem, for example, SunOS or UTS.
SIHOSTNAME
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 service should produce a tran-
sport 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).
SISETHOSTNAME
Copy the null-terminated contents of the array pointed
to by buf into the string maintained by the kernel whose
SunOS 5.11 Last change: 29 Jan 2009 1
System Calls sysinfo(2)
value will be returned by succeeding calls to sysinfo()
with the command SIHOSTNAME. This command requires that
{PRIVSYSADMIN} is asserted in the effective set of the
calling process.
SIRELEASE
Copy into the array pointed to by buf the string that
would be returned by uname(2) in the release field. Typ-
ical values might be 5.2 or 4.1.
SIVERSION
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.
SIMACHINE
Copy into the array pointed to by buf the string that
would be returned by uname(2) in the machine field, for
example, sun4u.
SIARCHITECTURE
Copy into the array pointed to by buf a string describ-
ing the basic instruction set architecture of the
current system, for example, sparc, mc68030, m32100, or
i386. These names might not match predefined names in
the C language compilation system.
SIARCHITECTURE64
Copy into the array pointed to by buf a string describ-
ing 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.
SIARCHITECTURE32
Copy into the array pointed to by buf a string describ-
ing the 32-bit instruction set architecture of the
current system, for example, sparc or i386. These names
SunOS 5.11 Last change: 29 Jan 2009 2
System Calls sysinfo(2)
might not match predefined names in the C language com-
pilation system.
SIARCHITECTUREK
Copy into the array pointed to by buf a string describ-
ing the kernel instruction set architecture of the
current system for example sparcv9 or i386. These names
might not match predefined names in the C language com-
pilation system.
SIARCHITECTURENATIVE
Copy into the array pointed to by buf a string describ-
ing 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.
SISALIST
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 com-
piled 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 might not match predefined
names or compiler options in the C language compilation
system.
This command is obsolete and might be removed in a
future release. See getisax(2) and the Linker and
Libraries Guide for a better way to handle instruction
set extensions.
SunOS 5.11 Last change: 29 Jan 2009 3
System Calls sysinfo(2)
SIPLATFORM
Copy into the array pointed to by buf a string describ-
ing the specific model of the hardware platform, for
example, SUNW,Sun-Blade-1500, SUNW,Sun-Fire-T200, or
i86pc.
SIHWPROVIDER
Copies the name of the hardware manufacturer into the
array pointed to by buf.
SIHWSERIAL
Copy into the array pointed to by buf a string which is
the ASCI representation of the hardware-specific serial
number of the physical machine on which the function is
executed. This might be implemented in Read-Only Memory,
using software constants set when building the operating
system, or by other means, and might contain non-numeric
characters. If the function is executed within a non-
global zone that emulates a host identifier, then the
ASCI representation of the zone's host identifier is
copied into the array pointed to by buf. It is antici-
pated that manufacturers will not issue the same "serial
number" to more than one physical machine. The pair of
strings returned by SIHWPROVIDER and SIHWSERIAL is
not guaranteed to be unique across all vendor's SVR4
implementations and could change over the lifetime of a
given system.
SISRPCDOMAIN
Copies the Secure Remote Procedure Call domain name into
the array pointed to by buf.
SISETSRPCDOMAIN
Set the string to be returned by sysinfo() with the
SISRPCDOMAIN command to the value contained in the
array pointed to by buf. This command requires that
{PRIVSYSADMIN} is asserted in the effective set of the
calling process.
SIDHCPCACHE
Copy into the array pointed to by buf an ASCI string
SunOS 5.11 Last change: 29 Jan 2009 4
System Calls sysinfo(2)
consisting of the ASCI 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 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.
ERORS
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 established by the implementation.
EPERM The {PRIVSYSADMIN} was not asserted in the
effective set of the calling process.
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.
SunOS 5.11 Last change: 29 Jan 2009 5
System Calls sysinfo(2)
SEE ALSO
boot(1M), dhcpagent(1M), getisax(2), uname(2),
gethostid(3C), gethostname(3C), sysconf(3C), isalist(5),
privileges(5), standards(5), zones(5)
Linker and Libraries Guide
SunOS 5.11 Last change: 29 Jan 2009 6
|