|
Packit |
6f02de |
/*
|
|
Packit |
6f02de |
* lsof.h - common header file for lsof
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
/*
|
|
Packit |
6f02de |
* Copyright 1994 Purdue Research Foundation, West Lafayette, Indiana
|
|
Packit |
6f02de |
* 47907. All rights reserved.
|
|
Packit |
6f02de |
*
|
|
Packit |
6f02de |
* Written by Victor A. Abell
|
|
Packit |
6f02de |
*
|
|
Packit |
6f02de |
* This software is not subject to any license of the American Telephone
|
|
Packit |
6f02de |
* and Telegraph Company or the Regents of the University of California.
|
|
Packit |
6f02de |
*
|
|
Packit |
6f02de |
* Permission is granted to anyone to use this software for any purpose on
|
|
Packit |
6f02de |
* any computer system, and to alter it and redistribute it freely, subject
|
|
Packit |
6f02de |
* to the following restrictions:
|
|
Packit |
6f02de |
*
|
|
Packit |
6f02de |
* 1. Neither the authors nor Purdue University are responsible for any
|
|
Packit |
6f02de |
* consequences of the use of this software.
|
|
Packit |
6f02de |
*
|
|
Packit |
6f02de |
* 2. The origin of this software must not be misrepresented, either by
|
|
Packit |
6f02de |
* explicit claim or by omission. Credit to the authors and Purdue
|
|
Packit |
6f02de |
* University must appear in documentation and sources.
|
|
Packit |
6f02de |
*
|
|
Packit |
6f02de |
* 3. Altered versions must be plainly marked as such, and must not be
|
|
Packit |
6f02de |
* misrepresented as being the original software.
|
|
Packit |
6f02de |
*
|
|
Packit |
6f02de |
* 4. This notice may not be removed or altered.
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
/*
|
|
Packit |
6f02de |
* $Id: lsof.h,v 1.70 2018/03/26 21:50:45 abe Exp $
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#if !defined(LSOF_H)
|
|
Packit |
6f02de |
#define LSOF_H 1
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#include "machine.h"
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(FSV_DEFAULT)
|
|
Packit |
6f02de |
#define FSV_DEFAULT 0
|
|
Packit |
6f02de |
# endif /* !defined(FSV_DEFAULT) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#include "lsof_fields.h"
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#include <ctype.h>
|
|
Packit |
6f02de |
#include <errno.h>
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASSETLOCALE)
|
|
Packit |
6f02de |
#include <locale.h>
|
|
Packit |
6f02de |
# endif /* defined(HASSETLOCALE) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#include <netdb.h>
|
|
Packit |
6f02de |
#include <pwd.h>
|
|
Packit |
6f02de |
#include <stdio.h>
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#include <sys/stat.h>
|
|
Packit |
6f02de |
#include <sys/wait.h>
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
/*
|
|
Packit |
6f02de |
* Definitions and structures that may be needed by dlsof.h
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(INODETYPE)
|
|
Packit |
6f02de |
#define INODETYPE unsigned long /* node number storage type */
|
|
Packit |
6f02de |
#define INODEPSPEC "l" /* node number printf specification
|
|
Packit |
6f02de |
* modifier */
|
|
Packit |
6f02de |
# endif /* !defined(INODETYPE) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct l_dev {
|
|
Packit |
6f02de |
dev_t rdev; /* device */
|
|
Packit |
6f02de |
INODETYPE inode; /* inode number */
|
|
Packit |
6f02de |
char *name; /* name */
|
|
Packit |
6f02de |
int v; /* has been verified
|
|
Packit |
6f02de |
* (when DCUnsafe == 1) */
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASEPTOPTS)
|
|
Packit |
6f02de |
/*
|
|
Packit |
6f02de |
* End point definitions
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define CHEND_PIPE 0x01 /* pipe endpoint ID */
|
|
Packit |
6f02de |
#define CHEND_PTY 0x02 /* pseudoterminal endpoint ID */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASUXSOCKEPT)
|
|
Packit |
6f02de |
#define CHEND_UXS 0x04 /* UNIX socket endpoint ID */
|
|
Packit |
6f02de |
# endif /* defined(HASUXSOCKEPT) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define EPT_PIPE 0x01 /* process has pipe file */
|
|
Packit |
6f02de |
#define EPT_PIPE_END 0x02 /* process has pipe end point file */
|
|
Packit |
6f02de |
#define EPT_PTY 0x04 /* process has a pseudoterminal file */
|
|
Packit |
6f02de |
#define EPT_PTY_END 0x08 /* process has a pseudoterminal end
|
|
Packit |
6f02de |
* point file */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASUXSOCKEPT)
|
|
Packit |
6f02de |
#define EPT_UXS 0x10 /* process has a UNIX socket file */
|
|
Packit |
6f02de |
#define EPT_UXS_END 0x20 /* process has a UNIX socket end point
|
|
Packit |
6f02de |
* file */
|
|
Packit |
6f02de |
# endif /* defined(HASUXSOCKEPT) */
|
|
Packit |
6f02de |
# endif /* defined(HASEPTOPTS) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
/*
|
|
Packit |
6f02de |
* FILE_FLAG column names
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define FF_AIO "AIO"
|
|
Packit |
6f02de |
#define FF_APPEND "AP"
|
|
Packit |
6f02de |
#define FF_ASYNC "ASYN"
|
|
Packit |
6f02de |
#define FF_BLKANDSET "BAS"
|
|
Packit |
6f02de |
#define FF_BLKINUSE "BKIU"
|
|
Packit |
6f02de |
#define FF_BLKSEEK "BSK"
|
|
Packit |
6f02de |
#define FF_CIO "CIO"
|
|
Packit |
6f02de |
#define FF_CLONE "CLON"
|
|
Packit |
6f02de |
#define FF_CLREAD "CLRD"
|
|
Packit |
6f02de |
#define FF_COPYAVOID "CA"
|
|
Packit |
6f02de |
#define FF_CREAT "CR"
|
|
Packit |
6f02de |
#define FF_DATAFLUSH "DFLU"
|
|
Packit |
6f02de |
#define FF_DEFER "DF"
|
|
Packit |
6f02de |
#define FF_DEFERIND "DFI"
|
|
Packit |
6f02de |
#define FF_DELAY "DLY"
|
|
Packit |
6f02de |
#define FF_DIRECT "DIR"
|
|
Packit |
6f02de |
#define FF_DIRECTORY "DTY"
|
|
Packit |
6f02de |
#define FF_DOCLONE "DOCL"
|
|
Packit |
6f02de |
#define FF_DSYNC "DSYN"
|
|
Packit |
6f02de |
#define FF_EVTONLY "EVO"
|
|
Packit |
6f02de |
#define FF_EXCL "EXCL"
|
|
Packit |
6f02de |
#define FF_EXEC "EX"
|
|
Packit |
6f02de |
#define FF_EXLOCK "XL"
|
|
Packit |
6f02de |
#define FF_FILE_MBLK "MBLK"
|
|
Packit |
6f02de |
#define FF_FSYNC "FSYN"
|
|
Packit |
6f02de |
#define FF_GCFDEFER "GCDF"
|
|
Packit |
6f02de |
#define FF_GCFMARK "GCMK"
|
|
Packit |
6f02de |
#define FF_GENTTY "GTTY"
|
|
Packit |
6f02de |
#define FF_HASLOCK "LCK"
|
|
Packit |
6f02de |
#define FF_HUP "HUP"
|
|
Packit |
6f02de |
#define FF_KERNEL "KERN"
|
|
Packit |
6f02de |
#define FF_KIOCTL "KIOC"
|
|
Packit |
6f02de |
#define FF_LARGEFILE "LG"
|
|
Packit |
6f02de |
#define FF_MARK "MK"
|
|
Packit |
6f02de |
#define FF_MOUNT "MNT"
|
|
Packit |
6f02de |
#define FF_MSYNC "MSYN"
|
|
Packit |
6f02de |
#define FF_NBDRM "NBDR"
|
|
Packit |
6f02de |
#define FF_NBIO "NBIO"
|
|
Packit |
6f02de |
#define FF_NBLOCK "NB"
|
|
Packit |
6f02de |
#define FF_NBUF "NBF"
|
|
Packit |
6f02de |
#define FF_NMFS "NMFS"
|
|
Packit |
6f02de |
#define FF_NDELAY "ND"
|
|
Packit |
6f02de |
#define FF_NET "NET"
|
|
Packit |
6f02de |
#define FF_NOATM "NATM"
|
|
Packit |
6f02de |
#define FF_NOCACHE "NC"
|
|
Packit |
6f02de |
#define FF_NOCTTY "NTTY"
|
|
Packit |
6f02de |
#define FF_NODSYNC "NDSY"
|
|
Packit |
6f02de |
#define FF_NOFOLNK "NFLK"
|
|
Packit |
6f02de |
#define FF_NOTOSTOP "NOTO"
|
|
Packit |
6f02de |
#define FF_NSHARE "NSH"
|
|
Packit |
6f02de |
#define FF_OLRMIRROR "OLRM"
|
|
Packit |
6f02de |
#define FF_POSIX_AIO "PAIO"
|
|
Packit |
6f02de |
#define FF_POSIX_PIPE "PP"
|
|
Packit |
6f02de |
#define FF_RAIOSIG "RAIO"
|
|
Packit |
6f02de |
#define FF_RCACH "RC"
|
|
Packit |
6f02de |
#define FF_RDWR "RW"
|
|
Packit |
6f02de |
#define FF_READ "R"
|
|
Packit |
6f02de |
#define FF_REVOKED "REV"
|
|
Packit |
6f02de |
#define FF_RSHARE "RSH"
|
|
Packit |
6f02de |
#define FF_RSYNC "RSYN"
|
|
Packit |
6f02de |
#define FF_SETBLK "BL"
|
|
Packit |
6f02de |
#define FF_SHLOCK "SL"
|
|
Packit |
6f02de |
#define FF_SNAP "SNAP"
|
|
Packit |
6f02de |
#define FF_SOCKET "SOCK"
|
|
Packit |
6f02de |
#define FF_SQTSH1 "SQS1"
|
|
Packit |
6f02de |
#define FF_SQTSH2 "SQS2"
|
|
Packit |
6f02de |
#define FF_SQTREPAIR "SQR"
|
|
Packit |
6f02de |
#define FF_SQTSH "SQSH"
|
|
Packit |
6f02de |
#define FF_SQTSVM "SQSV"
|
|
Packit |
6f02de |
#define FF_STOPIO "STPI"
|
|
Packit |
6f02de |
#define FF_SYNC "SYN"
|
|
Packit |
6f02de |
#define FF_SYNCRON "SWR"
|
|
Packit |
6f02de |
#define FF_TCP_MDEVONLY "TCPM"
|
|
Packit |
6f02de |
#define FF_TERMIO "TIO"
|
|
Packit |
6f02de |
#define FF_TRUNC "TR"
|
|
Packit |
6f02de |
#define FF_VHANGUP "VH"
|
|
Packit |
6f02de |
#define FF_VTEXT "VTXT"
|
|
Packit |
6f02de |
#define FF_WAKEUP "WKUP"
|
|
Packit |
6f02de |
#define FF_WAITING "WTG"
|
|
Packit |
6f02de |
#define FF_WRITE "W"
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
/*
|
|
Packit |
6f02de |
* Process open file flag names
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define POF_ALLOCATED "ALLC"
|
|
Packit |
6f02de |
#define POF_BNRD "BR"
|
|
Packit |
6f02de |
#define POF_BNWR "BW"
|
|
Packit |
6f02de |
#define POF_BNHUP "BHUP"
|
|
Packit |
6f02de |
#define POF_CLOEXEC "CX"
|
|
Packit |
6f02de |
#define POF_CLOSING "CLSG"
|
|
Packit |
6f02de |
#define POF_FDLOCK "LCK"
|
|
Packit |
6f02de |
#define POF_INUSE "USE"
|
|
Packit |
6f02de |
#define POF_MAPPED "MP"
|
|
Packit |
6f02de |
#define POF_FSHMAT "SHMT"
|
|
Packit |
6f02de |
#define POF_RESERVED "OPIP"
|
|
Packit |
6f02de |
#define POF_RSVWT "RSVW"
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
/*
|
|
Packit |
6f02de |
* Cross-over (-x) option values
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define XO_FILESYS 0x1 /* file system mount points */
|
|
Packit |
6f02de |
#define XO_SYMLINK 0x2 /* symbolic links */
|
|
Packit |
6f02de |
#define XO_ALL (XO_FILESYS | XO_SYMLINK)
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#include "dlsof.h"
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#include <sys/types.h> /* just in case -- because utmp.h
|
|
Packit |
6f02de |
* may need it */
|
|
Packit |
6f02de |
#include "./regex.h"
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(EMPTY)
|
|
Packit |
6f02de |
#undef EMPTY
|
|
Packit |
6f02de |
# endif /* defined(EMPTY) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASUTMPX)
|
|
Packit |
6f02de |
#include <utmpx.h>
|
|
Packit |
6f02de |
# else /* !defined(HASUTMPX) */
|
|
Packit |
6f02de |
#include <utmp.h>
|
|
Packit |
6f02de |
# endif /* defined(HASUTMPX) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int errno;
|
|
Packit |
6f02de |
extern char *optarg;
|
|
Packit |
6f02de |
extern int optind;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define ACCESSERRFMT "%s: WARNING: access %s: %s\n"
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASDCACHE)
|
|
Packit |
6f02de |
#define CRC_POLY 0120001 /* CRC-16 polynomial */
|
|
Packit |
6f02de |
#define CRC_TBLL 256 /* crc table length for software */
|
|
Packit |
6f02de |
#define CRC_BITS 8 /* number of bits contributing */
|
|
Packit |
6f02de |
# endif /* defined(HASDCACHE) */
|
|
Packit |
6f02de |
#define CMDL 9 /* maximum number of characters from
|
|
Packit |
6f02de |
* command name to print in COMMAND
|
|
Packit |
6f02de |
* column */
|
|
Packit |
6f02de |
#define CWD " cwd" /* current working directory fd name */
|
|
Packit |
6f02de |
#define FDLEN 8 /* fd printing array length */
|
|
Packit |
6f02de |
#define FSV_FA 0x1 /* file struct addr status */
|
|
Packit |
6f02de |
#define FSV_CT 0x2 /* file struct count status */
|
|
Packit |
6f02de |
#define FSV_FG 0x4 /* file struct flags */
|
|
Packit |
6f02de |
#define FSV_NI 0x8 /* file struct node ID status */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(GET_MAJ_DEV)
|
|
Packit |
6f02de |
#define GET_MAJ_DEV major /* if no dialect specific macro has
|
|
Packit |
6f02de |
* been defined, use standard major()
|
|
Packit |
6f02de |
* macro */
|
|
Packit |
6f02de |
# endif /* !defined(GET_MAJ_DEV) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(GET_MIN_DEV)
|
|
Packit |
6f02de |
#define GET_MIN_DEV minor /* if no dialect specific macro has
|
|
Packit |
6f02de |
* been defined, use standard minor()
|
|
Packit |
6f02de |
* macro */
|
|
Packit |
6f02de |
# endif /* !defined(GET_MIN_DEV) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASSELINUX)
|
|
Packit |
6f02de |
#define HASHCNTX 128 /* security context hash bucket count
|
|
Packit |
6f02de |
* -- MUST BE A POWER OF 2!!! */
|
|
Packit |
6f02de |
# endif /* defined(HASSELINUX) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASZONES)
|
|
Packit |
6f02de |
#define HASHZONE 128 /* zone hash bucket count -- MUST BE
|
|
Packit |
6f02de |
* A POWER OF 2!!! */
|
|
Packit |
6f02de |
# endif /* defined(HASZONES) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define IDINCR 10 /* PID/PGID table malloc() increment */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(INADDR_LOOPBACK)
|
|
Packit |
6f02de |
#define INADDR_LOOPBACK (u_long)0x7f000001
|
|
Packit |
6f02de |
# endif /* !defined(INADDR_LOOPBACK) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define IPROTOL 8 /* Internet protocol length */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(KA_T_FMT_X)
|
|
Packit |
6f02de |
#define KA_T_FMT_X "0x%08lx" /* format for printing kernel
|
|
Packit |
6f02de |
* addresses in 0x... format */
|
|
Packit |
6f02de |
# endif /* !defined(KA_T_FMT_X) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(LOGINML)
|
|
Packit |
6f02de |
# if defined(HASUTMPX)
|
|
Packit |
6f02de |
static struct utmpx dummy_utmp; /* to get login name length */
|
|
Packit |
6f02de |
#define LOGINML sizeof(dummy_utmp.ut_user)
|
|
Packit |
6f02de |
/* login name length */
|
|
Packit |
6f02de |
# else /* !defined(HASUTMPX) */
|
|
Packit |
6f02de |
static struct utmp dummy_utmp; /* to get login name length */
|
|
Packit |
6f02de |
#define LOGINML sizeof(dummy_utmp.ut_name)
|
|
Packit |
6f02de |
/* login name length */
|
|
Packit |
6f02de |
# endif /* defined(HASUTMPX) */
|
|
Packit |
6f02de |
# endif /* !defined(LOGINML) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define LPROCINCR 128 /* Lproc[] allocation increment */
|
|
Packit |
6f02de |
#define LSOF_GITHUB_URL "https://github.com/lsof-org"
|
|
Packit |
6f02de |
#define LSOF_REPO "lsof"
|
|
Packit |
6f02de |
#define LSOF_BRANCH "master"
|
|
Packit |
6f02de |
#define LSOF_REPO_URL LSOF_GITHUB_URL "/" LSOF_REPO
|
|
Packit |
6f02de |
#define LSOF_FAQ_URL LSOF_REPO_URL "/blob/" LSOF_BRANCH "/00FAQ"
|
|
Packit |
6f02de |
#define LSOF_MAN_URL LSOF_REPO_URL "/blob/" LSOF_BRANCH "/Lsof.8"
|
|
Packit |
6f02de |
#define MIN_AF_ADDR sizeof(struct in_addr)
|
|
Packit |
6f02de |
/* minimum AF_* address length */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASIPv6)
|
|
Packit |
6f02de |
#define MAX_AF_ADDR sizeof(struct in6_addr)
|
|
Packit |
6f02de |
/* maximum AF_* address length */
|
|
Packit |
6f02de |
# else /* !defined(HASIPv6) */
|
|
Packit |
6f02de |
#define MAX_AF_ADDR MIN_AF_ADDR /* maximum AF_* address length */
|
|
Packit |
6f02de |
# endif /* defined(HASIPv6) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define MAXDCPATH 4 /* paths in DCpath[] */
|
|
Packit |
6f02de |
#define MAXNWAD 100 /* maximum network addresses */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(MEMMOVE)
|
|
Packit |
6f02de |
#define MEMMOVE memmove
|
|
Packit |
6f02de |
# endif /* !defined*MEMMOVE) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define N_REGLR 0 /* regular file system node */
|
|
Packit |
6f02de |
#define N_AFS 1 /* AFS node */
|
|
Packit |
6f02de |
#define N_AFPFS 2 /* Apple Darwin AppleShare */
|
|
Packit |
6f02de |
#define N_ANON_INODE 3 /* Linux anon_inodefs node */
|
|
Packit |
6f02de |
#define N_AUSX 4 /* Auspex LFS node */
|
|
Packit |
6f02de |
#define N_AUTO 5 /* automount node */
|
|
Packit |
6f02de |
#define N_BLK 6 /* block device node */
|
|
Packit |
6f02de |
#define N_CACHE 7 /* cached file system node */
|
|
Packit |
6f02de |
#define N_CDFS 8 /* CD-ROM node */
|
|
Packit |
6f02de |
#define N_CFS 9 /* CFS node */
|
|
Packit |
6f02de |
#define N_CHR 10 /* character device node */
|
|
Packit |
6f02de |
#define N_COM 11 /* streams common device node */
|
|
Packit |
6f02de |
#define N_CTFSADIR 12 /* Solaris CTFS adir node */
|
|
Packit |
6f02de |
#define N_CTFSBUND 13 /* Solaris CTFS bundle node */
|
|
Packit |
6f02de |
#define N_CTFSCDIR 14 /* Solaris CTFS cdir node */
|
|
Packit |
6f02de |
#define N_CTFSCTL 15 /* Solaris CTFS ctl node */
|
|
Packit |
6f02de |
#define N_CTFSEVT 16 /* Solaris CTFS events node */
|
|
Packit |
6f02de |
#define N_CTFSLATE 17 /* Solaris CTFS latest node */
|
|
Packit |
6f02de |
#define N_CTFSROOT 18 /* Solaris CTFS root node */
|
|
Packit |
6f02de |
#define N_CTFSSTAT 19 /* Solaris CTFS status node */
|
|
Packit |
6f02de |
#define N_CTFSSYM 20 /* Solaris CTFS symbolic node */
|
|
Packit |
6f02de |
#define N_CTFSTDIR 21 /* Solaris CTFS type node */
|
|
Packit |
6f02de |
#define N_CTFSTMPL 22 /* Solaris CTFS template node */
|
|
Packit |
6f02de |
#define N_DEV 23 /* DEV FS node */
|
|
Packit |
6f02de |
#define N_DOOR 24 /* DOOR node */
|
|
Packit |
6f02de |
#define N_FD 25 /* FD node */
|
|
Packit |
6f02de |
#define N_FIFO 26 /* FIFO node */
|
|
Packit |
6f02de |
#define N_HSFS 27 /* High Sierra node */
|
|
Packit |
6f02de |
#define N_KERN 28 /* BSD /kern node */
|
|
Packit |
6f02de |
#define N_LOFS 29 /* loopback node */
|
|
Packit |
6f02de |
#define N_MNT 30 /* mount file system device node */
|
|
Packit |
6f02de |
#define N_MPC 31 /* multiplexed device node */
|
|
Packit |
6f02de |
#define N_MVFS 32 /* multi-volume file system node (?) */
|
|
Packit |
6f02de |
#define N_NFS 33 /* NFS node */
|
|
Packit |
6f02de |
#define N_NFS4 34 /* NFS version 4 node */
|
|
Packit |
6f02de |
#define N_NM 35 /* named file system node */
|
|
Packit |
6f02de |
#define N_OBJF 36 /* objfs file system node */
|
|
Packit |
6f02de |
#define N_PCFS 37 /* PC file system node */
|
|
Packit |
6f02de |
#define N_PIPE 38 /* pipe device node */
|
|
Packit |
6f02de |
#define N_PORT 39 /* port node */
|
|
Packit |
6f02de |
#define N_PROC 40 /* /proc node */
|
|
Packit |
6f02de |
#define N_PSEU 41 /* pseudofs node */
|
|
Packit |
6f02de |
#define N_SAMFS 42 /* Solaris SAM-FS */
|
|
Packit |
6f02de |
#define N_SANFS 43 /* AIX SANFS */
|
|
Packit |
6f02de |
#define N_SDEV 44 /* Solaris sdev file system node */
|
|
Packit |
6f02de |
#define N_SHARED 45 /* Solaris sharedfs */
|
|
Packit |
6f02de |
#define N_SOCK 46 /* sock_vnodeops node */
|
|
Packit |
6f02de |
#define N_SPEC 47 /* spec_vnodeops node */
|
|
Packit |
6f02de |
#define N_STREAM 48 /* stream node */
|
|
Packit |
6f02de |
#define N_TMP 49 /* tmpfs node */
|
|
Packit |
6f02de |
#define N_UFS 50 /* UNIX file system node */
|
|
Packit |
6f02de |
#define N_UNKN 51 /* unknown node type */
|
|
Packit |
6f02de |
#define N_VXFS 52 /* Veritas file system node */
|
|
Packit |
6f02de |
#define N_XFS 53 /* XFS node */
|
|
Packit |
6f02de |
#define N_ZFS 54 /* ZFS node */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(OFFDECDIG)
|
|
Packit |
6f02de |
#define OFFDECDIG 8 /* maximum number of digits in the
|
|
Packit |
6f02de |
* offset decimal form (0t...) */
|
|
Packit |
6f02de |
# endif /* !defined(OFFDECDIG) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(USELOCALREADDIR)
|
|
Packit |
6f02de |
#define CloseDir closedir /* use standard closedir() */
|
|
Packit |
6f02de |
#define OpenDir opendir /* use standard opendir() */
|
|
Packit |
6f02de |
#define ReadDir readdir /* use standard readdir() */
|
|
Packit |
6f02de |
# endif /* !defined(USELOCALREADDIR) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define RPTTM 15 /* default repeat seconds */
|
|
Packit |
6f02de |
#define RTD " rtd" /* root directory fd name */
|
|
Packit |
6f02de |
#define TASKCMDL 9 /* maximum number of characters from
|
|
Packit |
6f02de |
* command name to print in TASKCMD
|
|
Packit |
6f02de |
* column */
|
|
Packit |
6f02de |
#define TCPTPI_FLAGS 0x0001 /* report TCP/TPI socket options and
|
|
Packit |
6f02de |
* state, and TCP_NODELAY state */
|
|
Packit |
6f02de |
#define TCPTPI_QUEUES 0x0002 /* report TCP/TPI queue lengths */
|
|
Packit |
6f02de |
#define TCPTPI_STATE 0x0004 /* report TCP/TPI state */
|
|
Packit |
6f02de |
#define TCPTPI_WINDOWS 0x0008 /* report TCP/TPI window sizes */
|
|
Packit |
6f02de |
#define TCPTPI_ALL (TCPTPI_QUEUES | TCPTPI_STATE | TCPTPI_WINDOWS)
|
|
Packit |
6f02de |
/* report all TCP/TPI info */
|
|
Packit |
6f02de |
#define TCPUDPALLOC 32 /* allocation amount for TCP and UDP
|
|
Packit |
6f02de |
* state tables */
|
|
Packit |
6f02de |
#define TMLIMIT 15 /* readlink() & stat() timeout sec */
|
|
Packit |
6f02de |
#define TMLIMMIN 2 /* minimum timeout */
|
|
Packit |
6f02de |
#define TYPEL 8 /* type character length */
|
|
Packit |
6f02de |
#define UIDCACHEL 1024 /* UID cache length */
|
|
Packit |
6f02de |
#define UIDINCR 10 /* UID table malloc() increment */
|
|
Packit |
6f02de |
#define USERPRTL 8 /* UID/login print length limit */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(SZOFFTYPE)
|
|
Packit |
6f02de |
#define SZOFFTYPE unsigned long /* type for size and offset */
|
|
Packit |
6f02de |
#undef SZOFFPSPEC
|
|
Packit |
6f02de |
#define SZOFFPSPEC "l" /* SZOFFTYPE printf specification
|
|
Packit |
6f02de |
* modifier */
|
|
Packit |
6f02de |
# endif /* !defined(SZOFFTYPE) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(TIMEVAL_LSOF)
|
|
Packit |
6f02de |
#define TIMEVAL_LSOF timeval
|
|
Packit |
6f02de |
# endif /* !defined(TIMEVAL_LSOF) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(XDR_PMAPLIST)
|
|
Packit |
6f02de |
#define XDR_PMAPLIST xdr_pmaplist
|
|
Packit |
6f02de |
# endif /* !defined(XDR_PMAPLIST) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(XDR_VOID)
|
|
Packit |
6f02de |
#define XDR_VOID xdr_void
|
|
Packit |
6f02de |
# endif /* !defined(XDR_VOID) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
/*
|
|
Packit |
6f02de |
* Output title definitions
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define CMDTTL "COMMAND"
|
|
Packit |
6f02de |
extern int CmdColW;
|
|
Packit |
6f02de |
#define CNTXTTL "SECURITY-CONTEXT"
|
|
Packit |
6f02de |
extern int CntxColW;
|
|
Packit |
6f02de |
#define DEVTTL "DEVICE"
|
|
Packit |
6f02de |
extern int DevColW;
|
|
Packit |
6f02de |
#define FCTTL "FCT"
|
|
Packit |
6f02de |
extern int FcColW;
|
|
Packit |
6f02de |
#define FDTTL "FD"
|
|
Packit |
6f02de |
extern int FdColW;
|
|
Packit |
6f02de |
#define FGTTL "FILE-FLAG"
|
|
Packit |
6f02de |
extern int FgColW;
|
|
Packit |
6f02de |
#define FSTTL "FILE-ADDR"
|
|
Packit |
6f02de |
extern int FsColW;
|
|
Packit |
6f02de |
#define NITTL "NODE-ID"
|
|
Packit |
6f02de |
extern int NiColW;
|
|
Packit |
6f02de |
extern char *NiTtl;
|
|
Packit |
6f02de |
#define NLTTL "NLINK"
|
|
Packit |
6f02de |
extern int NlColW;
|
|
Packit |
6f02de |
#define NMTTL "NAME"
|
|
Packit |
6f02de |
extern int NmColW;
|
|
Packit |
6f02de |
#define NODETTL "NODE"
|
|
Packit |
6f02de |
extern int NodeColW;
|
|
Packit |
6f02de |
#define OFFTTL "OFFSET"
|
|
Packit |
6f02de |
#define PGIDTTL "PGID"
|
|
Packit |
6f02de |
extern int PgidColW;
|
|
Packit |
6f02de |
#define PIDTTL "PID"
|
|
Packit |
6f02de |
extern int PidColW;
|
|
Packit |
6f02de |
#define PPIDTTL "PPID"
|
|
Packit |
6f02de |
extern int PpidColW;
|
|
Packit |
6f02de |
#define SZTTL "SIZE"
|
|
Packit |
6f02de |
#define SZOFFTTL "SIZE/OFF"
|
|
Packit |
6f02de |
extern int SzOffColW;
|
|
Packit |
6f02de |
#define TASKCMDTTL "TASKCMD"
|
|
Packit |
6f02de |
extern int TaskCmdColW;
|
|
Packit |
6f02de |
#define TASKTIDTTL "TID"
|
|
Packit |
6f02de |
extern int TaskTidColW;
|
|
Packit |
6f02de |
#define TYPETTL "TYPE"
|
|
Packit |
6f02de |
extern int TypeColW;
|
|
Packit |
6f02de |
#define USERTTL "USER"
|
|
Packit |
6f02de |
extern int UserColW;
|
|
Packit |
6f02de |
#define ZONETTL "ZONE"
|
|
Packit |
6f02de |
extern int ZoneColW;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
/*
|
|
Packit |
6f02de |
* Selection flags
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#define PS_PRI 1 /* primary process selection -- e.g.,
|
|
Packit |
6f02de |
* by PID or UID */
|
|
Packit |
6f02de |
#define PS_SEC 2 /* secondary process selection -- e.g.,
|
|
Packit |
6f02de |
* by directory or file */
|
|
Packit |
6f02de |
#define SELCMD 0x0001 /* select process by command name */
|
|
Packit |
6f02de |
#define SELCNTX 0x0002 /* select security context (-Z) */
|
|
Packit |
6f02de |
#define SELFD 0x0004 /* select file by descriptor name */
|
|
Packit |
6f02de |
#define SELNA 0x0008 /* select socket by address (-i@...) */
|
|
Packit |
6f02de |
#define SELNET 0x0010 /* select Internet socket files (-i) */
|
|
Packit |
6f02de |
#define SELNFS 0x0020 /* select NFS files (-N) */
|
|
Packit |
6f02de |
#define SELNLINK 0x0040 /* select based on link count */
|
|
Packit |
6f02de |
#define SELNM 0x0080 /* select by name */
|
|
Packit |
6f02de |
#define SELPGID 0x0100 /* select process group IDs (-g) */
|
|
Packit |
6f02de |
#define SELPID 0x0200 /* select PIDs (-p) */
|
|
Packit |
6f02de |
#define SELUID 0x0400 /* select UIDs (-u) */
|
|
Packit |
6f02de |
#define SELUNX 0x0800 /* select UNIX socket (-U) */
|
|
Packit |
6f02de |
#define SELZONE 0x1000 /* select zone (-z) */
|
|
Packit |
6f02de |
#define SELEXCLF 0x2000 /* file selection excluded */
|
|
Packit |
6f02de |
#define SELTASK 0x4000 /* select tasks (-K) */
|
|
Packit |
6f02de |
#define SELPINFO 0x8000 /* selected for pipe info (cleared in
|
|
Packit |
6f02de |
* link_lfile() */
|
|
Packit |
6f02de |
#define SELUXSINFO 0x10000 /* selected for UNIX socket info;
|
|
Packit |
6f02de |
* cleared in link_lfile() */
|
|
Packit |
6f02de |
#define SELPTYINFO 0x20000 /* selected for pseudoterminal info;
|
|
Packit |
6f02de |
* cleared in link_lfile() */
|
|
Packit |
6f02de |
#define SELALL (SELCMD|SELCNTX|SELFD|SELNA|SELNET|SELNM|SELNFS|SELPID|SELUID|SELUNX|SELZONE|SELTASK)
|
|
Packit |
6f02de |
#define SELPROC (SELCMD|SELCNTX|SELPGID|SELPID|SELUID|SELZONE|SELTASK)
|
|
Packit |
6f02de |
/* process selecters */
|
|
Packit |
6f02de |
#define SELFILE (SELFD|SELNFS|SELNLINK|SELNM) /* file selecters */
|
|
Packit |
6f02de |
#define SELNW (SELNA|SELNET|SELUNX) /* network selecters */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
/*
|
|
Packit |
6f02de |
* Structure definitions
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HAS_AFS)
|
|
Packit |
6f02de |
struct afsnode { /* AFS pseudo-node structure */
|
|
Packit |
6f02de |
dev_t dev;
|
|
Packit |
6f02de |
unsigned char ino_st; /* 1 if inode has a value */
|
|
Packit |
6f02de |
unsigned char nlink_st; /* 1 if nlink has a value */
|
|
Packit |
6f02de |
INODETYPE inode;
|
|
Packit |
6f02de |
unsigned long size;
|
|
Packit |
6f02de |
long nlink;
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
# endif /* defined(HAS_AFS) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int AllProc;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HAS_STD_CLONE)
|
|
Packit |
6f02de |
struct clone {
|
|
Packit |
6f02de |
int dx; /* index of device entry in Devtp[] */
|
|
Packit |
6f02de |
struct clone *next; /* forward link */
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
extern struct clone *Clone;
|
|
Packit |
6f02de |
# endif /* defined(HAS_STD_CLONE) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASNLIST)
|
|
Packit |
6f02de |
struct drive_Nl { /* data to drive build_Nl() */
|
|
Packit |
6f02de |
char *nn; /* nickname for lookups */
|
|
Packit |
6f02de |
char *knm; /* kernel variable for name list */
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
extern struct drive_Nl Drive_Nl[]; /* defined in dstore.c */
|
|
Packit |
6f02de |
# endif /* defined(HASNLIST) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
/*
|
|
Packit |
6f02de |
* Global storage definitions (including their structure definitions)
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
typedef struct efsys_list {
|
|
Packit |
6f02de |
char *path; /* path to file system for which kernel
|
|
Packit |
6f02de |
* blocks are to be eliminated */
|
|
Packit |
6f02de |
int pathl; /* path length */
|
|
Packit |
6f02de |
int rdlnk; /* avoid readlink(2) if non-zero */
|
|
Packit |
6f02de |
struct mounts *mp; /* local mount table entry pointer */
|
|
Packit |
6f02de |
struct efsys_list *next; /* next efsys_list entry pointer */
|
|
Packit |
6f02de |
} efsys_list_t;
|
|
Packit |
6f02de |
extern efsys_list_t *Efsysl; /* file systems for which kernel blocks
|
|
Packit |
6f02de |
* are to be eliminated */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct int_lst {
|
|
Packit |
6f02de |
int i; /* integer argument */
|
|
Packit |
6f02de |
int f; /* find state -- meaningful only if
|
|
Packit |
6f02de |
* x == 0 */
|
|
Packit |
6f02de |
int x; /* excluded state */
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
typedef struct lsof_rx { /* regular expression table entry */
|
|
Packit |
6f02de |
char *exp; /* original regular expression */
|
|
Packit |
6f02de |
regex_t cx; /* compiled expression */
|
|
Packit |
6f02de |
int mc; /* match count */
|
|
Packit |
6f02de |
} lsof_rx_t;
|
|
Packit |
6f02de |
extern lsof_rx_t *CmdRx;
|
|
Packit |
6f02de |
extern int NCmdRxU;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASFSTRUCT)
|
|
Packit |
6f02de |
struct pff_tab { /* print file flags table structure */
|
|
Packit |
6f02de |
long val; /* flag value */
|
|
Packit |
6f02de |
char *nm; /* name to print for flag */
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
# endif /* defined(HASFSTRUCT) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASEPTOPTS)
|
|
Packit |
6f02de |
typedef struct pxinfo { /* hashed pipe, UNIX socket or pseudo-
|
|
Packit |
6f02de |
* terminal inode information */
|
|
Packit |
6f02de |
INODETYPE ino; /* file's inode */
|
|
Packit |
6f02de |
struct lfile *lf; /* connected peer file */
|
|
Packit |
6f02de |
int lpx; /* connected process index */
|
|
Packit |
6f02de |
struct pxinfo *next; /* next entry for hashed inode */
|
|
Packit |
6f02de |
} pxinfo_t;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
typedef struct uxsin { /* UNIX socket information */
|
|
Packit |
6f02de |
INODETYPE inode; /* node number */
|
|
Packit |
6f02de |
char *pcb; /* protocol control block */
|
|
Packit |
6f02de |
char *path; /* file path */
|
|
Packit |
6f02de |
unsigned char sb_def; /* stat(2) buffer definitions */
|
|
Packit |
6f02de |
dev_t sb_dev; /* stat(2) buffer device */
|
|
Packit |
6f02de |
INODETYPE sb_ino; /* stat(2) buffer node number */
|
|
Packit |
6f02de |
dev_t sb_rdev; /* stat(2) raw device number */
|
|
Packit |
6f02de |
uint32_t ty; /* socket type */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASEPTOPTS) && defined(HASUXSOCKEPT)
|
|
Packit |
6f02de |
struct uxsin *icons; /* incoming socket conections */
|
|
Packit |
6f02de |
unsigned int icstat; /* incoming connection status
|
|
Packit |
6f02de |
* 0 == none */
|
|
Packit |
6f02de |
pxinfo_t *pxinfo; /* inode information */
|
|
Packit |
6f02de |
struct uxsin *peer; /* connected peer(s) info */
|
|
Packit |
6f02de |
# endif /* defined(HASEPTOPTS) && defined(HASUXSOCKEPT) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct uxsin *next;
|
|
Packit |
6f02de |
} uxsin_t;
|
|
Packit |
6f02de |
# endif /* defined(HASEPTOPTS) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct seluid {
|
|
Packit |
6f02de |
uid_t uid; /* User ID */
|
|
Packit |
6f02de |
char *lnm; /* specified login name (NULL = none) */
|
|
Packit |
6f02de |
unsigned char excl; /* excluded state */
|
|
Packit |
6f02de |
unsigned char f; /* selected User ID find state
|
|
Packit |
6f02de |
* (meaningful only if excl == 0) */
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASBLKDEV)
|
|
Packit |
6f02de |
extern struct l_dev *BDevtp, **BSdev;
|
|
Packit |
6f02de |
extern int BNdev;
|
|
Packit |
6f02de |
# endif /* defined(HASBLKDEV) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int CkPasswd;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct str_lst {
|
|
Packit |
6f02de |
char *str; /* string */
|
|
Packit |
6f02de |
int len; /* string length */
|
|
Packit |
6f02de |
short f; /* selected string find state */
|
|
Packit |
6f02de |
short x; /* exclusion (if non-zero) */
|
|
Packit |
6f02de |
struct str_lst *next; /* next list entry */
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
extern struct str_lst *Cmdl;
|
|
Packit |
6f02de |
extern int CmdLim;
|
|
Packit |
6f02de |
extern int Cmdni;
|
|
Packit |
6f02de |
extern int Cmdnx;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASSELINUX)
|
|
Packit |
6f02de |
typedef struct cntxlist {
|
|
Packit |
6f02de |
char *cntx; /* zone name */
|
|
Packit |
6f02de |
int f; /* "find" flag (used only in CntxArg) */
|
|
Packit |
6f02de |
struct cntxlist *next; /* next zone hash entry */
|
|
Packit |
6f02de |
} cntxlist_t;
|
|
Packit |
6f02de |
extern cntxlist_t *CntxArg;
|
|
Packit |
6f02de |
extern int CntxStatus;
|
|
Packit |
6f02de |
# endif /* defined(HASSELINUX) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASDCACHE)
|
|
Packit |
6f02de |
extern unsigned DCcksum;
|
|
Packit |
6f02de |
extern int DCfd;
|
|
Packit |
6f02de |
extern FILE *DCfs;
|
|
Packit |
6f02de |
extern char *DCpathArg;
|
|
Packit |
6f02de |
extern char *DCpath[];
|
|
Packit |
6f02de |
extern int DCpathX;
|
|
Packit |
6f02de |
extern int DCrebuilt;
|
|
Packit |
6f02de |
extern int DCstate;
|
|
Packit |
6f02de |
extern int DCunsafe;
|
|
Packit |
6f02de |
# endif /* defined(HASDCACHE) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int DChelp;
|
|
Packit |
6f02de |
extern dev_t DevDev;
|
|
Packit |
6f02de |
extern struct l_dev *Devtp;
|
|
Packit |
6f02de |
extern char **Dstk;
|
|
Packit |
6f02de |
extern int Dstkn;
|
|
Packit |
6f02de |
extern int Dstkx;
|
|
Packit |
6f02de |
extern int ErrStat;
|
|
Packit |
6f02de |
extern uid_t Euid;
|
|
Packit |
6f02de |
extern int Fand;
|
|
Packit |
6f02de |
extern int Fblock;
|
|
Packit |
6f02de |
extern int Fcntx;
|
|
Packit |
6f02de |
extern int Ffield;
|
|
Packit |
6f02de |
extern int Ffilesys;
|
|
Packit |
6f02de |
extern int Fhelp;
|
|
Packit |
6f02de |
extern int Fhost;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASNCACHE)
|
|
Packit |
6f02de |
extern int Fncache;
|
|
Packit |
6f02de |
extern int NcacheReload;
|
|
Packit |
6f02de |
# endif /* defined(HASNCACHE) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int Fnet;
|
|
Packit |
6f02de |
extern int FnetTy;
|
|
Packit |
6f02de |
extern int Fnfs;
|
|
Packit |
6f02de |
extern int Fnlink;
|
|
Packit |
6f02de |
extern int Foffset;
|
|
Packit |
6f02de |
extern int Fovhd;
|
|
Packit |
6f02de |
extern int FeptE;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int Fport;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if !defined(HASNORPC_H)
|
|
Packit |
6f02de |
extern int FportMap;
|
|
Packit |
6f02de |
# endif /* !defined(HASNORPC_H) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int Fpgid;
|
|
Packit |
6f02de |
extern int Fppid;
|
|
Packit |
6f02de |
extern int Fsize;
|
|
Packit |
6f02de |
extern int Fsv;
|
|
Packit |
6f02de |
extern int FsvByf;
|
|
Packit |
6f02de |
extern int FsvFlagX;
|
|
Packit |
6f02de |
extern int Ftask;
|
|
Packit |
6f02de |
extern int Ftcptpi;
|
|
Packit |
6f02de |
extern int Fterse;
|
|
Packit |
6f02de |
extern int Funix;
|
|
Packit |
6f02de |
extern int Futol;
|
|
Packit |
6f02de |
extern int Fverbose;
|
|
Packit |
6f02de |
extern int Fwarn;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASXOPT_VALUE)
|
|
Packit |
6f02de |
extern int Fxopt;
|
|
Packit |
6f02de |
# endif /* defined(HASXOPT_VALUE) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int Fxover;
|
|
Packit |
6f02de |
extern int Fzone;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct fd_lst {
|
|
Packit |
6f02de |
char *nm; /* file descriptor name -- range if
|
|
Packit |
6f02de |
* NULL */
|
|
Packit |
6f02de |
int lo; /* range start (if nm NULL) */
|
|
Packit |
6f02de |
int hi; /* range end (if nm NULL) */
|
|
Packit |
6f02de |
struct fd_lst *next;
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
extern struct fd_lst *Fdl;
|
|
Packit |
6f02de |
extern int FdlTy; /* Fdl[] type: -1 == none
|
|
Packit |
6f02de |
* 0 == include
|
|
Packit |
6f02de |
* 1 == exclude */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct fieldsel {
|
|
Packit |
6f02de |
char id; /* field ID character */
|
|
Packit |
6f02de |
unsigned char st; /* field status */
|
|
Packit |
6f02de |
char *nm; /* field name */
|
|
Packit |
6f02de |
int *opt; /* option variable address */
|
|
Packit |
6f02de |
int ov; /* value to OR with option variable */
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
extern struct fieldsel FieldSel[];
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int Hdr;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
enum IDType {PGID, PID};
|
|
Packit |
6f02de |
extern int IgnTasks;
|
|
Packit |
6f02de |
extern char *InodeFmt_d;
|
|
Packit |
6f02de |
extern char *InodeFmt_x;
|
|
Packit |
6f02de |
extern int LastPid;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct lfile {
|
|
Packit |
6f02de |
char access;
|
|
Packit |
6f02de |
char lock;
|
|
Packit |
6f02de |
unsigned char dev_def; /* device number definition status */
|
|
Packit |
6f02de |
unsigned char inp_ty; /* inode/iproto type
|
|
Packit |
6f02de |
* 0: neither inode nor iproto
|
|
Packit |
6f02de |
* 1: print inode in decimal
|
|
Packit |
6f02de |
* 2: iproto contains string
|
|
Packit |
6f02de |
* 3: print inode in hex
|
|
Packit |
6f02de |
*/
|
|
Packit |
6f02de |
unsigned char is_com; /* common stream status */
|
|
Packit |
6f02de |
unsigned char is_nfs; /* NFS file status */
|
|
Packit |
6f02de |
unsigned char is_stream; /* stream device status */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASVXFS) && defined(HASVXFSDNLC)
|
|
Packit |
6f02de |
unsigned char is_vxfs; /* VxFS file status */
|
|
Packit |
6f02de |
# endif /* defined(HASVXFS) && defined(HASVXFSDNLC) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
unsigned char lmi_srch; /* local mount info search status:
|
|
Packit |
6f02de |
* 1 = printname() search required */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASMNTSTAT)
|
|
Packit |
6f02de |
unsigned char mnt_stat; /* mount point stat(2) status */
|
|
Packit |
6f02de |
# endif /* defined(HASMNTSTAT) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
unsigned char nlink_def; /* link count definition status */
|
|
Packit |
6f02de |
unsigned char off_def; /* offset definition status */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASEPTOPTS)
|
|
Packit |
6f02de |
unsigned char chend; /* communication channel endpoint
|
|
Packit |
6f02de |
* file */
|
|
Packit |
6f02de |
# if defined(HASPTYEPT)
|
|
Packit |
6f02de |
int tty_index; /* pseudoterminal index of slave side
|
|
Packit |
6f02de |
* (if this is the master side) */
|
|
Packit |
6f02de |
# endif /* defined(HASPTYEPT) */
|
|
Packit |
6f02de |
# endif /* defined(HASEPTOPTS) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
unsigned char rdev_def; /* rdev definition status */
|
|
Packit |
6f02de |
unsigned char sz_def; /* size definition status */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASFSTRUCT)
|
|
Packit |
6f02de |
unsigned char fsv; /* file struct value status */
|
|
Packit |
6f02de |
# endif /* defined(HASFSTRUCT) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
char fd[FDLEN];
|
|
Packit |
6f02de |
char iproto[IPROTOL];
|
|
Packit |
6f02de |
char type[TYPEL];
|
|
Packit |
6f02de |
unsigned int sf; /* select flags -- SEL* symbols */
|
|
Packit |
6f02de |
int ch; /* VMPC channel: -1 = none */
|
|
Packit |
6f02de |
int ntype; /* node type -- N_* value */
|
|
Packit |
6f02de |
SZOFFTYPE off;
|
|
Packit |
6f02de |
SZOFFTYPE sz;
|
|
Packit |
6f02de |
dev_t dev;
|
|
Packit |
6f02de |
dev_t rdev;
|
|
Packit |
6f02de |
INODETYPE inode;
|
|
Packit |
6f02de |
long nlink; /* link count */
|
|
Packit |
6f02de |
char *dev_ch;
|
|
Packit |
6f02de |
char *fsdir; /* file system directory */
|
|
Packit |
6f02de |
char *fsdev; /* file system device */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASFSINO)
|
|
Packit |
6f02de |
INODETYPE fs_ino; /* file system inode number */
|
|
Packit |
6f02de |
# endif /* defined HASFSINO) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct linaddr { /* local Internet address information */
|
|
Packit |
6f02de |
int af; /* address family: 0 for none; AF_INET;
|
|
Packit |
6f02de |
* or AF_INET6 */
|
|
Packit |
6f02de |
int p; /* port */
|
|
Packit |
6f02de |
union {
|
|
Packit |
6f02de |
struct in_addr a4; /* AF_INET Internet address */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASIPv6)
|
|
Packit |
6f02de |
struct in6_addr a6; /* AF_INET6 Internet address */
|
|
Packit |
6f02de |
# endif /* defined(HASIPv6) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
} ia;
|
|
Packit |
6f02de |
} li[2]; /* li[0]: local
|
|
Packit |
6f02de |
* li[1]: foreign */
|
|
Packit |
6f02de |
struct ltstate { /* local TCP/TPI state */
|
|
Packit |
6f02de |
int type; /* state type:
|
|
Packit |
6f02de |
* -1 == none
|
|
Packit |
6f02de |
* 0 == TCP
|
|
Packit |
6f02de |
* 1 == TPI or socket (SS_*) */
|
|
Packit |
6f02de |
union {
|
|
Packit |
6f02de |
int i; /* integer state */
|
|
Packit |
6f02de |
unsigned int ui; /* unsigned integer state */
|
|
Packit |
6f02de |
} state;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASSOOPT)
|
|
Packit |
6f02de |
unsigned char pqlens; /* pqlen status: 0 = none */
|
|
Packit |
6f02de |
unsigned char qlens; /* qlen status: 0 = none */
|
|
Packit |
6f02de |
unsigned char qlims; /* qlim status: 0 = none */
|
|
Packit |
6f02de |
unsigned char rbszs; /* rbsz status: 0 = none */
|
|
Packit |
6f02de |
unsigned char sbszs; /* sbsz status: 0 = none */
|
|
Packit |
6f02de |
int kai; /* TCP keep-alive interval */
|
|
Packit |
6f02de |
int ltm; /* TCP linger time */
|
|
Packit |
6f02de |
unsigned int opt; /* socket options */
|
|
Packit |
6f02de |
unsigned int pqlen; /* partial connection queue length */
|
|
Packit |
6f02de |
unsigned int qlen; /* connection queue length */
|
|
Packit |
6f02de |
unsigned int qlim; /* connection queue limit */
|
|
Packit |
6f02de |
unsigned long rbsz; /* receive buffer size */
|
|
Packit |
6f02de |
unsigned long sbsz; /* send buffer size */
|
|
Packit |
6f02de |
# endif /* defined(HASSOOPT) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASSOSTATE)
|
|
Packit |
6f02de |
unsigned int ss; /* socket state */
|
|
Packit |
6f02de |
# if defined(HASSBSTATE)
|
|
Packit |
6f02de |
unsigned int sbs_rcv; /* receive socket buffer state */
|
|
Packit |
6f02de |
unsigned int sbs_snd; /* send socket buffer state */
|
|
Packit |
6f02de |
# endif /* defined(HASSBSTATE) */
|
|
Packit |
6f02de |
# endif /* defined(HASSOSTATE) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASTCPOPT)
|
|
Packit |
6f02de |
unsigned int topt; /* TCP options */
|
|
Packit |
6f02de |
unsigned char msss; /* mss status: 0 = none */
|
|
Packit |
6f02de |
unsigned long mss; /* TCP maximum segment size */
|
|
Packit |
6f02de |
# endif /* defined(HASTCPOPT) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASTCPTPIQ)
|
|
Packit |
6f02de |
unsigned long rq; /* receive queue length */
|
|
Packit |
6f02de |
unsigned long sq; /* send queue length */
|
|
Packit |
6f02de |
unsigned char rqs; /* rq status: 0 = none */
|
|
Packit |
6f02de |
unsigned char sqs; /* sq status: 0 = none */
|
|
Packit |
6f02de |
# endif /* defined(HASTCPTPIQ) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASTCPTPIW)
|
|
Packit |
6f02de |
unsigned char rws; /* rw status: 0 = none */
|
|
Packit |
6f02de |
unsigned char wws; /* ww status: 0 = none */
|
|
Packit |
6f02de |
unsigned long rw; /* read window size */
|
|
Packit |
6f02de |
unsigned long ww; /* write window size */
|
|
Packit |
6f02de |
# endif /* defined(HASTCPTPIW) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
} lts;
|
|
Packit |
6f02de |
char *nm;
|
|
Packit |
6f02de |
char *nma; /* NAME column addition */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASNCACHE) && HASNCACHE<2
|
|
Packit |
6f02de |
KA_T na; /* file structure's node address */
|
|
Packit |
6f02de |
# endif /* defined(HASNCACHE) && HASNCACHE<2 */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASNCACHE) && defined(HASNCVPID)
|
|
Packit |
6f02de |
unsigned long id; /* capability ID */
|
|
Packit |
6f02de |
# endif /* defined(HASNCACHE) && defined(HASNCVPID) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASLFILEADD)
|
|
Packit |
6f02de |
HASLFILEADD
|
|
Packit |
6f02de |
# endif /* defined(HASLFILEADD) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASFSTRUCT)
|
|
Packit |
6f02de |
KA_T fsa; /* file structure address */
|
|
Packit |
6f02de |
long fct; /* file structure's f_count */
|
|
Packit |
6f02de |
long ffg; /* file structure's f_flag */
|
|
Packit |
6f02de |
long pof; /* process open-file flags */
|
|
Packit |
6f02de |
KA_T fna; /* file structure node address */
|
|
Packit |
6f02de |
# endif /* defined(HASFSTRUCT) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct lfile *next;
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
extern struct lfile *Lf, *Plf;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct lproc {
|
|
Packit |
6f02de |
char *cmd; /* command name */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASSELINUX)
|
|
Packit |
6f02de |
char *cntx; /* security context */
|
|
Packit |
6f02de |
# endif /* defined(HASSELINUX) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
short sf; /* select flags -- SEL* symbols */
|
|
Packit |
6f02de |
short pss; /* state: 0 = not selected
|
|
Packit |
6f02de |
* 1 = wholly selected
|
|
Packit |
6f02de |
* 2 = partially selected */
|
|
Packit |
6f02de |
# if defined(HASEPTOPTS)
|
|
Packit |
6f02de |
short ept; /* end point status -- EPT_* values */
|
|
Packit |
6f02de |
# endif /* defined(HASEPTOPTS) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
int pid; /* process ID */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASTASKS)
|
|
Packit |
6f02de |
int tid; /* task ID */
|
|
Packit |
6f02de |
char *tcmd; /* task command name */
|
|
Packit |
6f02de |
# endif /* HASTASKS */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
int pgid; /* process group ID */
|
|
Packit |
6f02de |
int ppid; /* parent process ID */
|
|
Packit |
6f02de |
uid_t uid; /* user ID */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASZONES)
|
|
Packit |
6f02de |
char *zn; /* zone name */
|
|
Packit |
6f02de |
# endif /* defined(HASZONES) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct lfile *file; /* open files of process */
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
extern struct lproc *Lp, *Lproc;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int MaxFd;
|
|
Packit |
6f02de |
extern char *Memory;
|
|
Packit |
6f02de |
extern int MntSup;
|
|
Packit |
6f02de |
extern char *MntSupP;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASPROCFS)
|
|
Packit |
6f02de |
extern struct mounts *Mtprocfs;
|
|
Packit |
6f02de |
# endif
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int Mxpgid;
|
|
Packit |
6f02de |
extern int Mxpid;
|
|
Packit |
6f02de |
extern int Mxuid;
|
|
Packit |
6f02de |
extern gid_t Mygid;
|
|
Packit |
6f02de |
extern int Mypid;
|
|
Packit |
6f02de |
extern uid_t Myuid;
|
|
Packit |
6f02de |
extern char *Namech;
|
|
Packit |
6f02de |
extern size_t Namechl;
|
|
Packit |
6f02de |
extern int Ndev;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASNLIST)
|
|
Packit |
6f02de |
# if !defined(NLIST_TYPE)
|
|
Packit |
6f02de |
#define NLIST_TYPE nlist
|
|
Packit |
6f02de |
# endif /* !defined(NLIST_TYPE) */
|
|
Packit |
6f02de |
extern struct NLIST_TYPE *Nl;
|
|
Packit |
6f02de |
extern int Nll;
|
|
Packit |
6f02de |
# endif /* defined(HASNLIST) */
|
|
Packit |
6f02de |
extern long Nlink;
|
|
Packit |
6f02de |
extern int Nlproc;
|
|
Packit |
6f02de |
extern char *Nmlst;
|
|
Packit |
6f02de |
extern int Npgid;
|
|
Packit |
6f02de |
extern int Npgidi;
|
|
Packit |
6f02de |
extern int Npgidx;
|
|
Packit |
6f02de |
extern int Npid;
|
|
Packit |
6f02de |
extern int Npidi;
|
|
Packit |
6f02de |
extern int Npidx;
|
|
Packit |
6f02de |
extern int Npuns;
|
|
Packit |
6f02de |
extern int Ntype;
|
|
Packit |
6f02de |
extern int Nuid;
|
|
Packit |
6f02de |
extern int Nuidexcl;
|
|
Packit |
6f02de |
extern int Nuidincl;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct nwad {
|
|
Packit |
6f02de |
char *arg; /* argument */
|
|
Packit |
6f02de |
char *proto; /* protocol */
|
|
Packit |
6f02de |
int af; /* address family -- e.g.,
|
|
Packit |
6f02de |
* AF_INET, AF_INET6 */
|
|
Packit |
6f02de |
unsigned char a[MAX_AF_ADDR]; /* address */
|
|
Packit |
6f02de |
int sport; /* starting port */
|
|
Packit |
6f02de |
int eport; /* ending port */
|
|
Packit |
6f02de |
int f; /* find state */
|
|
Packit |
6f02de |
struct nwad *next; /* forward link */
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
extern struct nwad *Nwad;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int OffDecDig;
|
|
Packit |
6f02de |
extern char *Pn;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASFSTRUCT)
|
|
Packit |
6f02de |
extern struct pff_tab Pff_tab[]; /* file flags table */
|
|
Packit |
6f02de |
extern struct pff_tab Pof_tab[]; /* process open file flags table */
|
|
Packit |
6f02de |
# endif /* defined(HASFSTRUCT) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASPROCFS)
|
|
Packit |
6f02de |
struct procfsid {
|
|
Packit |
6f02de |
pid_t pid; /* search PID */
|
|
Packit |
6f02de |
char *nm; /* search name */
|
|
Packit |
6f02de |
unsigned char f; /* match found if == 1 */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASPINODEN)
|
|
Packit |
6f02de |
INODETYPE inode; /* search inode number */
|
|
Packit |
6f02de |
# endif /* defined(HASPINODEN) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
struct procfsid *next; /* forward link */
|
|
Packit |
6f02de |
};
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int Procfind;
|
|
Packit |
6f02de |
extern struct procfsid *Procfsid;
|
|
Packit |
6f02de |
extern int Procsrch;
|
|
Packit |
6f02de |
# endif /* defined(HASPROCFS) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
extern int PrPass;
|
|
Packit |
6f02de |
extern int RptTm;
|
|
Packit |
6f02de |
extern struct l_dev **Sdev;
|
|
Packit |
6f02de |
extern int SelAll;
|
|
Packit |
6f02de |
extern int Selflags;
|
|
Packit |
6f02de |
extern int SelProc;
|
|
Packit |
6f02de |
extern int Setgid;
|
|
Packit |
6f02de |
extern int Selinet;
|
|
Packit |
6f02de |
extern int Setuidroot;
|
|
Packit |
6f02de |
extern struct sfile *Sfile;
|
|
Packit |
6f02de |
extern struct int_lst *Spgid;
|
|
Packit |
6f02de |
extern struct int_lst *Spid;
|
|
Packit |
6f02de |
extern struct seluid *Suid;
|
|
Packit |
6f02de |
extern char *SzOffFmt_0t;
|
|
Packit |
6f02de |
extern char *SzOffFmt_d;
|
|
Packit |
6f02de |
extern char *SzOffFmt_dv;
|
|
Packit |
6f02de |
extern char *SzOffFmt_x;
|
|
Packit |
6f02de |
extern int TaskCmdLim;
|
|
Packit |
6f02de |
extern int TaskPrtCmd;
|
|
Packit |
6f02de |
extern int TaskPrtTid;
|
|
Packit |
6f02de |
extern int TcpStAlloc;
|
|
Packit |
6f02de |
extern unsigned char *TcpStI;
|
|
Packit |
6f02de |
extern int TcpStIn;
|
|
Packit |
6f02de |
extern int TcpStOff;
|
|
Packit |
6f02de |
extern unsigned char *TcpStX;
|
|
Packit |
6f02de |
extern int TcpStXn;
|
|
Packit |
6f02de |
extern int TcpNstates;
|
|
Packit |
6f02de |
extern char **TcpSt;
|
|
Packit |
6f02de |
extern char Terminator;
|
|
Packit |
6f02de |
extern int TmLimit;
|
|
Packit |
6f02de |
extern int UdpStAlloc;
|
|
Packit |
6f02de |
extern unsigned char *UdpStI;
|
|
Packit |
6f02de |
extern int UdpStIn;
|
|
Packit |
6f02de |
extern int UdpStOff;
|
|
Packit |
6f02de |
extern unsigned char *UdpStX;
|
|
Packit |
6f02de |
extern int UdpStXn;
|
|
Packit |
6f02de |
extern int UdpNstates;
|
|
Packit |
6f02de |
extern char **UdpSt;
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
# if defined(HASZONES)
|
|
Packit |
6f02de |
typedef struct znhash {
|
|
Packit |
6f02de |
char *zn; /* zone name */
|
|
Packit |
6f02de |
int f; /* "find" flag (used only in ZoneArg) */
|
|
Packit |
6f02de |
struct znhash *next; /* next zone hash entry */
|
|
Packit |
6f02de |
} znhash_t;
|
|
Packit |
6f02de |
extern znhash_t **ZoneArg;
|
|
Packit |
6f02de |
# endif /* defined(HASZONES) */
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#include "proto.h"
|
|
Packit |
6f02de |
#include "dproto.h"
|
|
Packit |
6f02de |
|
|
Packit |
6f02de |
#endif /* LSOF_H */
|