This is defs.h in view mode; [Download] [Up]
/*
* Copyright (c) 1992 Michael A. Cooper.
* This software may be freely distributed provided it is not sold for
* profit and the author is credited appropriately.
*/
/*
* $Header: /src/common/usc/bin/sysinfo/RCS/defs.h,v 1.39 1992/12/12 23:48:21 mcooper Exp mcooper $
*
* $Log: defs.h,v $
* Revision 1.39 1992/12/12 23:48:21 mcooper
* Add DDT_NOUNIT.
*
* Revision 1.38 1992/12/02 05:02:32 mcooper
* Move ddt_type to make DEVDATATAB easier to structure.
*
* Revision 1.37 1992/11/30 01:16:02 mcooper
* Replace dv_desc[23] by dv_desclist.
*
* Revision 1.36 1992/11/24 04:12:39 mcooper
* Update KVM declarations.
*
* Revision 1.35 1992/11/24 02:03:05 mcooper
* Move version info to version.h.
*
* Revision 1.34 1992/11/23 23:23:34 mcooper
* Add define of KBYTES.
*
* Revision 1.33 1992/11/21 04:33:11 mcooper
* Add dv_desc[23] fields for more description information.
*
* Revision 1.32 1992/08/13 04:48:09 mcooper
* Add DT_NONE.
*
* Revision 1.31 1992/07/31 21:09:35 mcooper
* Add support for doing GetDevDataTab() compares optionally
* by length using the DDT_LENCMP flag in DEVDATATAB.
*
* Revision 1.30 1992/04/26 23:32:06 mcooper
* Add Copyright notice
*
* Revision 1.29 1992/04/17 23:27:51 mcooper
* Add support for ROM Version information (Sun only for now).
*
* Revision 1.28 1992/04/17 01:07:59 mcooper
* More de-linting
*
* Revision 1.27 1992/04/16 02:25:39 mcooper
* Bug fixes, de-linting, and other changes found with CodeCenter.
*
* Revision 1.26 1992/04/15 02:00:36 mcooper
* Major re-write and simplification of command line options.
*
* Revision 1.25 1992/03/31 18:58:16 mcooper
* Change "verbose" to "Show".
*
* Revision 1.24 1992/03/31 03:10:17 mcooper
* Put frontend macro around CheckNlist() to avoid
* broken things in Ultrix.
*
* Revision 1.23 1992/03/31 00:34:59 mcooper
* Add new GetNlName() and GetNlNamePtr() macros.
*
* Revision 1.22 1992/03/31 00:15:55 mcooper
* Make GetNlName() global.
*
* Revision 1.21 1992/03/28 22:01:16 mcooper
* Add dd_slave to DEVDATA.
*
* Revision 1.20 1992/03/25 03:31:28 mcooper
* Fix verbose flags.
*
* Revision 1.19 1992/03/25 03:18:52 mcooper
* Convert verbosity levels to bit flags.
*
* Revision 1.18 1992/03/22 00:54:53 mcooper
* Add GetNlName().
*
* Revision 1.17 1992/03/22 00:20:10 mcooper
* Major cleanup and re-org.
*
* Revision 1.16 1992/03/08 05:00:40 mcooper
* Remove obsolete NETIFTAB.
*
* Revision 1.15 1992/03/08 04:55:42 mcooper
* Add support for address families and multiple addresses
* per network interface.
*
* Revision 1.14 1992/03/06 18:36:06 mcooper
* Add new NAMETAB to replace other similiar types.
*
* Revision 1.13 1992/03/03 03:18:59 mcooper
* Seperate and cleanup KVM*() from kvm*().
*
* Revision 1.12 1992/03/01 23:29:19 mcooper
* Move kvm_t to kvm.h.
*
* Revision 1.11 1992/03/01 22:51:02 mcooper
* Add kvm_t structure.
*
* Revision 1.10 1992/03/01 21:34:07 mcooper
* Put #ifdef HAVE_KVM around KVM_*() function declarations.
*
* Revision 1.9 1992/03/01 21:30:18 mcooper
* Add dd_secsize to DISKDRIVE and add new MODELTAB.
*
* Revision 1.8 1992/02/27 22:01:22 mcooper
* Add support for getting CPU info for sun4m.
*
* Revision 1.7 1992/02/27 02:42:33 mcooper
* Cleanup.
*
* Revision 1.6 1992/02/25 00:59:35 mcooper
* Move tape info to local MTINFO.
*
* Revision 1.5 1992/02/25 00:15:56 mcooper
* Update DT_* and other misc.
*
* Revision 1.4 1992/02/22 02:20:19 mcooper
* Major changes to support scanning kernel mainbus and
* openprom data for device's.
*
* Revision 1.3 1992/02/16 23:50:23 mcooper
* Add verbosity level macros.
*
* Revision 1.2 1992/02/16 23:03:51 mcooper
* Declare extern verbose.
*
* Revision 1.1 1992/02/16 22:53:52 mcooper
* Initial revision
*
*/
#ifndef __sysinfo_defs__
#define __sysinfo_defs__
/* Need to include options.h before errno.h */
#include "options.h"
#include <errno.h>
#include "version.h"
#if defined(NEED_KVM)
#include "kvm.h"
#else
#if defined(HAVE_KVM)
#include <kvm.h>
#endif /* HAVE_KVM */
#endif /* NEED_KVM */
/*
* File containing our CPU model name. Overrides all other methods
* for determing model name.
*/
#ifndef MODELFILE
#define MODELFILE "/etc/sysmodel"
#endif
/*
* System call failure value
*/
#ifndef SYSFAIL
#define SYSFAIL -1
#endif
#define C_NULL '\0'
/*
* System error numbers and message strings
*/
extern int errno;
#ifdef SYSERR
#undef SYSERR
#endif
#if defined(HAVE_STRERROR)
#define SYSERR strerror(errno)
#else
extern char *sys_errmsg[];
#define SYSERR sys_errlist[errno]
#endif /* HAVE_STRERROR */
#ifndef MAXHOSTNAMLEN
#define MAXHOSTNAMLEN 256
#endif
#define MBYTES 1048576 /* Megabytes */
#define KBYTES 1024 /* Kilobytes */
/*
* Misc macros
*/
#define EQ(a,b) (strcasecmp(a,b)==0)
#define EQN(a,b,n) (strncasecmp(a,b,n)==0)
/*
* CheckNlist() breaks in a variety of ways on
* various OS's.
*/
#if !defined(BROKEN_NLIST_CHECK)
#define CheckNlist(p) _CheckNlist(p)
#else
#define CheckNlist(p) 0
#endif
/*
* Get nlist n_name
*/
#if defined(__MACH__)
#define GetNlName(n) (n.n_un.n_name)
#define GetNlNamePtr(n) (n->n_un.n_name)
#else
#define GetNlName(n) (n.n_name)
#define GetNlNamePtr(n) (n->n_name)
#endif /* __MACH__ */
/*
* Conversion macros
*/
#define bytes_to_mbytes(n) ((float) n / (float) 1048576)
#define bytes_to_kbytes(n) ((u_long)(n / 1024))
#define mbytes_to_bytes(n) ((u_long)((u_long) n * 1048576))
#define kbytes_to_mbytes(n) ((u_long)((u_long) n * 1024))
#define nsect_to_bytes(n,s) ((((float) n) / (float) (1024 / s)) * 1024)
/*
* Are flags f set in b?
*/
#define FLAGS_ON(b,f) ((b != 0) && (b & f))
/*
* Verbosity levels
*/
#define L_BRIEF 0x01 /* Briefest */
#define L_GENERAL 0x02 /* General verbosity */
#define L_DESC 0x04 /* Description info */
#define L_CONFIG 0x10 /* Configuratin info */
#define L_DEBUG 0x20 /* Debug info */
#define L_ALL (L_BRIEF|L_GENERAL|L_DESC|L_CONFIG)
/*
* Verbosity macros
*/
#define VL_BRIEF (Level & L_BRIEF)
#define VL_GENERAL (Level & L_GENERAL)
#define VL_DESC (Level & L_DESC)
#define VL_CONFIG (Level & L_CONFIG)
#define VL_ALL (Level == L_ALL)
#define VL_DEBUG (Level & L_DEBUG)
/*
* Show info
*/
struct ShowInfo {
int Type;
char *Name;
char *Label;
void (*ShowFunc)();
char *(*GetFunc)();
int *OptCompat;
int Enable;
};
typedef struct ShowInfo SHOWINFO;
/*
* ShowInfo types (ShowInfo.Type)
*/
#define S_GEN 1 /* General info */
#define S_DEV 2 /* Device info */
/*
* Main Device information
*
* Used after device info has been obtained
*/
struct _device {
char *dv_name; /* Name (e.g. cgtwo0) */
char **dv_files; /* Device files */
int dv_type; /* Device type (eg DT_TAPE) */
char *dv_model; /* Model */
char *dv_desc; /* Description */
char **dv_desclist; /* Description List */
int dv_unit; /* Unit number */
int dv_addr; /* Address */
int dv_prio; /* Priority */
int dv_vec; /* Vector */
char *dv_mastername; /* Name of master */
caddr_t *dv_devspec; /* Device specific info */
struct _device *dv_master; /* Device controller */
struct _device *dv_slaves; /* Devices on this device */
struct _device *dv_nxt; /* Pointer to next device */
};
typedef struct _device DEVICE;
/*
* Device types (DEVICE.dv_type)
*/
#define DT_NONE 1 /* Sort of ignore */
#define DT_GENERIC 2 /* Generic Device */
#define DT_DISKDRIVE 3 /* Disk Drive */
#define DT_DISKCTLR 4 /* Disk Controller */
#define DT_TAPEDRIVE 5 /* Tape Drive */
#define DT_TAPECTLR 6 /* Tape Controller */
#define DT_FRAMEBUFFER 7 /* Frame Buffer */
#define DT_NETIF 8 /* Network Interface */
#define DT_BUS 9 /* System Bus */
#define DT_PSEUDO 10 /* Pseudo Device */
#define DT_CPU 11 /* CPU */
#define DT_MEMORY 12 /* Memory */
/*
* Disk Partition information.
*/
struct _dkpart {
char *dp_name; /* Partition name */
char *dp_mnt; /* Mount information */
int dp_stsect; /* Starting sector */
int dp_nsect; /* Number of sectors */
struct _dkpart *dp_nxt; /* Pointer to next DISKPART */
};
typedef struct _dkpart DISKPART;
/*
* Disk Drive specific data
*/
struct _dkdrive {
char *dd_label; /* Disk label */
int dd_unit; /* Unit number */
int dd_slave; /* Slave number */
int dd_dcyl; /* # data cylinders */
int dd_pcyl; /* # physical cylinders */
int dd_acyl; /* # alternate cylinders */
int dd_heads; /* Number of heads */
int dd_sect; /* Number of sectors */
int dd_psect; /* Number of physical sector */
int dd_promrev; /* PROM Revision */
int dd_apc; /* Alternates / Cyl (SCSI) */
int dd_rpm; /* Revolutions Per Minute */
int dd_intrlv; /* Interleave factor */
int dd_secsize; /* Size of Sector (bytes) */
u_long dd_size; /* Size of disk in bytes */
int dd_flags; /* Info flags */
DEVICE *dd_ctlr; /* Controller disk is on */
struct _dkpart *dd_part; /* Partition information */
struct _dkdrive *dd_nxt; /* Pointer to next disk */
};
typedef struct _dkdrive DISKDRIVE;
/*
* Disk Flags (DISKDRIVE.dd_flags)
*/
#define DF_HEXUNIT 0x01 /* Unit is prt 3 hex digits */
/*
* Generic Name/Value table
*/
struct _nametab {
int value; /* Value field */
char *name; /* Corresponding name */
char *valuestr; /* Value string field */
};
typedef struct _nametab NAMETAB;
/*
* Disk Controller Table
*/
struct dkctlrtab {
u_short ct_ctype; /* Ctlr type index */
char *ct_model; /* Ctlr model name */
int ct_rdcmd; /* Read command flag */
};
typedef struct dkctlrtab DKCTLRTAB;
/*
* FrameBuffer specific data
*/
struct _framebuffer {
int fb_height; /* Height (in pixels) */
int fb_width; /* Width (in pixels) */
int fb_depth; /* Depth (bits/pixel) */
u_long fb_size; /* Total size (in bytes) */
u_long fb_vmsize; /* Video memory (in bytes) */
int fb_cmsize; /* Color Map Size (#entries) */
};
typedef struct _framebuffer FRAMEBUFFER;
/*
* Network Interface specific data
*/
struct _netif {
char *ni_typename; /* Name of address type */
char *ni_hostaddr; /* Host address */
char *ni_hostname; /* Host name */
char *ni_macaddr; /* MAC address */
char *ni_macname; /* MAC name */
char *ni_netaddr; /* Network address */
char *ni_netname; /* Network name */
struct _netif *ni_nxt; /* Pointer to next element */
};
typedef struct _netif NETIF;
/*
* Address family table
*/
struct _aftab {
int af_type; /* Type value */
char *af_name; /* Name value */
NETIF *(*af_getnetif)(); /* Function to get netif */
};
typedef struct _aftab AFTAB;
/*
* Table of devices
*/
struct devicetab {
int d_type; /* Device type */
char **d_list; /* List of devices */
DEVICE *(*d_query)(); /* Query function */
};
/*
* Basic device data
*
* Used when searching for initial list of devices
*/
struct _devdata {
char *dd_devname; /* Name of device */
int dd_devunit; /* Device specific unit # */
int dd_slave; /* Slave number */
char *dd_ctlrname; /* Name of Controller */
int dd_ctlrunit; /* Controller # */
int dd_flags; /* Device flags */
};
typedef struct _devdata DEVDATA;
/*
* Flags for DEVDATA.dd_flags
*/
#define DD_MAYBE_ALIVE 0x1 /* Device may be alive */
#define DD_IS_ALIVE 0x2 /* Device is alive */
/*
* Device Data Table structure
*/
struct _devdatatab {
char *ddt_name; /* Name of device */
char *ddt_model; /* Model */
char *ddt_desc; /* Description */
DEVICE *(*ddt_probe)(); /* Probe device */
int ddt_type; /* Type of device */
int ddt_flags; /* Flags */
};
typedef struct _devdatatab DEVDATATAB;
/*
* Flags for DEVDATATAB.ddt_flags
*/
#define DDT_LENCMP 0x1 /* Compare by length */
#define DDT_NOUNIT 0x2 /* No unit number */
/*
* Declarations
*/
extern int DoPrintUnknown;
extern int Debug;
extern int Level;
char *index();
char *rindex();
char *strdup();
char *strcat();
char *strtok();
char *itoa();
char *xmalloc();
char *xcalloc();
extern DEVDATATAB *GetDevDataTab();
extern DEVICE *NewDevice();
extern DEVICE *ProbeCPU();
extern DEVICE *ProbeDiskDrive();
extern DEVICE *ProbeFrameBuffer();
extern DEVICE *ProbeGeneric();
extern DEVICE *ProbeNetif();
extern DEVICE *ProbeTapeDrive();
extern DEVICE *MkMasterFromDevData();
extern DEVICE *ProbeDevice();
extern DEVICE *ProbeUnknown();
extern DISKDRIVE *NewDiskDrive();
extern DISKPART *NewDiskPart();
extern FRAMEBUFFER *NewFrameBuffer();
extern NETIF *NewNetif();
extern char *GetHostName();
extern char *GetKernArch();
extern char *GetKernArchName();
extern char *GetKernelVersionFromVersion();
extern char *GetKernelVersionStr();
extern char *GetModelName();
extern char *GetNameTabName();
extern char *GetOSNameStr();
extern char *GetOSVersionStr();
extern char *GetSerialNoStr();
extern char *MkDevName();
extern char *RunCmds();
extern char *RunTestFiles();
extern char *GetAppArchFromHostInfo();
extern char *GetCpuTypeFromHostInfo();
extern char *GetKernArchFromHostInfo();
extern char *GetKernelVersionFromHostInfo();
extern char *GetMemoryFromHostInfo();
extern char *GetMemoryFromPhysmem();
extern char *GetModelFromHostInfo();
extern char *GetOSNameFromUname();
extern char *GetOSVersionFromHostInfo();
extern char *GetOSVersionFromKernVer();
extern char *GetOSVersionFromUname();
extern char *MkDevName();
extern char *GetAppArch();
extern char *GetCPU();
extern char *GetCharFile();
extern char *GetHostAddrs();
extern char *GetHostAliases();
extern char *GetHostID();
extern char *GetKernelVersion();
extern char *GetMan();
extern char *GetMemory();
extern char *GetModel();
extern char *GetOSName();
extern char *GetOSVersion();
extern char *GetRawFile();
extern char *GetRomVer();
extern char *GetSerialNo();
extern int AddDevice();
extern void Error();
extern void ShowDevices();
extern void ShowGeneral();
#if defined(HAVE_KVM)
extern kvm_t *KVMopen();
extern void KVMclose();
extern int KVMread();
extern struct nlist *KVMnlist();
#endif /* HAVE_KVM */
#endif /* __sysinfo_defs__ */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.