sysinfo
System Calls sysinfo(2)NAME
sysinfo - get and set system information stringsSYNOPSIS
#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 network 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, sun4c, sun4d, or sun4m. 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 SunOS 5.8 Last change: 5 Nov 1998 2 System Calls sysinfo(2) 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. SunOS 5.8 Last change: 5 Nov 1998 3 System Calls sysinfo(2) 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) SunOS 5.8 Last change: 5 Nov 1998 4