Content-type: text/html
Manpage of mcsysinfoc
mcsysinfoc
Section: C Library Functions (3)
Updated: 27 December 2001
Index
Return to Main Contents
NAME
mcsysinfoc - MagniComp(tm) SysInfo(tm) C API to obtain detailed system information in a platform neutral manner
SYNOPSIS
cc -I/opt/sysinfo/include [ options ] file [ ... ] -L/opt/sysinfo/lib/platform/name -lmcsysinfo
#include <mcsysinfo.h>
MCSIquery_t Query;
Query.Op = MCSIOP_PROGRAM;
Query.In = "ProgramName";
Query.InSize = strlen((char *)Query.In);
int mcSysInfo(&Query);
McsiOpt_t Opt;
Opt->Flags = Flags;
Query.Op = MCSIOP_SETOPTS;
Query.In = Opt;
Query.InSize = sizeof(McsiOpt_t);
int mcSysInfo(&Query);
Query.Op = MCSIOP_CREATE;
Query.Cmd = MCCMD;
int mcSysInfo(&Query);
Query.Op = MCSIOP_DESTROY;
int mcSysInfo(&Query);
DESCRIPTION
The
mcSysInfo()
C API is part of
SysInfo(tm)
from
MagniComp(tm).
It
allows the caller to obtain system information about the
local system's configuration
via a platform neutral interface.
Data is returned in platform nuetral data structures.
This allows
applications to be built using
mcSysInfo()
which are platform neutral.
Available detailed system data includes general configuration,
installed hardware, software,
disk partitioning, system configuration, and
kernel parameters.
The
mcsysinfoperl(3)
perl(1)
object API may also be used if
a
perl(1)
interface is required.
The MagniComp
sysinfo(1)
command uses the
mcsysinfo(3)
API to obtain system configuration data and present it in human and
machine readable formats.
The
Query.Op
parameter controls the basic operation performed by
mcSysInfo().
The following values are supported:
-
- MCSIOP_PROGRAM
-
When
Query.Op
is set to
MCSIOP_PROGRAM
then
Query.In
should point at a string naming the calling program
and
Query.InSize
should be set to the size of
Query.In
in bytes.
This name is used by
mcSysInfo()
when displaying error and debug messages.
- MCSIOP_SETOPTS
-
When
Query.Op
is set to
MCSIOP_SETOPTS
then
Query.In
should be a pointer to a
McsiOpt_t
buffer
and
Query.InSize
should be the size of
Query.In
in bytes.
This command is used to pass options to
mcSysInfo()
for future calls.
- MCSIOP_CREATE
-
When
Query.Op
is set to
MCSIOP_CREATE,
data is retrieved from the local system in platform specific manner and
placed in allocated structures in the location
indicated by
Query.Out.
- MCSIOP_DESTROY
-
When
Query.Op
is set to
MCSIOP_DESTROY,
the data located at the address indicated by
Query.Out
is destroyed (unallocated).
The
Query
is defined as follows:
- /*
* Query type for mcSysInfo() calls
*/
typedef struct {
/* Caller's Input */
int Op; /* MCSIOP_* operator */
int Cmd; /* MCSI_* command to perform */
uint_t Flags; /* Option Flags */
char **SearchExp; /* Search Expression */
Opaque_t In; /* Ptr to Input */
size_t InSize; /* Size of In */
/* Results */
Opaque_t Out; /* Ptr to Output */
size_t OutSize; /* Size of Out */
} MCSIquery_t;
The members of
MCSIquery_t
are defined as follows:
- Op
-
Specifies what operation to perform on
Cmd.
Valid values are as follows:
-
- MCSIOP_CREATE
-
(Default)
Obtain the data requested by
Cmd
and return the result in the
Out
and
OutSize
parameters.
The data located at
Out
is allocated when this function is called and should be destroyed
(unallocated) by calling
mcSysInfo()
with
Op
set to
MCSIOP_DESTROY
(see below).
- MCSIOP_DESTROY
-
Destroy (unallocate) the data located at address
Out.
- Cmd
-
Specifies which command to perform. See below for the valid list of commands.
- Flags
-
Flags
is a set of bit flags which enable different options as specified by
the
following values:
-
- MCSIF_DATA
-
(Default)
This option causes data to be returned to the
Out
buffer in the form requiring the least amount of additional parsing by
the calling function as possible.
The actual form varies according to the
Cmd
that was specified.
- MCSIF_STRING
-
This option causes data to be returned in string form readying for human
display whenever possible.
This option is only available for specific
Cmd
values as specified below.
- SearchExp
-
An array of strings to use to limit the data returned in
Out.
Only the following commands support this option:
-
- MCSI_DEVTREE
-
Used to specify a list of names which are checked against the device's
Name,
Aliases,
and
AltName
values.
- In
-
Used to provide input to certain operations such as MCSIOP_PROGRAM.
- InSize
-
Size of
In
in bytes.
- Out
-
All data is returned in an allocated buffer at the location specified by
the
Out
parameter
The contents of the buffer
vary according to the
Cmd
specified.
See below for more details.
- OutSize
-
The size (length) of data located in the
Out
location is
specified by
OutSize
where appropriate.
The
OutSize
data is not guarenteed to by the full size of the allocated buffer, but
is guaranteed to always be greater than zero when the call succeeds and
Out
points to a valid buffer.
See below for more details.
The valid values for
Cmd
are as follows:
-
- MCSI_HOSTNAME
-
Obtain the system's canonical hostname.
-
- Out
-
Points at a
char *
buffer.
e.g. "sunworld".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_HOSTALIASES
-
Obtain a list of host aliases for the local host.
These are obtained via the
gethostbyname(3)
call from the
h_aliases
parameter of
struct hostent.
-
- Out
-
When
MCSIF_DATA
is set in
Flags
(the default)
Out
is a pointer to a
char **
array of aliases.
The last entry in this array will always be NULL.
When
MCSIF_STRING
is set in
Flags
Out
is a pointer to a
char *
string which contains a space seperated list of aliases.
e.g. "fred fred2 fred3".
- OutSize
-
When
MCSIF_DATA
is set in
Flags
(the default)
OutSize
indicates the number of entries in the array located at the
Out
location.
When
MCSIF_STRING
is set in
Flags
OutSize
indicates the length of the buffer.
- MCSI_HOSTADDRS
-
Obtain a list of the local hosts IP addresses.
-
- Out
-
When
MCSIF_DATA
is set in
Flags
(the default)
Out
is a pointer to a
char **
array of IP addresses.
The last entry in this array will always be NULL.
When
MCSIF_STRING
is set in
Flags
Out
is a pointer to a
char *
string which contains a space seperated list of IP addresses.
e.g. "129.152.1.1 129.152.20.1 192.5.5.44".
- OutSize
-
When
MCSIF_DATA
is set in
Flags
(the default)
OutSize
indicates the number of entries in the array located at the
Out
location.
When
MCSIF_STRING
is set in
Flags
OutSize
indicates the length of the buffer.
- MCSI_HOSTID
-
Obtain the host identifier.
-
- Out
-
Points at a
char *
buffer.
e.g. "8025asf3".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_SERIAL
-
Obtain the host's serial number.
-
- Out
-
Points at a
char *
buffer.
e.g. "FF5443139".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_MANSHORT
-
Obtain the short name of the host's manufacturer.
-
- Out
-
Points at a
char *
buffer.
e.g. "Sun".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_MANLONG
-
Obtain the long name of the host's manufacturer.
-
- Out
-
Points at a
char *
buffer.
e.g. "Sun Microsystems, Inc."
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_MAN
-
Obtain the combined short and long name of the host's manufacturer.
-
- Out
-
Points at a
char *
buffer.
e.g. "Sun (Sun Microsystems, Inc.)".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_MODEL
-
Obtain the host's model name.
-
- Out
-
Points at a
char *
buffer.
e.g. "Ultra 10 Model 300".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_NUMCPU
-
Obtain the number of physical CPUs which are installed and enabled.
-
- Out
-
Points at a
char *
buffer.
e.g. "2".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_CPUTYPE
-
Obtain the type of CPU used in the system (e.g. SPARCv9, Pentium, etc.).
-
- Out
-
Points at a
char *
buffer.
e.g. "sparcv9+vis".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_APPARCH
-
Obtain the application architecture of the system (e.g. SPARC, x86, etc.).
-
- Out
-
Points at a
char *
buffer.
e.g. "sparc".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_KERNARCH
-
Obtain the kernel architecture of the system (e.g. sun4u, sun4m, etc.).
-
- Out
-
Points at a
char *
buffer.
e.g. "sun4u".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_KERNBITS
-
Obtain the kernel bit size of the system (e.g. 32, 64)
-
- Out
-
Points at a
char *
buffer.
e.g. "32".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_OSNAME
-
Obtain the name of the operating system.
-
- Out
-
Points at a
char *
buffer.
e.g. "SunOS".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_OSVER
-
Obtain the version of the operating system (e.g. 5.6, 4.2.1, etc.).
-
- Out
-
Points at a
char *
buffer.
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_OSDIST
-
Obtain the distribution name of the operating system (e.g. Solaris 2.6 5/98,
S.u.S.e. 6.1, etc.).
-
- Out
-
Points at a
char *
buffer.
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_KERNVER
-
Obtain the version of the kernel which is installed (e.g. SunOS Release 5.6 Version Generic_105182-05 [UNIX(R) System V Release 4.0])
-
- Out
-
Points at a
char *
buffer.
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_BOOTTIME
-
Obtain the time that the system was last booted.
-
- Out
-
Points at a
char *
buffer.
e.g "Sat Jun 19 11:55:41 1999".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_CURRENTTIME
-
Obtain the current (local) system time.
-
- Out
-
Points at a
char *
buffer.
e.g "Sat Jun 19 11:55:41 1999".
- OutSize
-
Indicates the length of the
Out
buffer.
- MCSI_DEVTREE
-
Obtain a list,
possible in a hierarchical tree,
of physical (hardware) devices present on the system.
-
- Out
-
Pointer to a
DevInfo_t
buffer.
See
DevInfo_t
below for details.
- OutSize
-
Is 1 or more if
Out
contains valid data.
- MCSI_KERNELVAR
-
Obtain a list of kernel variables, their description, and their values as
presently configured.
-
- Out
-
Points at a linked list of type
Define_t
which contains data as follows:
-
- KeyStr
-
The name of the kernel variable.
- ValStr1
-
The type of variable this is (boolean, int, long, string).
- ValStr2
-
Descriptive text of what this variable is for.
- ValStr3
-
The value obtained from the kernel.
The value is NULL if the information was not available from the
kernel.
- OutSize
-
- OutSize
-
The number of valid entries in the linked list at location
Out.
- MCSI_SYSCONF
-
Obtain a list of system configuration values via the
sysconf(3)
interface.
-
- Out
-
Points at a linked list of type
Define_t
which contains data as follows:
-
- KeyStr
-
The name of the variable.
- ValStr1
-
The type of variable this is (boolean, int, long, string).
- ValStr2
-
Descriptive text of what this variable is for.
- ValStr3
-
The value obtained from the kernel converted to a string.
The value is NULL if the information was not available from the
kernel.
- ValInt1
-
The value obtained from the kernel in integer form.
The value is less than 0 if the data was not retrieved successfully.
- OutSize
-
The number of valid entries in the linked list at location
Out.
- MCSI_SOFTINFO
-
Obtain a list, possible in a hierarchical tree,
of software and software packages which are installed on
the system.
-
- Out
-
Pointer to a
SoftInfo_t
buffer.
See
SoftInfo_t
below for details.
- OutSize
-
Is 1 or more if
Out
contains valid data.
- MCSI_PARTITION
-
Obtain a list, possible in a hierarchical tree,
of disk partitions defined on this system.
-
- Out
-
Pointer to a
PartInfo_t
buffer.
See
PartInfo_t
below for details.
- OutSize
-
Is 1 or more if
Out
contains valid data.
DevInfo_t
The primary device information data type is
DevInfo_t
which is defined as:
- struct _DevInfo {
char *Name; /* Name (e.g. cgtwo0) */
char *Driver; /* Driver Name (e.g. cgtwo) */
char **Aliases; /* Alias Names */
char *AltName; /* Alt name */
char **Files; /* Device files */
int Type; /* Device type (eg DT_TAPE) */
int ClassType; /* Class type (eg SCSI,IPI) */
char *Vendor; /* Hardware Vendor */
char *Model; /* Model */
char *ModelDesc; /* eg SCSI, 4.0GB, etc. */
char *Serial; /* Serial Number */
char *Capacity; /* Capacity of device */
char *Speed; /* Speed of device */
char *Revision; /* Revision Info */
DevDesc_t *DescList; /* Device Description */
int Unit; /* Unit number */
int NodeID; /* ID of this node */
char *MasterName; /* Name of master */
void *DevSpec; /* Device specific info */
struct _DevInfo *Master; /* Device controller */
struct _DevInfo *Slaves; /* Devices on this device */
struct _DevInfo *Next; /* Pointer to next device */
/* Internal use only */
void *OSdata; /* Data from OS */
/* Obsolete */
int Addr; /* Address */
int Prio; /* Priority */
int Vec; /* Vector */
};
typedef struct _DevInfo DevInfo_t;
The members of
DevInfo_t
are defined as follows:
- Name
-
The devices name, inclusive of it's unit number. e.g.
sd0.
If the device name ends in a digit, then the slash ('/')
character followed by the unit number is appended
to clarify the name. e.g.
pgx32/0
- Driver
-
The name of the device driver for this device. This is typically, but
not always, the value of
Name
without the unit.
e.g. For a device with a
Name
of
sd0
the value of
Driver
would be
sd
- Aliases
-
An array of alternate values for
Names
by which this device may be addressed.
e.g. A device with
Name
of
dwis0
might have an alias such
as
pci1001,2003 .
- AltName
-
This member is depreciated by the
Aliases
member.
When set, it contains a single alternate name by which this
device is known.
- Files
-
An array (list) of device (block, special) files by which this device
might be addressed.
- Type
-
A numeric value which classes the type of device.
Valid numeric values are defined by the DT_* entries in <mcsysinfo.h>.
- ClassType
-
This value defines a classification of this device within it's
Type.
The valid values for
ClassType
are specified by the CT_* entries in <mcsysinfo.h>.
e.g. A SCSI disk device would have a
Type
of
DT_DISK
and a
ClassType
value of
CT_SCSI .
- Vendor
-
The name of the vendor who sold or manufactured this device.
- Model
-
The model name of the device.
- ModelDesc
-
A further description of the model which varies by device and
operating system.
- Serial
-
The devices serial number.
- Capacity
-
A string containing the capacity (size) of a device in device specific units.
For a
DT_DISKDRIVE
this will typically be a something like
32 GB.
- Speed
-
A string containing the speed of a device in device specific units.
For a
DT_DISKDRIVE
this might be
33 MB/s.
For a
DT_PROCESSOR
the speed would indicate the clock speed such as
850 MHz.
- Revision
-
The revision of the device.
- DescList
-
A list of descriptive information that is not otherwise specified in
DevInfo_t.
This list varies greatly by operating system and specific hardware platforms
and models.
There is no guarentee that the
DescList
information will remain constant from model to model, even on the same
version of an operating system.
- Unit
-
The device's unit number. This is usually, but not always, the physically
assigned unit number of the device.
- NodeID
-
Some operating systems and hardware platforms
(e.g. Solaris+SPARC+OpenBootProm)
assign devices soft, unique identifiers for tracking
purposes inside the kernel.
- MasterName
-
The name of our master (parent) device. This is used if
no
Master
link is available.
The
Master
data should always be used whenever available.
- Master
-
A pointer to the master (parent) for this device.
- Slaves
-
A pointer to a list of any slave (child) devices which belong to this
device.
- Next
-
A pointer to any sibling devices which all belong to the same
Master.
- DevSpec
-
The address to a buffer containing information specific to the device
Type .
The following device
Type
values normally provide data via
DevSpec :
-
- DT_CPU
-
Pointer to a
CpuInfo_t
entry (see below).
- DT_DISK
-
Pointer to a
DiskDrive_t
entry.
- DT_FRAMEBUFFER
-
Pointer to a
FrameBuffer_t
entry.
- DT_NETIF
-
Pointer to a
NetIF_t
entry.
- DT_MONITOR
-
Pointer to a
Monitor_t
entry.
- Addr
-
This value is obsolete.
- Prio
-
This value is obsolete.
- Vec
-
This value is obsolete.
CpuInfo_t
The
CpuInfo_t
type specifies CPU information.
It is usually available via
DevInfo_t.DevSpec
when
DevInfo_t.Type
is set to
DT_CPU.
The definetion of
CpuInfo_t
is:
- struct _CpuInfo {
char *Man; /* Manufacturer */
char *Model; /* Model of CPU */
char *Arch; /* Architecture Name */
char *ArchVer; /* Architecture Version */
char *Serial; /* Serial# */
int BitSize; /* Bits 32/64/... */
Large_t Speed; /* Clock Speed in Mhz */
CacheInfo_t *L1iCache; /* L1 Instruction Cache */
CacheInfo_t *L1dCache; /* L1 Data Cache */
CacheInfo_t *L2Cache; /* L2 Cache */
/* General features */
Bool_t HasFPU; /* Has FPU */
int Stepping; /* Stepping */
Desc_t *Features; /* List of features */
};
typedef struct _CpuInfo CpuInfo_t;
The members of
CpuInfo_t
are defined as follows:
- Man
-
The name of the manufacturer of the CPU.
- Model
-
The model of CPU.
- Arch
-
The architecture of the CPU.
- ArchVer
-
The architecture version of the CPU.
- Serial
-
The serial number of the CPU.
- BitSize
-
The addressable bitsize of the CPU.
e.g.
32
or
64
- Speed
-
The clock speed of the CPU in mega-hertz.
- L1iCache
-
A
CacheInfo_t
entry describing the L1 instruction cache.
- L1dCache
-
A
CacheInfo_t
entry describing the L1 data cache.
- L2Cache
-
A
CacheInfo_t
entry describing the L2 cache.
- HasFPU
-
Boolean value indicating where the CPU has an onboard Floating Point Unit.
- Stepping
-
The CPU's stepping value.
- Features
-
A list of otherwise unstructured features supported by the CPU.
CacheInfo_t
The
CacheInfo_t
type specifies CPU cache information.
This type is used by
CpuInfo_t
to define cache information for varies types of caches associated with
a CPU.
The definetion of
CacheInfo_t
is as follows:
-
/*
* Cache Information type
*/
typedef struct {
int Enabled; /* Is this cache enabled? */
int Type; /* Type of Cache */
int Level; /* Level=1, 2, ... */
Large_t Size; /* Size (bytes) */
int Speed; /* Speed (ns) */
int Assoc; /* Associativity */
int Lines; /* # Lines */
int LineSize; /* Line Size (bytes)*/
int TLB; /* # TLB Entries */
int TLBAssoc; /* # TLB Associativity */
int Socketed; /* Is cache socketed? */
char *Location; /* Location relative to CPU */
char *SramType; /* SRAM Type */
char *EccType; /* ECC Type */
char *Mode; /* Mode (Write Back/Through..*/
} CacheInfo_t;
The members of
CacheInfo_t
are defined as follows:
- Enabled
-
A boolean indicating whether the cache is enabled (1) or not (0).
- Type
-
An integer which
specifies the type of cache.
The value should be one of the following:
-
- CACHE_TYPE_INST
-
Instruction cache
- CACHE_TYPE_DATA
-
Data cache
- CACHE_TYPE_UNIFIED
-
Unified cache
- Level
-
An integer which specifies the level of cache.
i.e.
1
is an L1 cache,
2
is an L2 cache,
etc.
A value of
0
indicates an unknown level.
- Size
-
A
Large_t
number which specifies
the size of the cache in bytes.
- Speed
-
An integer which specifies
the speed of the cache in
ns.
- Assoc
-
A number which specifies the
Associativity value.
- Lines
-
The number of lines in the cache.
- LineSize
-
The size of each line in the cache in bytes.
- TLB
-
The number of TLB entries.
- TLBAssoc
-
The number of TLB associativity.
- Socketed
-
A value of
1
indicates the cache is socketed.
A value of
0
indicates the cache is not socketed.
A value of
-1
indicates an unknown state.
- Location
-
A string describing the location of the cache.
- SramType
-
A string describing the SRAM type.
- EccType
-
A string describing the type of error correction used.
- Mode
-
A string describing the mode of cache.
i.e.
Write Back,
etc.
SoftInfo_t
The software information data type is
SoftInfo_t
which is defined as:
- struct _SoftInfo {
char *EntryType; /* Entry Type MC_SET_*_S */
int EntryTypeNum; /* Numeric EntryType */
char *Name; /* Name */
char *Version; /* Version */
char *Revision; /* Revision for this Version */
char *Desc; /* Description of software */
char *DescVerbose; /* Verbose Description */
char *URL; /* Product URL */
char *License; /* Product License */
char *Copyright; /* Product Copyright */
char *Category; /* Category pkg belongs to */
char *SubCategory; /* Sub Category */
char *OSname; /* OS name runs on */
char *OSversion; /* OS version runs on */
char *Arch; /* Architecture runs on */
char *ISArch; /* Instruct. Set Arch. */
char *InstDate; /* Installation Date */
char *BuildDate; /* Build Date */
char *ProdStamp; /* Production Stamp */
char *BaseDir; /* Base Dir for files */
Large_t DiskUsage; /* Space used by FileList */
SoftFileList_t *FileList; /* List of Files */
Desc_t *DescList; /* Misc Descriptions */
/* Vendor's info */
char *VendorName; /* Name of vendor */
char *VendorEmail; /* Email of vendor */
char *VendorPhone; /* Phone of vendor */
char *VendorStock; /* Vendor's Stock # for Pkg */
/* Tree Links */
struct _SoftInfo *Master; /* (Up) Our parent */
struct _SoftInfo *Slaves; /* (Down) Children */
struct _SoftInfo *Next; /* (Side) Siblings */
};
typedef struct _SoftInfo SoftInfo_t;
The members of
SoftInfo_t
are defined below and except where noted, the string formats
vary from OS to OS and package to package:
- EntryType
-
A string which indicates the type of entry this SoftInfo_t node represents.
Valid values are defined by the following constants:
-
- MC_SET_PKG_S
-
Package - this entry represents a collection of installed files/directories.
This is the lowest level
EntryType.
- MC_SET_PROD_S
-
Product - this entry represents a collection of packages (MC_SET_PKG_S).
It normally acts as a parent node in a hierarchical tree of software
packages and
usually does not include any attributes other than
Slaves
and
Next .
- EntryTypeNum
-
The corresponding numeric value for
EntryType.
The following constants are valid values:
-
- MC_SET_PKG
-
Numeric value for
MC_SET_PKG_S.
- MC_SET_PROD
-
Numeric value for
MC_SET_PROD_S.
- Name
-
A string which describes the package (if
EntryType
==
MC_SET_PKG )
or the product (if
EntryType
==
MC_SET_PROD ).
e.g.
SUNWcsr
- Version
-
A string which indicates the version of this package or product.
e.g.
5.1
- Revision
-
A string indicatating the revision of this package.
e.g.
2000-02-03
- Desc
-
A short string without any newline (\n) characters which
provides a description of this package.
e.g.
Core Required Files
- DescVerbose
-
A verbose string, usually containing multiple lines (\n),
The core files in this package are required by all other packages.
- URL
-
A Universal Resource Locatator (URL) for locating more information about
this package or product.
e.g.
http://www.sun.com/solaris
- License
-
A string naming or describing the licensing terms of this package or product.
e.g.
GPL
or
Free to everyone with no restrictions
- Copyright
-
A string naming or describing the copyright terms of this package or product.
The string may include embedded newline characters.
e.g.
(c)Copyright 1901-2101 Big Software Company
- Category
-
A string describing the primary category this package or product belongs to.
e.g.
system
- SubCategory
-
A string describing the secondary category, often within
Category,
that this package or product belongs to.
e.g.
openwindows
- OSname
-
A string containing the name of the operating system this package runs on.
e.g.
Linux
- OSversion
-
A string containing the version of the operating system this package runs on.
e.g.
2.2.1
- Arch
-
A string naming the CPU architecture which this package runs on.
e.g.
x86
- ISArch
-
A string naming the Instruction Set Architecture which this package runs on.
The ISA usually represents a more specific value than
Arch.
e.g.
Pentium-III
- InstDate
-
A string containing the date this package was installed.
e.g.
Feb 02 1999 20:43
- BuildDate
-
A string containing the date this package was built.
e.g.
1/15/98
- ProdStamp
-
A string generated whent he package was built to identify the
production of the package.
e.g.
buttercup19980904173114
- BaseDir
-
A string naming the base directory under which package files are installed.
e.g.
/usr
- DiskUsage
-
The number of bytes of disk space the installed
package consumes.
- DescList
-
A linked list of miscellaneous descriptions for any other information
which is not categorized.
- VendorName
-
The name of the vendor who created or distributes the package.
- VendorEmail
-
The vendor's email address.
- VendorPhone
-
The vendor's phone number.
- VendorStock
-
The vendor's stock number for this package.
- Master
-
The parent (master) node for this package in the SoftInfo_t tree.
- Slaves
-
The slave (child) nodes for this package.
- Next
-
The peer nodes in the SoftInfo_t tree.
- FileList
-
A list of files associated with this package.
See
SoftFileList_t
for more information.
SoftFileList_t
The
SoftFileList_t
type defines software file information usually in a linked list.
It is defined as follows:
- /*
* Software File Data
*/
struct _SoftFileData {
int Type; /* File, dir, symlink, etc */
char *Path; /* Path to file */
char *LinkTo; /* Link To what */
Large_t FileSize; /* Size of file */
char *MD5; /* MD5 checksum */
char *CheckSum; /* Platform specific checksum */
char **PkgNames; /* List of used by Pkgs */
struct _SoftFileData *Next; /* Next entry */
};
typedef struct _SoftFileData SoftFileData_t;
/*
* List of SoftFileData_t entries
*/
struct _SoftFileList {
SoftFileData_t *FileData; /* Ptr to FileData entry */
struct _SoftFileList *Next; /* Next entry in our list */
};
typedef struct _SoftFileList SoftFileList_t;
/*
* SoftFile Types for SoftFileData.Type
*/
#define SFT_FILE 1 /* Plain file */
#define SFT_FILE_S "File"
#define SFT_HLINK 2 /* Hard Link */
#define SFT_HLINK_S "Hard-Link"
#define SFT_SLINK 3 /* Soft Link */
#define SFT_SLINK_S "Symbolic-Link"
#define SFT_DIR 4 /* Directory */
#define SFT_DIR_S "Directory"
#define SFT_CDEV 5 /* Device File */
#define SFT_CDEV_S "Character-Device"
#define SFT_BDEV 6 /* Device File */
#define SFT_BDEV_S "Block-Device"
The list of files associated with a package is defined by the
SoftFileList_t
type.
The actual file data is defined in
SoftFileList_t->FileData.
The members of
SoftFileData_t
are defined as follows:
- Type
-
Indicates the type of file this is.
The valid values are defined by the following constants:
-
- SFT_FILE
-
A regular file.
- SFT_HLINK
-
A hard link.
- SFT_SLINK
-
A symbolic link.
- SFT_DIR
-
A directory.
- SFT_CDEV
-
A character special device file.
- SFT_BDEV
-
A block special device file.
- Path
-
The pathname of this entry.
e.g.
/bin/cp
- LinkTo
-
If
Type
is
SFT_HLINK
or
SFT_SLINK
then this variable names the path that
Path
is linked to.
- FileSize
-
The size of this file.
Usually only valid if
Type
is
SFT_FILE.
- MD5
-
The MD5 checksum of the file.
- CheckSum
-
The platform specific checksum of the file.
- PkgNames
-
A list of package names this file belongs to.
PartInfo_t
The
PartInfo_t
type defined a partition entry as follows:
- /*
* Partition Information (CN_PARTITION)
*/
struct _PartInfo {
char *Title; /* Describes this entry */
char *DevPath; /* Dev Path e.g. /dev/dsk/c0t0s1 */
char *DevPathRaw; /* Raw Dev Path e.g. /dev/rdsk/c0t0s1 */
char *DevName; /* Dev Name e.g. c0t0 */
char *BaseName; /* c0t0s1 */
char *Name; /* Name e.g. s1 */
int Num; /* Part # for this disk e.g. 1 */
char *Type; /* Type e.g. ufs */
char *TypeDesc; /* Description of Type */
u_int TypeNum; /* Numeric value of Type if any */
char *UsageStatus; /* String value for Usage (below) */
char *MntName; /* Mount Name e.g. /usr */
char **MntOpts; /* Mount Options e.g. rw,quota */
Large_t Size; /* Size of partition (MB) */
Large_t AmtUsed; /* Amt of space currently used (MB)*/
int SecSize; /* Size of 1 sector */
Large_t StartSect; /* Starting Sector # */
Large_t EndSect; /* Ending Sector # */
Large_t NumSect; /* Number of Sectors (size) */
/* Internal use only */
int Usage; /* How used, one of PIU_* */
struct _PartInfo *Next;
};
typedef struct _PartInfo PartInfo_t;
The members of
PartInfo_t
are defined as follows:
- Title
-
A string which helps identify this entry.
- DevPath
-
A string which names the pathname of the
(block) device which represents this
partition.
e.g.
/dev/dsk/c0t0d0s3
- DevPathRaw
-
A string which names the pathname of the raw (character)
device which represents this
partition.
e.g.
/dev/rdsk/c0t0d0s3
- DevName
-
A string containing the kernel's name for this device.
e.g.
sd0
- BaseName
-
The base name of
DevPath.
e.g.
c0t0d0s3
- Name
-
Name of the parititon
e.g.
s3
- Num
-
The numeric number of this partition which corresponds to
Name.
e.g.
3
- Type
-
A short string, usually a single word,
describing the type of partition this is.
e.g.
ufs
- TypeDesc
-
A more verbose description of the parititoin type.
e.g.
Unix File System
- TypeNum
-
The numeric type identifier of this partition as described by
Type
and
TypeDesc.
- UsageStatus
-
A string containing information on how this partition is used.
e.g.
For a UFS filesystem this would contain a mount point such as
/usr
- MntName
-
The name of the mount point.
e.g.
/usr
- MntOpts
-
An array of strings containing the options used by the OS to mount this
partition.
e.g.
rw
quota
logging
- Size
-
The total size, in MB, of this partition.
- AmtUsed
-
The amount of space, in MB, this partition currently consumes.
- SecSize
-
The number of bytes in 1 sector (usually 512).
- StartSect
-
The location of the first, starting sector of this partition relative to the
entire disk.
- EndSect
-
The location of the last sector of this partition relative to the entire disk.
- NumSect
-
The number of sectors (EndSect - StartSect) this partition uses.
RETURN VALUES
Upon successful completion,
mcSysInfo()
returns 0 and output data is
available in the buffer indicated by the
Out
parameter.
Upon error,
mcSysInfo()
returns -1.
NOTES
File descriptors are opened for certain
MCSI_*
commands
when using the
MCSIOP_CREATE
operator depending upon the platform upon which
mcSysInfo()
is operating on.
All file descriptors which are opened by the platform specific
functions of
mcSysInfo()
are closed before returning.
FILES
/opt/sysinfo/config - Config files read at runtime
SEE ALSO
sysinfo(1)
mcsysinfoperl(3)
URL
http://www.MagniComp.com/sysinfo
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- DevInfo_t
-
- CpuInfo_t
-
- CacheInfo_t
-
- SoftInfo_t
-
- SoftFileList_t
-
- PartInfo_t
-
- RETURN VALUES
-
- NOTES
-
- FILES
-
- SEE ALSO
-
- URL
-
This document was created by
man2html,
using the manual pages.
Time: 16:34:05 GMT, April 25, 2002