unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



getsysinfo(2)							getsysinfo(2)



NAME

  getsysinfo - Gets system information

SYNOPSIS

  #include <&lt;sys/sysinfo.h>&gt;
  #include <&lt;machine/hal_sysinfo.h>&gt;

  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 <&lt;sys/sysinfo.h>&gt; and <&lt;machine/hal_sysinfo.h>&gt; 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 succes-
      sive 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.

      buffer
	  unsigned int buf[SIZE]

	  Depending on the value of nbytes, returns either a list or a count
	  of mapped out	PFNs.

      nbytes
	  unsigned int size

	  Must be at least 4.

	  When set to 4, the count of mapped out PFNs is returned to buffer.

	  When set to 8	or higher, the list of mapped out PFNs is returned to
	  buffer. If the provided buffer is too	small to contain the entire
	  list of mapped out PFNs, the count of	mapped out PFNs	is returned
	  to buffer and	errno is set to	[E2BIG].

  GSI_BOOTCTLR
      Obsolete operation specific to a controller type that is no longer sup-
      ported.

  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
      <&lt;io/common/devdriver.h>&gt;.

      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	<&lt;sys/systm.h>&gt;

      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 get-
	   sysinfo() 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 phy-
	   sical 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
      <&lt;io/common/devdriver.h>&gt;.

      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
      <&lt;sys/sysconfig.h>&gt;. (This operator	does require any parameter modifica-
      tions.)

  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
      <&lt;io/common/devdriver.h>&gt;.

      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	dev-
      ice  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
      <&lt;sys/sysinfo.h>&gt;) 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 pro-
      cess. 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 <&lt;machine/console.h>&gt;.

      buffer
	  struct firmware_rev

      nbytes
	  Specifies the	size of	buffer,	which must be >&gt;= 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
      <&lt;machine/rpb.h>&gt;

      buffer
	  struct rpb hwrpb

      nbytes
	  Specifies the	size of	buffer.

  GSI_GRAPHIC_RES
      Returns information concerning the graphics screens present in the sys-
      tem. 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 sys-
      tem. 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 sys-
	  tem, 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	sys-
      tem 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	sys-
      tem 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	sys-
      tem 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
      <&lt;machine/fpu.h>&gt; (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 <&lt;sys/lmf.h>&gt; and <&lt;sys/lmfklic.h>&gt; 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, get-
      sysinfo()	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
      <&lt;machine/cpuconf.h>&gt;, 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 <&lt;prom.h>&gt;),	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 infor-
      mation 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 informa-
      tion about using this utility.

  GSI_STATIC_DEF
      Returns an Assign_entry structure, which is defined in the <&lt;sys/conf.h>&gt;
      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 overrid-
      den 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 defini-
      tions.

      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_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 program-
      mer can make the necessary alternations in the code. Meanwhile, how-
      ever, 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 program-
      mer can make the necessary alternations in the code. Meanwhile, how-
      ever, 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	pro-
      grammer 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 pres-
      ence 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 informa-
  tion requested by op is not available, getsysinfo returns a (0) zero.	Oth-
  erwise, -1 is	returned, and the global variable errno	is set to indicate
  the error.

ERRORS

  [EFAULT]
      Either buffer, start, or arg causes an illegal address to	be refer-
      enced.

  [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 config-
       ured 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&bsol;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)