Manual Page Result
0
Command: table | Section: 2 | Source: Digital UNIX | File: table.2.gz
table(2) System Calls Manual table(2)
NAME
table - Examines or updates elements from a system table.
SYNOPSIS
#include <sys/table.h>
int table(id, index, addr, nel, lel) long id; long index;
void *addr; long nel; u_long lel;
PARAMETERS
The ID of the system table that contains the element or elements. The
index of an element within the table. The address of a struct (or a
struct array) of the appropriate type to copy the element values to (on
examine) or from (on update). The various structure layouts are de-
scribed in /usr/include/sys/table.h. A signed number that specifies
how many elements to copy and in which direction. A positive value
copies the elements from the kernel to addr. A negative value copies
the elements from addr to the kernel. The expected size of a single
element.
DESCRIPTION
The table() interface is used to examine or update one or more elements
in the system table. The system table is specified by id and the
starting element is specified by index.
The table() interface copies the element value or values to or from the
specified addr. The nel parameter specifies the number of elements to
copy, starting from index. A positive value indicates an examine oper-
ation. The elements are copied from the kernel to addr. A negative
value indicates an update operation. The elements are copied from addr
to the kernel.
The lel parameter specifies the expected element size. If multiple el-
ements are specified, successive addresses are calculated for addr by
incrementing it by lel for each element copied. If the size of a given
element is larger than lel, table() truncates excess data on an update
(from addr to the kernel) and stores only the expected size on an exam-
ine (from the kernel to addr). If the size of a given element is
smaller than lel, table() copies only the valid data on an update and
pads the element value on an examine.
The table() interface guarantees that an update operation will not
change the offset and size of any field within an element. New fields
are added only at the end of an element.
The table() interface returns a count of the elements examined or up-
dated. The id TBL_PROCINFO allows you to determine the actual number
of elements in a table before requesting any data; call table() with
lel set to zero (0) and nel to the maximum positive integer.
The id parameter must specify one of the following tables, each of
which has a structure in <sys/table.h> unless otherwise noted. The
controlling terminal device number table. The index is by process ID
and exactly one element can be requested. If the process ID is zero
(0), the current process is indexed. Only 0 and the current process ID
are supported. The element is of type dev_t as defined in
<sys/types.h>. This table is examine only. It cannot be updated. The
U-area table. The index is by process ID. See the user.h header file
for the (pseudo) struct user that is returned. The system load average
vector (pseudo) table. The index must be zero (0) and exactly one ele-
ment can be requested.
If the scale is zero (0), the load average vector is the float-
ing point variant. If the size is non-zero, the load average
vector has been scaled by the indicated factor (typically 1000)
to produce the long integer variant. This table is examine
only. It cannot be updated. The system include file version
number (pseudo) table. The index must be zero (0) and exactly
one element can be requested. The include version is a unique
integer. It identifies the layout of kernel data structures
that are imported by certain kernel-dependent programs. This
table is examine only. It cannot be updated. The process com-
mand argument table containing the saved arguments for
processes. The index is by process ID and exactly one element
can be requested. Arguments for processes other than the cur-
rent process can be accessed only by the superuser. This table
is examine only. It cannot be updated.
All the command line arguments for the process. Specify the
process id in the index argument. The addr argument points to a
buffer into which the command line arguments are placed.
The amount of buffer space needed for the command line arguments
depends on the total length of all the arguments from the
process being examined. Specify the size of the user buffer
with the lel argument. If the buffer is not large enough to ac-
cept the complete argument list, the given length of the buffer
is copied.
The arguments are placed in the buffer as a series of null-ter-
minated strings, in argument order. The maximum process count
per user ID table. The index is by process ID and exactly one
element can be requested. If the process ID is zero (0), the
current process is indexed. Only 0 and the current process ID
are supported. The element is of the short integer type.
The maximum count includes all processes running under the cur-
rent user ID even though the limit affects only the current
process and any children created with that limit in effect. The
limit can be changed only by the superuser. The process status
information table. The index is an offset into a table of
processes. Status information for processes other than the cur-
rent process can be accessed only by the superuser. This table
is examine only. It cannot be updated. Each element in the ta-
ble is a tbl_procinfo structure.
This id lets you determine the actual number of elements in a
table before you request any data. You call table with the lel
argument set to zero and the nel argument set to the maximum
positive integer. The return is the number of elements in the
table. The process environment table. The index is by process
ID and exactly one element can be requested. Environment infor-
mation for processes other than the current process can be ac-
cessed only by the superuser. This table is examine only. It
cannot be updated. The system time information table. The in-
dex must be zero (0) and exactly one element can be requested.
The system information table contains ticks of time accumulated
in the various system states: user, nice, system, and idle. The
system tick frequency and profiling (if configured) frequency
are also provided for conversion from ticks to time values.
This table is examine only. It cannot be updated. The disk
statistics table. The index is by disk number. This table is
examine only. It cannot be updated. The table is the structure
tbl_dkinfo. The system swap device list information table. This
table is examine only. It cannot be updated. If the index is
positive or zero (0), the swap device information for the entry
in the swap device list is returned.
If the index is less than zero (0), the amount of total swap
space configured and amount of total free space on the system is
returned. In addition, the flags field contains the value of
vm_swap_eager flag and the dev field contains the lazy swap de-
vice number (if lazy swap) or zero (0) (if eager swap). The TTY
statistics table. The index must be zero (0) and exactly one
element can be requested. This table is examine only. It can-
not be updated. The message queue ID table. The index is the
index into the queue array. Each element is a msqid_ds struc-
ture as defined in msqid_ds(). This table is examine only. Its
elements cannot be updated. The semaphore ID table. The index
is the index into the array of semaphore IDs. Each element is a
semid_ds structure as defined in semid_ds(). This table is ex-
amine only. Its elements cannot be updated. The shared memory
region ID table. The index is the index into the array of
shared memory region IDs. Each element is a shmid_ds structure
as defined in shmid_ds(). This table is examine only. Its ele-
ments cannot be updated. The message information table. This
table is examine only. Its elements cannot be updated. The
message information structure is defined in <sys/msg.h>.
The index is by field positions within the message information
structure, as follows: The maximum message size The maximum num-
ber of bytes on the queue The number of message queue identi-
fiers The number of system message headers The semaphore infor-
mation table. This table is examine only. It cannot be up-
dated. The semaphore information structure is defined in
<sys/sem.h>.
The index is by field position within the semaphore information
structure as follows: The number of semaphore identifiers The
maximum number of semaphores per identifier The maximum number
of operations per semop() call The maximum number of undo en-
tries per process The semaphore maximum value The maximum adjust
on exit value The shared memory information table. This table
is examine only. It cannot be updated. The shared memory in-
formation structure is defined in <sys/shm.h>.
The index is by field position within the shared memory informa-
tion structure, as follows:
The maximum shared memory region size The minimum shared memory
region size The number of shared memory identifiers The maximum
number of attached shared memory regions per process The system
interrupt information table. There is no index into the table.
This table is examine only. It cannot be updated.
RETURN VALUES
A positive return value indicates that the call succeeded for that num-
ber of elements. A return value of -1 indicates that an error oc-
curred, and an error code is stored in the global location errno.
ERRORS
The addr parameter specifies an invalid address. The table specified
by id is not defined. The index value is not valid for the specified
table. The specified table allows only an index of the current process
ID with exactly one element. Some other index or element number was
specified. An element length of zero (0) was supplied for the TBL_AR-
GUMENTS table. An attempt was made to update an examine-only table.
An attempt was made to change the maximum number of processes or the
account ID, and the caller was not the superuser. The process speci-
fied by a process ID index cannot be found.
RELATED INFORMATION
acct(2) delim off
table(2)