|
Index for Section 2 |
|
|
Alphabetical listing for G |
|
|
Bottom of page |
|
getsysinfo(2)
NAME
getsysinfo - Gets system information
SYNOPSIS
#include <sys/sysinfo.h>
#include <machine/hal_sysinfo.h>
getsysinfo (op, buffer, nbytes, start, arg, flag)
unsigned long op;
caddr_t buffer;
unsigned long nbytes;
int *start;
void *arg;
unsigned long *flag;
PARAMETERS
op Specifies the operation to be performed. Values for op are defined in
the <sys/sysinfo.h> and <machine/hal_sysinfo.h> header files. See the
DESCRIPTION for the operations you can specify.
buffer
Specifies the location where the system information is returned. Its
data type depends upon the operation you specify.
nbytes
Defines the size of buffer.
start
Specifies the current logical location within the internal system table
referenced by the op value. You initially set the start parameter to 0
(zero) or to -1. Then, the getsysinfo() routine updates this value as
it retrieves information so that it sets the start parameter to the
current logical location within the system table. You can use
successive executions of getsysinfo(), without modifying the start
parameter, to retrieve information about all the system structures
specified by op. See the individual op descriptions to determine how
to initialize the start parameter.
The getsysinfo() call sets the start parameter to 0 (zero) when all the
system information you requested has been retrieved.
arg Used by some op values to specify additional information. The data type
of these optional parameter depends upon which operation is specified.
If an operation requires no arg parameter, omit this parameter or set
it to NULL.
DESCRIPTION
The getsysinfo system call retrieves information from the system.
When information about multiple system structures is returned, it is stored
in consecutive buffer locations. The information for each system structure
depends on the op value.
This section lists the various operations that you can specify with the op
parameter. It also specifies the data type for the buffer, nbytes, start,
and arg parameters where necessary.
GSI_BADPAGE_INFO
Returns a list or a count of the mapped out PFNs within the specified
range. If the provided buffer is too small to contain the entire list
of mapped out PFNs, an error of E2BIG is returned along with the count
of mapped out PFNs.
buffer
unsigned int buf[SIZE] Contains either a list or a count of mapped
PFNs.
nbytes
unsigned int size Must be at least 4. When set to 4, the count of
mapped PFNs is returned to buffer. When set to 8 or higher, the
list of mapped PFNs is returned to buffer, unless the buffer is too
small. When the buffer is too small, the count of mapped PFNs is
returned.
start
unsigned int start points to the first PFN in the range to be
searched.
arg unsigned int endspecifies the last PFN in the range to be searched.
GSI_BOOTCTLR
Obsolete operation specific to a controller type that is no longer
supported.
GSI_BOOTDEV
Returns the BOOTDEV string, which is used for the installation. (This
operator does not require any parameter modifications.)
GSI_BOOTEDFILE
Returns the name of the file from which the currently running kernel
was booted. This file might be a statically linked executable, such as
vmunix, or a bootstrap linker directive file, such as
/etc/sysconfigtab. (See also the description of the GSI_MODULE_LIST
operation.)
buffer
char buf[SIZE]
nbytes
Must be greater than or equal to 80.
GSI_BOOTTYPE
Returns the name of the network interface over which the kernel was
booted. This value is only valid when the kernel is booted from the
network. Examples are ln0 (DEC 3000) and te0 (DEC 4000).
buffer
char buf[SIZE]
nbytes
Must be greater than or equal to 10.
GSI_BUS_NAME
Returns the name of a start-selected bus.
buffer
char buf[SIZE]
nbytes
Specifies the size of the user buffer.
start
If you set start to -1, the name of the nexus iobus is returned in
buffer. Otherwise, start points to the bus address and returns the
nexus iobus name in buffer.
See EXAMPLES for an example that uses GSI_BUS_NAME.
GSI_BUS_PNAME
Returns the port name of a start-selected bus.
buffer
char buf[SIZE]
nbytes
Specifies the size of the user buffer.
start
If you set start to -1, the port name of the nexus iobus is
returned in buffer. Otherwise, start points to the bus address and
returns the port name of the nexus iobus in buffer.
GSI_BUS_STRUCT
Returns a start-selected bus structure, which is defined in
<io/common/devdriver.h>.
buffer
struct bus (/usr/include/io/common/devdriver.h)
nbytes
Specifies the size of the user buffer.
start
If you set start to -1, the structure of the nexus iobus is
returned in buffer. Otherwise, start points to the bus structure
and returns the structure of the nexus iobus in buffer.
See EXAMPLES for an example that uses GSI_BUS_STRUCT.
GSI_BYTEWORD_IO
Returns a non-zero value if the system supports accessing IO space with
byte/word load and store instructions. If zero is returned or the call
fails, then byte/word IO accesses should not be attempted.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_CLK_TCK
Returns the system clock's ticks-per-second value in the form of an
int. (This operator does not require any parameter modifications.)
GSI_COMPAT_MOD
Returns the address of the start-selected binary compatibility module's
configure function in the form of a pointer.
buffer
struct compat_mod which is defined in <sys/systm.h>
nbytes
Specifies size of compat_mod structure
start
Points to the compat_mod structure and returns the address of the
binary compatibility module's configure function in buffer.
GSI_CONS_BOOTDEV
For internal use only.
GSI_CONS_BOOTPATH
For internal use only.
GSI_CONSDEV_TO_DEVT
For internal use only.
GSI_CONSMEM_SIZE
For internal use only.
GSI_CONSTYPE
Obsolete. Returns the MIPS console type identifier for MIPS platforms.
Returns an error ([EINVAL]) on Alpha platforms.
GSI_CPU
Returns the CPU type (from the kernel cpu global variable) in the form
of an int.
buffer
int
nbytes
Must be no less than the size of an int.
GSI_CPU_INFO
Returns CPU information.
GSI_CPU_INFO returns data on a partition basis. On a partitioned system
with 8 CPUs GSI_CPU_INFO returns only the information for CPUs assigned
to the partition. Use GSI_CPU_STATE to return CPU information for the
entire system (all partitions). The following data is returned:
· The number of the CPU on which the calling thread was running at
the time of the getsysinfo() call.
· The number of CPUs capable of running at the time of the
getsysinfo() call.
· The type of machine, as defined by the
/usr/include/machine/hal/cpuconf.h header file.
· The highest available CPU number plus one. For example, if your
system contains three CPUs numbered 0, 2, and 4, the value is 5.
· Bit mask indicating which CPU numbers are currently mapped to
physical CPUs. For example, a value of 0x15 indicates that the
system contains CPUs numbered 0, 2, and 4.
· Bit mask indicating which CPUs are capable of performing work at
the time of the getsysinfo() call.
· Bit mask indicating which CPUs are bound to specific processes.
· Bit mask indicating which CPUs are part of a processor set that is
marked for exclusive use by a task. The CPUs might be idle at the
time of the getsysinfo() call.
· Speed of the CPU in megahertz. This value might be inaccurate if
the system architecture supports mixed-speed CPUs.
buffer
struct cpu_info (/usr/include/machine/hal_sysinfo.h)
nbytes
Specifies the size of the user buffer.
GSI_CPU_STATE
GSI_CPU_STATE shows data for all CPUs on a partitioned system. (Using
hardware partitioning.) See GSI_CPU_INFO, which returns CPU information
by partition. The following information is returned:
· The maximum number of CPUs supported by the system architecture.
· The number of the CPU that is the current primary processor.
· Whether the CPU can be the primary processor.
· CPU sets that have kernel structs allocated.
· The CPU slots that are currently powered up.
· CPU sets that are marked as present by the system firmware.
· CPU sets that are marked as available by the system firmware.
· CPU sets that are currently running (online).
· CPU sets that have threads bound to them.
· CPU sets that have threads exclusively bound.
· Whether the CPU is registered with HWC.
· Whether the CPU is able to take interrupts.
buffer
struct cpu_state (/usr/include/machine/hal_sysinfo.h)
nbytes
Specifies the size of the user buffer.
GSI_CPUS_IN_BOX
Returns the actual number of CPUs present in the current machine in the
form of an int.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_CTLR_NAME
Returns the name of a start-selected controller.
buffer
char buf[SIZE]
nbytes
Specifies the size of the user buffer.
start
Points to the controller structure and returns the name of that
structure in buffer.
GSI_CTLR_PNAME
Returns the port name of a start-selected controller.
buffer
char buf[SIZE]
nbytes
Specifies the size of the user buffer.
start
Points to the controller structure and returns the port name of
that structure in buffer.
GSI_CTLR_STRUCT
Returns a start-selected controller structure, which is defined in
<io/common/devdriver.h>.
buffer
struct controller
nbytes
Specifies the size of the user buffer.
start
Points to the controller structure and returns that structure in
buffer.
GSI_CURRENT_CPU
Returns the number of the CPU on which the thread is currently running
in the form of a long.
buffer
long
GSI_DBASE
For internal use only.
GSI_DEV_MOD
Returns a start-selected dev_mod_t structure, which is defined in
<sys/sysconfig.h>. (This operator does require any parameter
modifications.)
GSI_DEV_NAME
Returns the name of a start-selected device.
buffer
char buf[SIZE]
nbytes
Specifies the size of the user buffer.
start
Points to the device structure and returns the name of the device
structure in buffer.
GSI_DEV_PNAME
Returns the port name of a start-selected device.
buffer
char buf[SIZE]
nbytes
Specifies the size of the user buffer.
start
Points to the device structure and returns the port name of the
device structure in buffer.
GSI_DEV_STRUCT
Returns a start-selected device structure which is defined in
<io/common/devdriver.h>.
buffer
struct device (/usr/include/io/common/devdriver.h)
nbytes
Specifies the size of the user buffer.
start
Points to the device structure and returns that structure in
buffer.
GSI_DEV_TYPE
Returns the type (disk, tape, and so forth) of the start-selected
device in the form of a string.
buffer
char buf[SIZE]
nbytes
Specifies the length of buffer.
GSI_DNAUID
For internal use only.
GSI_DUMPDEV
Returns the dump device descriptor in the form of a dev_t.
buffer
dev_t
nbytes
Specifies the size of the user buffer.
GSI_DUMPINFO
Returns the contents of the kernel's dumpinfo structure (defined in
<sys/sysinfo.h>) to allow the savecore utility to retrieve namelist
information for the currently running kernel.
buffer
struct dumpinfo
nbytes
Specifies the size of the user buffer.
GSI_FAM_CPU_SMM
For internal use only.
GSI_FD_NEWMAX
Returns information about the number of open files allowed for a
process. The process's utask structure is checked. If the process has
enabled support for up to 64K file descriptors, a 1 is returned. If the
process has not enabled support for up to 64K file descriptors, a 0 is
returned.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_FIRMWARE_REV
Returns information about the console firmware revision in the form of
struct firmware_rev, as defined in <machine/console.h>.
buffer
struct firmware_rev
nbytes
Specifies the size of buffer, which must be >= sizeof(struct
firmware_rev).
GSI_FRU_TABLE
For internal use only.
GSI_FRU_TABLE_SIZE
For internal use only.
GSI_GET_HWRPB
Returns the HWRPB in the form of struct rpb, as defined in
<machine/rpb.h>
buffer
struct rpb hwrpb
nbytes
Specifies the size of buffer.
GSI_GRAPHIC_RES
Returns information concerning the graphics screens present in the
system. This information consists of the width and height, in pixels,
for a graphics device, for example, 1280 x 1024 for the DEC 3000 Model
500 default graphics. The start parameter allows you to step through
all of the screens configured in the system (as for GSI_GRAPHICTYPE).
The following is an example of a buffer data structure format that can
be used:
buffer
struct {
int width;
int height;
} resolution_buffer = {0, 0;
nbytes
sizeof(resolution_buffer)
start
Should be set to zero for the first call. On return, will contain
the screen number for which data was returned, or zero (0) after
the data for the last screen present in the system was returned on
the previous call.
GSI_GRAPHICTYPE
Returns information concerning the graphics screens present in the
system. This information consists of the ROM identifier string
associated with a graphics device, for example, "PMAGB-BA" for the DEC
3000 Model 500 default graphics. The start parameter allows you to step
through all the screens configured in the system (as for
GSI_GRAPHIC_RES).
buffer
char buf[SIZE]
nbytes
sizeof(buf) must be at least 8 bytes. The returned value will be
exactly 8 bytes and will not be zero terminated.
start
Should be set to zero for the first call. On return, will contain
the screen number for which data was returned, or zero (0) after
the data for the last screen present in the system was returned on
the previous call. If no graphic screens are configured in the
system, a value of zero will be returned from the first call. An
error of EINVAL will be returned if start is negative or equal to
or greater than the number of screens actually configured.
GSI_IECPARNT
Returns the parent IEC setting in buffer. This setting is determined by
the setsysinfo(2) SSIN_IECPARNT operation, which allows users to
specify their own instruction emulation control (IEC) mechanism. By
default, the operating system emulates instructions not supported by
the host processor and displays an informational message (for the first
occurrence only). This allows programs executing such instructions to
run to completion and produce correct results. However, increased
system overhead may degrade the program's performance.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_IECPROC
Returns the process IEC setting in buffer. This setting is determined
by the setsysinfo(2) SSIN_IECPROC operation, which allows users to
specify their own instruction emulation control (IEC) mechanism. By
default, the operating system emulates instructions not supported by
the host processor and displays an informational message (for the first
occurrence only). This allows programs executing such instructions to
run to completion and produce correct results. However, increased
system overhead may degrade the program's performance.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_IECSYS
Returns the system IEC setting in buffer. This setting is determined by
the setsysinfo(2) SSIN_IECSYS operation, which allows the superuser to
specify his or her own instruction emulation control (IEC) mechanism.
By default, the operating system emulates instructions not supported by
the host processor and displays an informational message (for the first
occurrence only). This allows programs executing such instructions to
run to completion and produce correct results. However, increased
system overhead may degrade the program's performance.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_IEEE_FP_CONTROL
Returns the mask of the currently enabled FP exceptions, defined in
<machine/fpu.h> (as "read/write flags"), in the form of a long.
buffer
long
Note
It is recommended that the C library (libc) routine
ieee_fp_control() be used instead of getsysinfo(). See the
ieee(3) reference page for information on this libc routine.
GSI_IEEE_STATE_AT_SIGNAL
Returns the values set by the user through the SSI_IEEE_STATE_AT_SIGNAL
setsysinfo(2) routine. See the IEEE specification for details.
buffer
long
Note
It is recommended that the libc routine
ieee_get_state_at_signal() be used instead of getsysinfo(). See
the ieee(3) reference page for information on this libc routine.
GSI_IPDEFTTL
For internal use only.
GSI_IPRSETUP
Returns the settings of the global kernel variables ipforwarding (in
bit 1) and ipgateway (in bit 0) for use by the iprsetup utility.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_KEYBOARD
Returns the keyboard name, if it exists, as an ASCII string.
buffer
char kybd[SIZE]
nbytes
Specifies the size of buffer.
GSI_LITE_SYSTEM
For internal use only.
GSI_LMF
Returns LMF (License Management Facility) kernel information. LMF
definitions are in the <sys/lmf.h> and <sys/lmfklic.h> header files.
You must specify an arg parameter. The other parameter values vary
depending on what you specify for arg. See the LMF header files to
determine which input parameters are required.
GSI_LOGIN_NAME_MAX
Returns the maximum length of a login name in the form of an integer.
buffer
int login_name_max
nbytes
Specifies the size of buffer, which is sizeof(int).
GSI_LURT
For internal use only.
GSI_MAX_CPU
Returns the maximum number of CPUs possible based on current machine in
the form of an int. It is based on the highest numbered CPU found in
the machine's current hardware configuration regardless of whether the
lower numbered slots contain CPU's or are empty. For example a system
containing CPU's in slots 0-3 would have a GSI_MAX_CPU value of 4. A
system containing only two cpus in slots 0 and 3 (with the other slots
being empty) would also have a GSI_MAX_CPU value of 4.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_MAX_UPROCS
Returns the maximum number of processes allowed for each user id.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_MMAPALIGN
Returns the minimum alignment required for an address specified with
the MAP_FIXED option in the mmap(2) system call.
GSI_MODULE_LIST
Returns the following two lists for kernels that are bootstrap linked:
· A space-separated list of the exact module names and linker flags
used to build the currently running kernel.
· A space-separated list of the foreign kit names and devices that
were added to the kernel from the bootstrap command line.
If the currently running kernel is a statically linked kernel,
getsysinfo() returns an empty string.
buffer
char buf[SIZE]
nbytes
At least one page (8192 bytes). In some cases one page is too small
to hold the data to be returned. In this case, getsysinfo returns
the EFAULT error code. Retry the operation with two or more pages.
GSI_NETBLK
Returns the entire NETBLK structure, which is used for the network
installation.
buffer
struct netblk
nbytes
Specifies the size of buffer.
GSI_NO_BINLOGD_FRU
For internal use only.
GSI_PALCODE_REV
Returns information about the palcode revision in the form of struct
palcode_rev.
buffer
struct palcode_rev
nbytes
Specifies the size of buffer.
GSI_PARTIAL_DUMPPAGES
For internal use only.
GSI_PHYSMEM
Returns the amount of physical memory, in kilobytes, in the form of an
int.
buffer
long
nbytes
Specifies the size of the user buffer.
GSI_PHYSMEM_START
Returns the physical memory starting address as a LONG value. Physical
memory will have a nonzero starting address for any secondary partition
(that is, where partition number > 0).
buffer
long
nbytes
Specifies the size of the user buffer.
GSI_PLATFORM_NAME
Returns the name of the hardware platform. Example platform names are
AlphaServer 1000 4/200 and DEC3000-M500.
buffer
char buf[SIZE]
nbytes
Specifies the size of the user buffer.
GSI_POINTER
Returns the mouse/tablet name, if any, in the form of an ASCII string.
buffer
char pointer[size]
nbytes
Specifies the size of buffer.
GSI_PRESTO
Returns the size of nonvolatile RAM (NVRAM) present on systems with
PRESTO installed, in the form of a int. (This operator does not require
any parameter modifications.)
GSI_PROC_TYPE
Returns the processor type of the CPU on which the application process
or thread is currently running. The processor type, as defined in
<machine/cpuconf.h>, is returned in the lower 32 bits of the buffer.
The higher 32 bits are processor dependent (not always zero) and should
be masked off.
buffer
long
nbytes
Specifies the size of the user buffer.
Processor type can vary among the CPUs in a multiprocessor system that
supports CPUs of mixed types, speeds, and cache sizes. Therefore,
information returned by the GSI_PROC_TYPE operation of the getsysinfo()
does not necessarily apply to all system CPUs, only to the one on which
the process or thread is currently running. Use the TBL_PROCESSOR_INFO
operation of the table() function to get information about all the CPUs
in the system. See table(2).
GSI_PROG_ENV
Reserved for future use.
GSI_PROM_ENV
Returns the value of a specified console environment variable (for
example, bootdef_dev). If the variable is disabled due to a known
firmware problem, then errno is set to EACCES.
buffer
Specifies the location where the value is returned.
arg A string containing the name of the console environment variable.
flag
If the flag contains PROM_CONVERT_TYPE (defined in <prom.h>), then
the kernel does value conversion. Device values are converted from
their native bootstring format to a Tru64 UNIX device name. For
example, a GSI_PROM_ENV of a device variable like booted_dev will
return a string similar to dsk1 instead of SCSI 0 11 0 5 2 0 0.
Integer values are returned in a hexadecimal string format, like
0x3F.
See EXAMPLES for a code fragment that shows how to use GSI_PROM_ENV.
GSI_PROM_VAR
For internal use only by the consvar utility. See consvar(8) for
information about this utility.
GSI_READ_FRU_EEROM
For internal use only.
GSI_ROOTDEV
Returns the root device descriptor in the form of a dev_t.
buffer
long
nbytes
Specifies the size of the user buffer.
GSI_SCS_SYSID
Returns the first SCS CI port number for SCS_SYSID in the form of a
u_short.
buffer
u_short
nbytes
Specifies the size of the user buffer.
GSI_SIGQ_MAX
For internal use only by the sysconf() function. See sysconf(3) for
information about querying the _SC_SIGQUEUE_MAX variable with the
sysconf() function.
GSI_SIZER
For internal use only by the sizer utility. See sizer(8) for
information about using this utility.
GSI_STATIC_DEF
Returns an Assign_entry structure, which is defined in the <sys/conf.h>
header file.
buffer
struct aentry
nbytes
Specifies the size of the user buffer.
GSI_SWAPDEV
Obsolete operation.
GSI_SYSTEM_ID
Returns a specified system identifier string that can be reset by a
Value-Added Reseller (VAR) of the operating system software when the
kernel is built. This strings are defined in the /sys/conf/version.*
files that are included in the kernel at build time and can be
overridden by version_* entries in the /etc/sysconfigtab database that
is dynamically loaded when the system boots. See also
GSI_VERSIONSTRING, which returns a string that is partially dependent
on these definitions.
buffer
char buffer[size]
nbytes
Specifies the size of buffer.
arg Specifies one of the following:
VAR_ID_BANNER
Software banner.
VAR_ID_VENDOR
Vendor name.
VAR_ID_PRODUCT
Product name.
VAR_ID_RELEASE
Product version.
VAR_ID_AVENDOR
Abbreviated vendor name.
GSI_TIMER_MAX
For internal use only by the sysconf() function. See sysconf(3) for
information about using sysconf() to query the _SC_TIMER_MAX variable.
GSI_TNC
For internal use only by TruCluster software.
GSI_TROLLER_LAPS
Returns the number of cycles completed by the memory troller on each
RAD.
buffer long laps[rad_get_max()]
nbytes At least as many bytes as determined by
rad_get_max()*sizeof(long)
Each entry in the returned array is set to the number of laps
completed on the RAD whose number corresponds to that entry's
index. Use of rad_get_max() requires an include statement for
<numa.h>.
GSI_TROLLER_STATE
Returns the memory troller's run status. An include statement for
<sys/numa_types.h> is required for the status (state) definitions.
buffer int state
The value returned for state is one of the following:
VMMT_STATE_DISABLED
Troller is not supported.
VMMT_STATE_RUNNING
Troller is running.
VMMT_STATE_SWITCHING
Troller is either stopping or starting.
VMMT_STATE_STOPPED
Troller is not running.
nbytes At least as many bytes as determined by sizeof(int).
GSI_TTYP
Returns the major and minor numbers of the controlling terminal.
buffer
dev_t
nbytes
Specifies the size of the user buffer.
GSI_UACPARNT
Returns the parent UAC setting in buffer. This setting is determined by
the setsysinfo(2) SSIN_UACPARNT operation, which allows users to
specify their own unaligned access control (UAC) mechanism. By default,
when the operating system accesses unaligned data, it fixes the
unaligned accesses and displays a warning message so that the
programmer can make the necessary alternations in the code. Meanwhile,
however, the program behaves correctly because the operating system has
made the necessary temporary adjustments.
buffer
int
nbytes
Specifies the size of the user buffer.
See EXAMPLES for an example that uses GSI_UACPARNT.
GSI_UACPROC
Returns the process UAC setting in buffer. This setting is determined
by the setsysinfo(2) SSIN_UACPROC operation, which allows users to
specify their own unaligned access control (UAC) mechanism. By default,
when the operating system accesses unaligned data, it fixes the
unaligned accesses and displays a warning message so that the
programmer can make the necessary alternations in the code. Meanwhile,
however, the program behaves correctly because the operating system has
made the necessary temporary adjustments.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_UACSYS
Returns the system UAC setting in buffer. This setting is determined by
the setsysinfo(2) SSIN_UACSYS operation, which allows the superuser to
specify his or her own unaligned access control (UAC) mechanism. By
default, when the operating system accesses unaligned data, it fixes
the unaligned accesses and displays a warning message so that the
programmer can make the necessary alternations in the code. Meanwhile,
however, the program behaves correctly because the operating system has
made the necessary temporary adjustments.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_VERSIONSTRING
Returns the operating system version string that is constructed when
the kernel is built. This string is partly configurable by value-added
resellers of operating system software and is the same string returned
by the sizer -v command. See also GSI_SYSTEM_ID.
buffer
char
nbytes
Specifies the size of buffer.
GSI_VPTOTAL
Not implemented. This operation returns an error (EINVAL) on Alpha
platforms.
GSI_WSD_CONS
Returns the current console device, graphics (0) or alternate (1), in
the form of an int.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_WSD_TYPE
Returns the Workstation Display Type information in the form of an int.
buffer
int
nbytes
Specifies the size of the user buffer.
GSI_WSD_UNITS
Returns the Workstation Display Units information in the form of an
int. This value is bit-significant; each "on" bit indicates the
presence of a graphics head.
buffer
int
nbytes
Specifies the size of the user buffer.
RETURN VALUES
Upon successful completion, the getsysinfo system call returns a value
indicating the number of requested items stored in buffer. If the
information requested by op is not available, getsysinfo returns a (0)
zero. Otherwise, -1 is returned, and the global variable errno is set to
indicate the error.
ERRORS
[E2BIG]
The list of mapped PFNs is too large for the provided buffer.
[EFAULT]
Either buffer, start, or arg causes an illegal address to be
referenced.
[EINVAL]
The op parameter is invalid.
[EPERM]
Permission is denied for the operation requested.
[E2BIG]
The list of returned PFNs is too large for the provided buffer.
EXAMPLES
1. In the following example, the getsysinfo operation, GSI_UACPARNT,
returns the parent UAC setting in the buffer.
#include <sys/sysinfo.h>
#include <machine/hal_sysinfo.h>
.
.
.
long buf1;
.
.
.
error = getsysinfo(GSI_UACPARNT, &buf1, 4, 0, 0);
2. In the following example, the getsysinfo operation GSI_PROM_ENV
returns the value of the named console environment variable.
PROM_CONVERT_TYPE indicates that the kernel should do value conversion
and MAX_ENVIRON_LENGTH specifies the maximum length of the console
prom environment value.
#include <machine/prom.h>
char evname[]="booted_dev";
char evval[MAX_ENVIRON_LENGTH];
int start=0,status;
status = getsysinfo (GSI_PROM_ENV, evval, MAX_ENVIRON_LENGTH,
&start, evname, PROM_CONVERT_TYPE);
3. In the following example, you can print the names of all the
configured busses in the system. You call getsysinfo in a loop to
obtain all the internal bus structures. The first call to getsysinfo
passes a -1 as the value of the start parameter:
#include <sys/sysconfig.h>
#include <sys/systeminfo.h>
#include <io/common/devdriver.h>
#include <machine/hal_sysinfo.h>
main ()
{
printf("Exercising getsysinfo\n\n");
print_bus(-1);
}
print_bus(caddr_t busaddr)
{
struct bus bus;
char bus_name[20];
int status;
do {
if (getsysinfo(GSI_BUS_STRUCT, &bus, sizeof(struct bus),
busaddr, 0) == -1) {
break;
}
/*** note busaddr is now a valid bus address ***/
if (bus.alive & ALV_ALIVE) {
bzero(bus_name, sizeof(bus_name));
if ( getsysinfo(GSI_BUS_NAME, bus_name,
sizeof(bus_name), busaddr, 0) != -1) {
printf("bus_name = %s", bus_name);
printf("bus_num = %d\n", bus.bus_num);
}
/*** print all buses connected to this bus ***/
if (bus.bus_list) {
print_bus( (caddr_t)bus.bus_list);
}
}
/*** next bus in topology ***/
} while(busaddr = (caddr_t)bus.nxt_bus);
}
SEE ALSO
Functions: setsysinfo(2), table(2)
|
Index for Section 2 |
|
|
Alphabetical listing for G |
|
|
Top of page |
|