|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* store.c - common global storage for lsof
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* Copyright 1994 Purdue Research Foundation, West Lafayette, Indiana
|
|
Packit Service |
603f59 |
* 47907. All rights reserved.
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* Written by Victor A. Abell
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* This software is not subject to any license of the American Telephone
|
|
Packit Service |
603f59 |
* and Telegraph Company or the Regents of the University of California.
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* Permission is granted to anyone to use this software for any purpose on
|
|
Packit Service |
603f59 |
* any computer system, and to alter it and redistribute it freely, subject
|
|
Packit Service |
603f59 |
* to the following restrictions:
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* 1. Neither the authors nor Purdue University are responsible for any
|
|
Packit Service |
603f59 |
* consequences of the use of this software.
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* 2. The origin of this software must not be misrepresented, either by
|
|
Packit Service |
603f59 |
* explicit claim or by omission. Credit to the authors and Purdue
|
|
Packit Service |
603f59 |
* University must appear in documentation and sources.
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* 3. Altered versions must be plainly marked as such, and must not be
|
|
Packit Service |
603f59 |
* misrepresented as being the original software.
|
|
Packit Service |
603f59 |
*
|
|
Packit Service |
603f59 |
* 4. This notice may not be removed or altered.
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#ifndef lint
|
|
Packit Service |
603f59 |
static char copyright[] =
|
|
Packit Service |
603f59 |
"@(#) Copyright 1994 Purdue Research Foundation.\nAll rights reserved.\n";
|
|
Packit Service |
603f59 |
static char *rcsid = "$Id: store.c,v 1.44 2018/02/14 14:20:14 abe Exp $";
|
|
Packit Service |
603f59 |
#endif
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#include "lsof.h"
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* Global storage definitions
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
int AllProc = 1; /* all processes are selected (default) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASBLKDEV)
|
|
Packit Service |
603f59 |
struct l_dev *BDevtp = (struct l_dev *)NULL;
|
|
Packit Service |
603f59 |
/* block device table pointer */
|
|
Packit Service |
603f59 |
int BNdev = 0; /* number of entries in BDevtp[] */
|
|
Packit Service |
603f59 |
struct l_dev **BSdev = (struct l_dev **)NULL;
|
|
Packit Service |
603f59 |
/* pointer to BDevtp[] pointers, sorted
|
|
Packit Service |
603f59 |
* by device */
|
|
Packit Service |
603f59 |
#endif /* defined(HASBLKDEV) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
int CkPasswd = 0; /* time to check /etc/passwd for change */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HAS_STD_CLONE)
|
|
Packit Service |
603f59 |
struct clone *Clone = (struct clone *)NULL;
|
|
Packit Service |
603f59 |
/* clone device list */
|
|
Packit Service |
603f59 |
#endif /* defined(HAS_STD_CLONE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
int CmdColW; /* COMMAND column width */
|
|
Packit Service |
603f59 |
struct str_lst *Cmdl = (struct str_lst *)NULL;
|
|
Packit Service |
603f59 |
/* command names selected with -c */
|
|
Packit Service |
603f59 |
int CmdLim = CMDL; /* COMMAND column width limit */
|
|
Packit Service |
603f59 |
int Cmdni = 0; /* command name inclusions selected with -c */
|
|
Packit Service |
603f59 |
int Cmdnx = 0; /* command name exclusions selected with -c */
|
|
Packit Service |
603f59 |
lsof_rx_t *CmdRx = (lsof_rx_t *)NULL;
|
|
Packit Service |
603f59 |
/* command regular expression table */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASSELINUX)
|
|
Packit Service |
603f59 |
cntxlist_t *CntxArg = (cntxlist_t *)NULL;
|
|
Packit Service |
603f59 |
/* security context arguments supplied with
|
|
Packit Service |
603f59 |
* -Z */
|
|
Packit Service |
603f59 |
int CntxColW; /* security context column width */
|
|
Packit Service |
603f59 |
int CntxStatus = 0; /* security context status: 0 == disabled,
|
|
Packit Service |
603f59 |
* 1 == enabled */
|
|
Packit Service |
603f59 |
#endif /* defined(HASSELINUX) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASDCACHE)
|
|
Packit Service |
603f59 |
unsigned DCcksum; /* device cache file checksum */
|
|
Packit Service |
603f59 |
int DCfd = -1; /* device cache file descriptor */
|
|
Packit Service |
603f59 |
FILE *DCfs = (FILE *)NULL; /* stream pointer for DCfd */
|
|
Packit Service |
603f59 |
char *DCpathArg = (char *)NULL; /* device cache path from -D[b|r|u]<path> */
|
|
Packit Service |
603f59 |
char *DCpath[] = { /* device cache paths, indexed by DCpathX
|
|
Packit Service |
603f59 |
*when it's >= 0 */
|
|
Packit Service |
603f59 |
(char *)NULL, (char *)NULL, (char *)NULL, (char *)NULL
|
|
Packit Service |
603f59 |
};
|
|
Packit Service |
603f59 |
int DCpathX = -1; /* device cache path index:
|
|
Packit Service |
603f59 |
* -1 = path not defined
|
|
Packit Service |
603f59 |
* 0 = defined via -D
|
|
Packit Service |
603f59 |
* 1 = defined via HASENVDC
|
|
Packit Service |
603f59 |
* 2 = defined via HASSYSDC
|
|
Packit Service |
603f59 |
* 3 = defined via HASPERSDC and
|
|
Packit Service |
603f59 |
* HASPERSDCPATH */
|
|
Packit Service |
603f59 |
int DCrebuilt = 0; /* an unsafe device cache file has been
|
|
Packit Service |
603f59 |
* rebuilt */
|
|
Packit Service |
603f59 |
int DCstate = 3; /* device cache state:
|
|
Packit Service |
603f59 |
* 0 = ignore (-Di)
|
|
Packit Service |
603f59 |
* 1 = build (-Db[path])
|
|
Packit Service |
603f59 |
* 2 = read; don't rebuild (-Dr[path])
|
|
Packit Service |
603f59 |
* 3 = update; read and rebuild if
|
|
Packit Service |
603f59 |
* necessary (-Du[path])
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
int DCunsafe = 0; /* device cache file is potentially unsafe,
|
|
Packit Service |
603f59 |
* (The [cm]time check failed.) */
|
|
Packit Service |
603f59 |
#endif /* defined(HASDCACHE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
int DChelp = 0; /* -D? status */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
int DevColW; /* DEVICE column width */
|
|
Packit Service |
603f59 |
dev_t DevDev; /* device number of /dev or its equivalent */
|
|
Packit Service |
603f59 |
struct l_dev *Devtp = (struct l_dev *)NULL;
|
|
Packit Service |
603f59 |
/* device table pointer */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
/*
|
|
Packit Service |
603f59 |
* Externals for a stkdir(), dumbed-down for older AIX compilers.
|
|
Packit Service |
603f59 |
*/
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
char **Dstk = (char **)NULL; /* the directory stack */
|
|
Packit Service |
603f59 |
int Dstkx = 0; /* Dstk[] index */
|
|
Packit Service |
603f59 |
int Dstkn = 0; /* Dstk[] entries allocated */
|
|
Packit Service |
603f59 |
efsys_list_t *Efsysl = (efsys_list_t *)NULL;
|
|
Packit Service |
603f59 |
/* file systems for which kernel blocks are
|
|
Packit Service |
603f59 |
* to be eliminated */
|
|
Packit Service |
603f59 |
int ErrStat = 0; /* path stat() error count */
|
|
Packit Service |
603f59 |
uid_t Euid; /* effective UID of this lsof process */
|
|
Packit Service |
603f59 |
int Fand = 0; /* -a option status */
|
|
Packit Service |
603f59 |
int Fblock = 0; /* -b option status */
|
|
Packit Service |
603f59 |
int FcColW; /* FCT column width */
|
|
Packit Service |
603f59 |
int Fcntx = 0; /* -Z option status */
|
|
Packit Service |
603f59 |
int FdColW; /* FD column width */
|
|
Packit Service |
603f59 |
int FeptE = 0; /* -E option status: 0==none, 1==info,
|
|
Packit Service |
603f59 |
* 2==info+files */
|
|
Packit Service |
603f59 |
int Ffilesys = 0; /* -f option status:
|
|
Packit Service |
603f59 |
* 0 = paths may be file systems
|
|
Packit Service |
603f59 |
* 1 = paths are just files
|
|
Packit Service |
603f59 |
* 2 = paths must be file systems */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASNCACHE)
|
|
Packit Service |
603f59 |
int Fncache = 1; /* -C option status */
|
|
Packit Service |
603f59 |
int NcacheReload = 1; /* 1 == call ncache_load() */
|
|
Packit Service |
603f59 |
#endif /* defined(HASNCACHE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
int Ffield = 0; /* -f and -F status */
|
|
Packit Service |
603f59 |
int FgColW; /* FILE-FLAG column width */
|
|
Packit Service |
603f59 |
int Fhelp = 0; /* -h option status */
|
|
Packit Service |
603f59 |
int Fhost = 1; /* -H option status */
|
|
Packit Service |
603f59 |
int Fnet = 0; /* -i option status: 0==none
|
|
Packit Service |
603f59 |
* 1==find all
|
|
Packit Service |
603f59 |
* 2==some found*/
|
|
Packit Service |
603f59 |
int FnetTy = 0; /* Fnet type request: 0==all
|
|
Packit Service |
603f59 |
* 4==IPv4
|
|
Packit Service |
603f59 |
* 6==IPv6 */
|
|
Packit Service |
603f59 |
int Fnfs = 0; /* -N option status: 0==none, 1==find all,
|
|
Packit Service |
603f59 |
* 2==some found*/
|
|
Packit Service |
603f59 |
int Fnlink = 0; /* -L option status */
|
|
Packit Service |
603f59 |
int Foffset = 0; /* -o option status */
|
|
Packit Service |
603f59 |
int Fovhd = 0; /* -O option status */
|
|
Packit Service |
603f59 |
int Fport = 1; /* -P option status */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if !defined(HASNORPC_H)
|
|
Packit Service |
603f59 |
# if defined(HASPMAPENABLED)
|
|
Packit Service |
603f59 |
int FportMap = 1; /* +|-M option status */
|
|
Packit Service |
603f59 |
# else /* !defined(HASPMAPENABLED) */
|
|
Packit Service |
603f59 |
int FportMap = 0; /* +|-M option status */
|
|
Packit Service |
603f59 |
# endif /* defined(HASPMAPENABLED) */
|
|
Packit Service |
603f59 |
#endif /* !defined(HASNORPC_H) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
int Fpgid = 0; /* -g option status */
|
|
Packit Service |
603f59 |
int Fppid = 0; /* -R option status */
|
|
Packit Service |
603f59 |
int Fsize = 0; /* -s option status */
|
|
Packit Service |
603f59 |
int FsColW; /* FSTR-ADDR column width */
|
|
Packit Service |
603f59 |
int Fsv = FSV_DEFAULT; /* file struct value selections */
|
|
Packit Service |
603f59 |
int FsvByf = 0; /* Fsv was set by +f */
|
|
Packit Service |
603f59 |
int FsvFlagX = 0; /* hex format status for FSV_FG */
|
|
Packit Service |
603f59 |
int Ftask = 0; /* -K option value */
|
|
Packit Service |
603f59 |
int NiColW; /* NODE-ID column width */
|
|
Packit Service |
603f59 |
char *NiTtl = NITTL; /* NODE-ID column title */
|
|
Packit Service |
603f59 |
int Ftcptpi = TCPTPI_STATE; /* -T option status */
|
|
Packit Service |
603f59 |
int Fterse = 0; /* -t option status */
|
|
Packit Service |
603f59 |
int Funix = 0; /* -U option status */
|
|
Packit Service |
603f59 |
int Futol = 1; /* -l option status */
|
|
Packit Service |
603f59 |
int Fverbose = 0; /* -V option status */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(WARNINGSTATE)
|
|
Packit Service |
603f59 |
int Fwarn = 1; /* +|-w option status */
|
|
Packit Service |
603f59 |
#else /* !defined(WARNINGSTATE) */
|
|
Packit Service |
603f59 |
int Fwarn = 0; /* +|-w option status */
|
|
Packit Service |
603f59 |
#endif /* defined(WARNINGSTATE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASXOPT_VALUE)
|
|
Packit Service |
603f59 |
int Fxopt = HASXOPT_VALUE; /* -X option status */
|
|
Packit Service |
603f59 |
#endif /* defined(HASXOPT_VALUE) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
int Fxover = 0; /* -x option value */
|
|
Packit Service |
603f59 |
int Fzone = 0; /* -z option status */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
struct fd_lst *Fdl = (struct fd_lst *)NULL;
|
|
Packit Service |
603f59 |
/* file descriptors selected with -d */
|
|
Packit Service |
603f59 |
int FdlTy = -1; /* Fdl[] type: -1 == none
|
|
Packit Service |
603f59 |
* 0 == include
|
|
Packit Service |
603f59 |
* 1 == exclude */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
struct fieldsel FieldSel[] = {
|
|
Packit Service |
603f59 |
{ LSOF_FID_ACCESS, 0, LSOF_FNM_ACCESS, NULL, 0 }, /* 0 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_CMD, 0, LSOF_FNM_CMD, NULL, 0 }, /* 1 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_CT, 0, LSOF_FNM_CT, &Fsv, FSV_CT }, /* 2 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_DEVCH, 0, LSOF_FNM_DEVCH, NULL, 0 }, /* 3 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_DEVN, 0, LSOF_FNM_DEVN, NULL, 0 }, /* 4 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_FD, 1, LSOF_FNM_FD, NULL, 0 }, /* 5 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_FA, 0, LSOF_FNM_FA, &Fsv, FSV_FA }, /* 6 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_FG, 0, LSOF_FNM_FG, &Fsv, FSV_FG }, /* 7 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_INODE, 0, LSOF_FNM_INODE, NULL, 0 }, /* 8 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_NLINK, 0, LSOF_FNM_NLINK, &Fnlink, 1 }, /* 9 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_TID, 0, LSOF_FNM_TID, NULL, 0 }, /* 11 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_LOCK, 0, LSOF_FNM_LOCK, NULL, 0 }, /* 11 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_LOGIN, 0, LSOF_FNM_LOGIN, NULL, 0 }, /* 12 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_MARK, 1, LSOF_FNM_MARK, NULL, 0 }, /* 13 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_TCMD, 0, LSOF_FNM_TCMD, NULL, 0 }, /* 14 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_NAME, 0, LSOF_FNM_NAME, NULL, 0 }, /* 15 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_NI, 0, LSOF_FNM_NI, &Fsv, FSV_NI }, /* 16 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_OFFSET, 0, LSOF_FNM_OFFSET, NULL, 0 }, /* 17 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_PID, 1, LSOF_FNM_PID, NULL, 0 }, /* 18 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_PGID, 0, LSOF_FNM_PGID, &Fpgid, 1 }, /* 19 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_PROTO, 0, LSOF_FNM_PROTO, NULL, 0 }, /* 20 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_RDEV, 0, LSOF_FNM_RDEV, NULL, 0 }, /* 21 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_PPID, 0, LSOF_FNM_PPID, &Fppid, 1 }, /* 22 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_SIZE, 0, LSOF_FNM_SIZE, NULL, 0 }, /* 23 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_STREAM, 0, LSOF_FNM_STREAM, NULL, 0 }, /* 24 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_TYPE, 0, LSOF_FNM_TYPE, NULL, 0 }, /* 25 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_TCPTPI, 0, LSOF_FNM_TCPTPI, &Ftcptpi, TCPTPI_ALL }, /* 26 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_UID, 0, LSOF_FNM_UID, NULL, 0 }, /* 27 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_ZONE, 0, LSOF_FNM_ZONE, &Fzone, 1 }, /* 28 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_CNTX, 0, LSOF_FNM_CNTX, &Fcntx, 1 }, /* 29 */
|
|
Packit Service |
603f59 |
{ LSOF_FID_TERM, 0, LSOF_FNM_TERM, NULL, 0 }, /* 30 */
|
|
Packit Service |
603f59 |
{ ' ', 0, NULL, NULL, 0 }
|
|
Packit Service |
603f59 |
};
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
int Hdr = 0; /* header print status */
|
|
Packit Service |
603f59 |
int IgnTasks = 0; /* ignore tasks when non-zero */
|
|
Packit Service |
603f59 |
char *InodeFmt_d = (char *) NULL;
|
|
Packit Service |
603f59 |
/* INODETYPE decimal printf specification */
|
|
Packit Service |
603f59 |
char *InodeFmt_x = (char *) NULL;
|
|
Packit Service |
603f59 |
/* INODETYPE hexadecimal printf specification */
|
|
Packit Service |
603f59 |
int LastPid = -1; /* last PID listed (for eliminating duplicates
|
|
Packit Service |
603f59 |
* in terse output) */
|
|
Packit Service |
603f59 |
struct lfile *Lf = (struct lfile *)NULL;
|
|
Packit Service |
603f59 |
/* current local file structure */
|
|
Packit Service |
603f59 |
struct lproc *Lp = (struct lproc *)NULL;
|
|
Packit Service |
603f59 |
/* current local process table entry */
|
|
Packit Service |
603f59 |
struct lproc *Lproc = (struct lproc *)NULL;
|
|
Packit Service |
603f59 |
/* local process table */
|
|
Packit Service |
603f59 |
int MaxFd; /* maximum file descriptors to close */
|
|
Packit Service |
603f59 |
char *Memory = (char *)NULL; /* core file path */
|
|
Packit Service |
603f59 |
int MntSup = 0; /* mount supplement state: 0 == none
|
|
Packit Service |
603f59 |
* 1 == create
|
|
Packit Service |
603f59 |
* 2 == read */
|
|
Packit Service |
603f59 |
char *MntSupP = (char *)NULL; /* mount supplement path -- if MntSup == 2 */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASPROCFS)
|
|
Packit Service |
603f59 |
struct mounts *Mtprocfs = (struct mounts *)NULL;
|
|
Packit Service |
603f59 |
/* /proc mount entry */
|
|
Packit Service |
603f59 |
#endif /* defined(HASPROCFS) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
int Mxpgid = 0; /* maximum process group ID table entries */
|
|
Packit Service |
603f59 |
int Mxpid = 0; /* maximum PID table entries */
|
|
Packit Service |
603f59 |
int Mxuid = 0; /* maximum UID table entries */
|
|
Packit Service |
603f59 |
gid_t Mygid; /* real GID of this lsof process */
|
|
Packit Service |
603f59 |
int Mypid; /* lsof's process ID */
|
|
Packit Service |
603f59 |
uid_t Myuid; /* real UID of this lsof process */
|
|
Packit Service |
603f59 |
char *Namech = (char *)NULL; /* name characters for printing */
|
|
Packit Service |
603f59 |
size_t Namechl = (size_t)0; /* sizeof(Namech) */
|
|
Packit Service |
603f59 |
int NCmdRxU = 0; /* number of CmdRx[] entries */
|
|
Packit Service |
603f59 |
int Ndev = 0; /* number of entries in Devtp[] */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASNLIST)
|
|
Packit Service |
603f59 |
struct NLIST_TYPE *Nl = (struct NLIST_TYPE *)NULL;
|
|
Packit Service |
603f59 |
/* kernel name list */
|
|
Packit Service |
603f59 |
int Nll = 0; /* Nl calloc'd length */
|
|
Packit Service |
603f59 |
#endif /* defined(HASNLIST) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
long Nlink = 0l; /* report nlink values below this number
|
|
Packit Service |
603f59 |
* (0 = report all nlink values) */
|
|
Packit Service |
603f59 |
int Nlproc = 0; /* number of entries in Lproc[] */
|
|
Packit Service |
603f59 |
int NlColW; /* NLINK column width */
|
|
Packit Service |
603f59 |
int NmColW; /* NAME column width */
|
|
Packit Service |
603f59 |
char *Nmlst = (char *)NULL; /* namelist file path */
|
|
Packit Service |
603f59 |
int NodeColW; /* NODE column width */
|
|
Packit Service |
603f59 |
int Npgid = 0; /* -g option count */
|
|
Packit Service |
603f59 |
int Npgidi = 0; /* -g option inclusion count */
|
|
Packit Service |
603f59 |
int Npgidx = 0; /* -g option exclusion count */
|
|
Packit Service |
603f59 |
int Npid = 0; /* -p option count */
|
|
Packit Service |
603f59 |
int Npidi = 0; /* -p option inclusion count */
|
|
Packit Service |
603f59 |
int Npidx = 0; /* -p option exclusion count */
|
|
Packit Service |
603f59 |
int Npuns; /* number of unselected PIDs (starts at Npid) */
|
|
Packit Service |
603f59 |
int Ntype; /* node type (see N_* symbols) */
|
|
Packit Service |
603f59 |
int Nuid = 0; /* -u option count */
|
|
Packit Service |
603f59 |
int Nuidexcl = 0; /* -u option count of UIDs excluded */
|
|
Packit Service |
603f59 |
int Nuidincl = 0; /* -u option count of UIDs included */
|
|
Packit Service |
603f59 |
struct nwad *Nwad = (struct nwad *)NULL;
|
|
Packit Service |
603f59 |
/* list of network addresses */
|
|
Packit Service |
603f59 |
int OffDecDig = OFFDECDIG; /* offset decimal form (0t...) digit limit */
|
|
Packit Service |
603f59 |
int OffColW; /* OFFSET column width */
|
|
Packit Service |
603f59 |
int PgidColW; /* PGID column width */
|
|
Packit Service |
603f59 |
int PidColW; /* PID column width */
|
|
Packit Service |
603f59 |
struct lfile *Plf = (struct lfile *)NULL;
|
|
Packit Service |
603f59 |
/* previous local file structure */
|
|
Packit Service |
603f59 |
char *Pn; /* program name */
|
|
Packit Service |
603f59 |
int PpidColW; /* PPID column width */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASPROCFS)
|
|
Packit Service |
603f59 |
int Procfind = 0; /* 1 when searching for an proc file system
|
|
Packit Service |
603f59 |
* file and one was found */
|
|
Packit Service |
603f59 |
struct procfsid *Procfsid = (struct procfsid *)NULL;
|
|
Packit Service |
603f59 |
/* proc file system PID search table */
|
|
Packit Service |
603f59 |
int Procsrch = 0; /* 1 if searching for any proc file system
|
|
Packit Service |
603f59 |
* file */
|
|
Packit Service |
603f59 |
#endif /* defined(HASPROCFS) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
int PrPass = 0; /* print pass: 0 = compute column widths
|
|
Packit Service |
603f59 |
* 1 = print */
|
|
Packit Service |
603f59 |
int RptTm = 0; /* repeat time -- set by -r */
|
|
Packit Service |
603f59 |
struct l_dev **Sdev = (struct l_dev **)NULL;
|
|
Packit Service |
603f59 |
/* pointer to Devtp[] pointers, sorted
|
|
Packit Service |
603f59 |
* by device */
|
|
Packit Service |
603f59 |
int SelAll = 0; /* SELALL flags, modified by IgnTasks */
|
|
Packit Service |
603f59 |
int Selflags = 0; /* selection flags -- see SEL* in lsof.h */
|
|
Packit Service |
603f59 |
int SelProc = 0; /* SELPROC flags, modified by IgnTasks */
|
|
Packit Service |
603f59 |
int Setgid = 0; /* setgid state */
|
|
Packit Service |
603f59 |
int Selinet = 0; /* select only Internet socket files */
|
|
Packit Service |
603f59 |
int Setuidroot = 0; /* setuid-root state */
|
|
Packit Service |
603f59 |
struct sfile *Sfile = (struct sfile *)NULL;
|
|
Packit Service |
603f59 |
/* chain of files to search for */
|
|
Packit Service |
603f59 |
struct int_lst *Spgid = (struct int_lst *)NULL;
|
|
Packit Service |
603f59 |
/* process group IDs to search for */
|
|
Packit Service |
603f59 |
struct int_lst *Spid = (struct int_lst *)NULL;
|
|
Packit Service |
603f59 |
/* Process IDs to search for */
|
|
Packit Service |
603f59 |
struct seluid *Suid = (struct seluid *)NULL;
|
|
Packit Service |
603f59 |
/* User IDs to include or exclude */
|
|
Packit Service |
603f59 |
int SzColW; /* SIZE column width */
|
|
Packit Service |
603f59 |
int SzOffColW; /* SIZE/OFF column width */
|
|
Packit Service |
603f59 |
char *SzOffFmt_0t = (char *)NULL;
|
|
Packit Service |
603f59 |
/* SZOFFTYPE 0t%u printf specification */
|
|
Packit Service |
603f59 |
char *SzOffFmt_d = (char *)NULL;
|
|
Packit Service |
603f59 |
/* SZOFFTYPE %d printf specification */
|
|
Packit Service |
603f59 |
char *SzOffFmt_dv = (char *)NULL;
|
|
Packit Service |
603f59 |
/* SZOFFTYPE %*d printf specification */
|
|
Packit Service |
603f59 |
char *SzOffFmt_x = (char *)NULL;
|
|
Packit Service |
603f59 |
/* SZOFFTYPE %#x printf specification */
|
|
Packit Service |
603f59 |
int TaskCmdColW = 0; /* task command column width */
|
|
Packit Service |
603f59 |
int TaskCmdLim = TASKCMDL; /* TASKCMD column width limit (same as
|
|
Packit Service |
603f59 |
* CmdLim) */
|
|
Packit Service |
603f59 |
int TaskPrtCmd = 0; /* task print task command flag */
|
|
Packit Service |
603f59 |
int TaskPrtTid = 0; /* task print TID flag */
|
|
Packit Service |
603f59 |
int TcpStAlloc = 0; /* allocated (possibly unused) entries in TCP
|
|
Packit Service |
603f59 |
* state tables */
|
|
Packit Service |
603f59 |
unsigned char *TcpStI = (unsigned char *)NULL;
|
|
Packit Service |
603f59 |
/* included TCP states */
|
|
Packit Service |
603f59 |
int TcpStIn = 0; /* number of entries in TcpStI[] */
|
|
Packit Service |
603f59 |
int TcpStOff = 0; /* offset for TCP state number to adjust
|
|
Packit Service |
603f59 |
* negative numbers to an index into TcpSt[],
|
|
Packit Service |
603f59 |
* TcpStI[] and TcpStX[] */
|
|
Packit Service |
603f59 |
unsigned char *TcpStX = (unsigned char *)NULL;
|
|
Packit Service |
603f59 |
/* excluded TCP states */
|
|
Packit Service |
603f59 |
int TcpStXn = 0; /* number of entries in TcpStX[] */
|
|
Packit Service |
603f59 |
int TcpNstates = 0; /* number of TCP states -- either in
|
|
Packit Service |
603f59 |
* tcpstates[] or TcpSt[] */
|
|
Packit Service |
603f59 |
char **TcpSt = (char **)NULL; /* local TCP state names, indexed by system
|
|
Packit Service |
603f59 |
* state value */
|
|
Packit Service |
603f59 |
char Terminator = '\n'; /* output field terminator */
|
|
Packit Service |
603f59 |
int TaskTidColW = 0; /* task TID column width */
|
|
Packit Service |
603f59 |
int TmLimit = TMLIMIT; /* Readlink() and stat() timeout (seconds) */
|
|
Packit Service |
603f59 |
int TypeColW; /* TYPE column width */
|
|
Packit Service |
603f59 |
int UdpStAlloc = 0; /* allocated (possibly unused) entries in UDP
|
|
Packit Service |
603f59 |
* state tables */
|
|
Packit Service |
603f59 |
unsigned char *UdpStI = (unsigned char *)NULL;
|
|
Packit Service |
603f59 |
/* included UDP states */
|
|
Packit Service |
603f59 |
int UdpStIn = 0; /* number of entries in UdpStI[] */
|
|
Packit Service |
603f59 |
int UdpStOff = 0; /* offset for UDP state number to adjust
|
|
Packit Service |
603f59 |
* negative numbers to an index into UdpSt[],
|
|
Packit Service |
603f59 |
* UdpStI[] and UdpStX[] */
|
|
Packit Service |
603f59 |
unsigned char *UdpStX = (unsigned char *)NULL;
|
|
Packit Service |
603f59 |
/* excluded UDP states */
|
|
Packit Service |
603f59 |
int UdpStXn = 0; /* number of entries in UdpStX[] */
|
|
Packit Service |
603f59 |
int UdpNstates = 0; /* number of UDP states in UdpSt[] */
|
|
Packit Service |
603f59 |
char **UdpSt = (char **)NULL; /* local UDP state names, indexed by system
|
|
Packit Service |
603f59 |
* state number */
|
|
Packit Service |
603f59 |
int UserColW; /* USER column width */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
#if defined(HASZONES)
|
|
Packit Service |
603f59 |
znhash_t **ZoneArg = (znhash_t **)NULL;
|
|
Packit Service |
603f59 |
/* zone arguments supplied with -z */
|
|
Packit Service |
603f59 |
#endif /* defined(HASZONES) */
|
|
Packit Service |
603f59 |
|
|
Packit Service |
603f59 |
int ZoneColW; /* ZONE column width */
|