blob: c7a2636f75b4b1328274b7905ff97b533594aa09 [file] [log] [blame]
/*
* dstore.c - SCO OpenServer global storage for lsof
*/
/*
* Copyright 1995 Purdue Research Foundation, West Lafayette, Indiana
* 47907. All rights reserved.
*
* Written by Victor A. Abell
*
* This software is not subject to any license of the American Telephone
* and Telegraph Company or the Regents of the University of California.
*
* Permission is granted to anyone to use this software for any purpose on
* any computer system, and to alter it and redistribute it freely, subject
* to the following restrictions:
*
* 1. Neither the authors nor Purdue University are responsible for any
* consequences of the use of this software.
*
* 2. The origin of this software must not be misrepresented, either by
* explicit claim or by omission. Credit to the authors and Purdue
* University must appear in documentation and sources.
*
* 3. Altered versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
*
* 4. This notice may not be removed or altered.
*/
#ifndef lint
static char copyright[] =
"@(#) Copyright 1995 Purdue Research Foundation.\nAll rights reserved.\n";
static char *rcsid = "$Id: dstore.c,v 1.9 2002/12/03 18:23:08 abe Exp $";
#endif
#include "lsof.h"
char **Cdevsw = NULL; /* names from kernel's cdevsw[].d_name */
int Cdevcnt = 0; /* Cdevsw[] count */
int CloneMajor; /* clone major device */
/*
* Drive_Nl -- table to drive the building of Nl[] via build_Nl()
* (See lsof.h and misc.c.)
*/
struct drive_Nl Drive_Nl[] = {
{ "ncdev", "cdevcnt" },
{ "cdev", "cdevsw" },
{ "dnlc", "dnlc__cache" }, /* OSRV>=504 */
{ "ndnlc", "dnlc__cacheents" }, /* OSRV>=504 */
{ "pdnlc", "dnlc__cache_is_ptr" }, /* OSRV>=507 */
{ "dtnc", "dtcache" }, /* 500<=OSRV<504 */
{ "htnc", "htcache" }, /* 500<=OSRV<504 */
{ "hz", "Hz" },
{ "lbolt", "lbolt" },
{ "nfnc", "ncache" }, /* HAS_NFS */
{ "nnfnc", "nc_size" }, /* HAS_NFS */
{ "nxdm", "nxdevmaps" }, /* OSRV>=40 */
{ "pregpp", "pregpp" }, /* OSRV<500 */
{ "proc", "proc" },
{ "scouts", "scoutsname" }, /* OSRV>=500 */
{ "sockd", "sockdev" },
{ "sockt", "socktab" },
{ "s5nc", "s5cache" }, /* OSRV<504 */
{ "var", "v" },
{ "ndtnc", "v_dtcacheents" }, /* 500<=OSRV<504 */
{ "nhtnc", "v_htcacheents" }, /* 500<=OSRV<504 */
{ "ns5nc", "v_s5cacheents" }, /* 500<=OSRV<504 */
{ "xdm", "xdevmap" }, /* OSRV>=40 */
{ NULL, NULL }
};
int EventMajor; /* event major device number */
char **Fsinfo = NULL; /* file system information */
int Fsinfomax = 0; /* maximum file system type */
int HaveCloneMajor = 0; /* have clone major device number = 1 */
int HaveEventMajor = 0; /* have event major device number */
int HaveSockdev = 0; /* socket device number status: 1 = available */
int Hz = -1; /* system clock frequency */
int Kd = -1; /* /dev/kmem file descriptor */
KA_T Lbolt = (KA_T)0; /* kernel's lbolt variable address */
int Sockdev; /* socket device number */
KA_T Socktab = (KA_T)0; /* address of socket pointer table */
#if defined(HASFSTRUCT)
/*
* Pff_tab[] - table for printing file flags
*/
struct pff_tab Pff_tab[] = {
{ (long)FREAD, FF_READ },
{ (long)FWRITE, FF_WRITE },
{ (long)FNDELAY, FF_NDELAY },
{ (long)FAPPEND, FF_APPEND },
{ (long)FNONBLOCK, FF_NBLOCK },
{ (long)FRCACH, FF_RCACH },
{ (long)FSTOPIO, FF_STOPIO },
# if defined(FASYNC)
{ (long)FASYNC, FF_ASYNC },
# endif /* defined(FASYNC`) */
# if defined(FNET)
{ (long)FNET, FF_NET },
# endif /* defined(FNET) */
# if defined(FSYNC)
{ (long)FSYNC, FF_SYNC },
# endif /* defined(FSYNC) */
{ (long)0, NULL }
};
/*
* Pof_tab[] - table for print process open file flags
*/
struct pff_tab Pof_tab[] = {
{ (long)EXCLOSE, POF_CLOEXEC },
# if defined(AUD_READ)
{ (long)AUD_READ, POF_BNRD },
# endif /* defined(AUD_READ) */
# if defined(AUD_WRITE)
{ (long)AUD_WRITE, POF_BNWR },
# endif /* defined(AUDWRITE) */
# if defined(SEC_SIGHUPPED)
{ (long)SEC_SIGHUPPED, POF_BNHUP },
# endif /* defined(SEC_SIGHUPPED) */
{ (long)0, NULL }
};
#endif /* defined(HASFSTRUCT) */
#if OSRV>=40
/*
* The following items are needed by the internal kernel major()
* and minor() macros for mapping extended minor numbers.
*/
int nxdevmaps = -1; /* maximum kernel xdevmap[] index */
struct XDEVMAP *Xdevmap; /* dynamically allocated xdevmap[] */
#endif /* OSRV>=40 */