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.