/* * 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 */