This is lsof.h in view mode; [Download] [Up]
/*
* lsof.h - common header file for lsof
*/
/*
* $Id: lsof.h,v 1.8 97/10/24 08:00:40 abe Exp $
*/
#if !defined(LSOF_H)
#define LSOF_H 1
#include "machine.h"
#include "lsof_fields.h"
#include <ctype.h>
#include <errno.h>
#include <sys/types.h>
#include <netinet/in_systm.h>
#include <netdb.h>
#include <pwd.h>
#include <stdio.h>
#include <sys/stat.h>
/*
* Definitions of structures that may be needed by dlsof.h
*/
struct l_dev {
dev_t rdev; /* device */
ino_t inode; /* inode number */
char *name; /* name */
int v; /* has been verified
* (when DCUnsafe == 1) */
};
#include "dlsof.h"
extern int errno;
extern char *optarg;
extern int optind;
#define ACCESSERRFMT "%s: WARNING: access %s: %s\n"
# if defined(HASDCACHE)
#define CRC_POLY 0120001 /* CRC-16 polynomial */
#define CRC_TBLL 256 /* crc table length for software */
#define CRC_BITS 8 /* number of bits contributing */
# endif /* defined(HASDCACHE) */
#define CMDL 9 /* maximum number of characters from
* command name to print in COMMAND
* column */
#define CWD " cwd" /* current working directory fd name */
#define FDLEN 8 /* fd printing array length */
#define IDINCR 10 /* PID/PGRP table malloc() increment */
#define IPROTOL 6 /* Internet protocol length */
#define LOGINML 9 /* login name length */
#define LPROCINCR 128 /* Lproc[] allocation increment */
#define LSOF_URL "ftp://vic.cc.purdue.edu/pub/tools/unix/lsof"
#define MAXDCPATH 4 /* paths in DCpath[] */
#define MAXNWAD 100 /* maximum network addresses */
#define N_REGLR 0 /* regular file system node */
#define N_AFS 1 /* AFS node */
#define N_AUTO 2 /* automount node */
#define N_BLK 3 /* block device node */
#define N_CACHE 4 /* cached file system node */
#define N_CDFS 5 /* CD-ROM node */
#define N_CHR 6 /* character device node */
#define N_COM 7 /* streams common device node */
#define N_DOOR 8 /* DOOR node */
#define N_FIFO 9 /* FIFO node */
#define N_HSFS 10 /* High Sierra node */
#define N_KERN 11 /* BSD /kern node */
#define N_LOFS 12 /* loopback node */
#define N_MPC 13 /* multiplexed device node */
#define N_MVFS 14 /* multi-volume file system node (?) */
#define N_NFS 15 /* NFS node */
#define N_NM 16 /* named file system node */
#define N_OBJF 17 /* objfs file system node */
#define N_PCFS 18 /* PC file system node */
#define N_PIPE 19 /* pipe device node */
#define N_PROC 20 /* /proc node */
#define N_SOCK 21 /* sock_vnodeops node */
#define N_SPEC 22 /* spec_vnodeops node */
#define N_STREAM 23 /* stream node */
#define N_TMP 24 /* tmpfs node */
#define N_UFS 25 /* Unix file system node */
#define N_VXFS 26 /* Veritas file system node */
#define N_XFS 27 /* XFS node */
#define RPTTM 15 /* default repeat seconds */
#define RTD " rtd" /* root directory fd name */
#define TCPTPI_QUEUES 1 /* report TCP/TPI queue lengths */
#define TCPTPI_STATE 2 /* report TCP/TPI state */
#define TCPTPI_WINDOWS 4 /* report TCP/TPI window sizes */
#define TCPTPI_ALL (TCPTPI_QUEUES | TCPTPI_STATE | TCPTPI_WINDOWS)
/* report all TCP/TPI info */
#define TMLIMIT 15 /* readlink() & stat() timeout sec */
#define TMLIMMIN 2 /* minimum timeout */
#define TYPEL 8 /* type character length */
#define UIDCACHEL 1024 /* UID cache length */
#define UIDINCR 10 /* UID table malloc() increment */
#define USERPRTL 8 /* UID/login print length limit */
# if !defined(SZOFFTYPE)
#define SZOFFTYPE unsigned long /* type for size and offset */
#undef SZOFFPSPEC
#define SZOFFPSPEC "l" /* SZOFFTYPE printf specification
* modifier */
# endif /* !defined(SZOFFTYPE) */
/*
* Output title definitions
*/
#define CMDTTL "COMMAND"
extern int CmdColW;
#define DEVTTL "DEVICE"
extern int DevColW;
#define FDTTL "FD"
extern int FdColW;
#define INOTTL "INODE"
extern int InoColW;
#define NMTTL "NAME"
extern int NmColW;
#define OFFTTL "OFFSET"
#define PGRPTTL "PGRP"
extern int PgrpColW;
#define PIDTTL "PID"
extern int PidColW;
#define PPIDTTL "PPID"
extern int PpidColW;
#define SZTTL "SIZE"
#define SZOFFTTL "SIZE/OFF"
extern int SzOffColW;
#define TYPETTL "TYPE"
extern int TypeColW;
#define USERTTL "USER"
extern int UserColW;
/*
* Selection flags
*/
#define PS_PRI 1 /* primary process selection -- e.g.,
* by PID or UID */
#define PS_SEC 2 /* secondary process selection -- e.g.,
* by directory or file */
#define SELCMD 0x001 /* select process by command name */
#define SELFD 0x002 /* select file by descriptor name */
#define SELNA 0x004 /* select socket by address (-i@...) */
#define SELNET 0x008 /* select Internet socket files (-i) */
#define SELNFS 0x010 /* select NFS files (-N) */
#define SELNM 0x020 /* select by name */
#define SELPGRP 0x040 /* select process group IDs (-g) */
#define SELPID 0x080 /* select PIDs (-p) */
#define SELUID 0x100 /* select UIDs (-u) */
#define SELUNX 0x200 /* select Unix socket (-U) */
#define SELALL (SELCMD|SELFD|SELNA|SELNET|SELNM|SELNFS|SELPID|SELUID|SELUNX)
/*
* Structure definitions
*/
#if defined(HAS_AFS)
struct afsnode { /* AFS pseudo-node structure */
dev_t dev;
unsigned char ino_st; /* 1 if inode has a value */
unsigned long inode;
unsigned long size;
};
#endif /* defined(HAS_AFS) */
#if defined(HASNLIST)
struct drive_Nl { /* data to drive build_Nl() */
char *nn; /* nickname for lookups */
char *knm; /* kernel variable for name list */
};
extern struct drive_Nl Drive_Nl[]; /* defined in dstore.c */
#endif /* defined(HASNLIST) */
/*
* Global storage definitions (including their structure definitions)
*/
struct int_lst {
int i; /* integer argument */
int f; /* find state */
};
struct seluid {
uid_t uid; /* User ID */
char *lnm; /* specified login name (NULL = none) */
unsigned char excl; /* excluded state */
unsigned char f; /* selected User ID find state
* (meaningful only if excl == 0) */
};
extern int CkPasswd;
struct str_lst {
char *str; /* string */
int len; /* string length */
int f; /* selected string find state */
struct str_lst *next; /* next list entry */
};
extern struct str_lst *Cmdl;
# if defined(HASDCACHE)
extern unsigned DCcksum;
extern int DCfd;
extern FILE *DCfs;
extern char *DCpathArg;
extern char *DCpath[];
extern int DCpathX;
extern int DCrebuilt;
extern int DCstate;
extern int DCunsafe;
# endif /* defined(HASDCACHE) */
extern int DChelp;
extern struct l_dev *Devtp;
# if defined(HASBLKDEV)
extern struct l_dev *BDevtp, **BSdev;
extern int BNdev;
# endif /* defined(HASBLKDEV) */
extern int Fand;
extern int Fblock;
extern int Ffield;
extern int Fhelp;
extern int Fhost;
# if defined(HASNCACHE)
extern int Fncache;
# endif /* defined(HASNCACHE) */
extern int Fnet;
extern int Fnfs;
extern int Foffset;
extern int Fovhd;
extern int Fport;
extern int Fpgrp;
# if defined(HASPPID)
extern int Fppid;
# endif /* defined(HASPPID) */
extern int Fsize;
extern int Ftcptpi;
extern int Fterse;
extern int Funix;
extern int Futol;
extern int Fverbose;
extern int Fwarn;
# if defined(HASXOPT_VALUE)
extern int Fxopt;
# endif /* defined(HASXOPT_VALUE) */
extern struct str_lst *Fdl;
struct fieldsel {
char id; /* field ID character */
unsigned char st; /* field status */
char *nm; /* field name */
};
extern struct fieldsel FieldSel[];
extern int Hdr;
enum IDType {PGRP, PID};
struct lfile {
char access;
char lock;
unsigned char dev_def; /* device number definition status */
unsigned char inp_ty; /* inode/iproto type
* 0: neither inode nor iproto
* 1: inode contains number
* 2: iproto contains string */
unsigned char is_com; /* common stream status */
unsigned char is_nfs; /* NFS file status */
unsigned char is_stream; /* stream device status */
# if defined(HASVXFS) && defined(HASVXFSDNLC)
unsigned char is_vxfs; /* VxFS file status */
# endif /* defined(HASVXFS) && defined(HASVXFSDNLC) */
unsigned char off_def; /* offset definition status */
unsigned char sz_def; /* size definition status */
char fd[FDLEN];
char iproto[IPROTOL];
char type[TYPEL];
short sf; /* select flags -- SEL* symbols */
int ch; /* VMPC channel: -1 = none */
int ntype; /* node type -- N_* value */
SZOFFTYPE off;
SZOFFTYPE sz;
dev_t dev;
unsigned long inode;
char *dev_ch;
char *fsdir; /* file system directory */
char *fsdev; /* file system device */
# if defined(HASFSINO)
unsigned long fs_ino; /* file system inode number */
# endif /* defined HASFSINO) */
struct linaddr { /* local Internet address information */
int as; /* address status: 0 == none */
int p; /* port */
struct in_addr ia; /* Internet address */
} li[2]; /* li[0]: local
* li[1]: foreign */
struct ltstate { /* local TCP/TPI state */
int type; /* state type: -1 == none
* 0 == TCP
* 1 == TPI */
union {
int i; /* integer state */
unsigned int u; /* unsigned integer state */
} state;
#if defined(HASTCPTPIQ)
unsigned long rq; /* receive queue length */
unsigned long sq; /* send queue length */
unsigned char rqs; /* rq status: 0 = none */
unsigned char sqs; /* sq status: 0 = none */
#endif /* defined(HASTCPTPIQ) */
#if defined(HASTCPTPIW)
unsigned char rws; /* rw status: 0 = none */
unsigned char wws; /* ww status: 0 = none */
unsigned long rw; /* read window size */
unsigned long ww; /* write window size */
#endif /* defined(HASTCPTPIW) */
} lts;
char *nm;
char *nma; /* NAME column addition */
# if defined(HASNCACHE)
unsigned long na; /* name cache lookup node address */
# if defined(HASNCAPID)
unsigned long id; /* capability ID */
# endif /* defined(HASNCAPID) */
# endif /* defined(HASNCACHE) */
# if defined(HASLFILEADD)
HASLFILEADD
# endif /* defined(HASLFILEADD) */
struct lfile *next;
};
extern struct lfile *Lf, *Plf;
struct lproc {
char *cmd; /* command name */
short sf; /* select flags -- SEL* symbols */
short pss; /* state: 0 = not selected
* 1 = wholly selected
* 2 = partially selected */
int pid; /* process ID */
int pgrp; /* process group ID */
int ppid; /* parent process ID */
uid_t uid; /* user ID */
struct lfile *file; /* open files of process */
};
extern struct lproc *Lp, *Lproc;
extern char *Memory;
extern struct mounts *Mtab;
# if defined(HASPROCFS)
extern struct mounts *Mtprocfs;
# endif
extern int Mxpgrp;
extern int Mxpid;
extern int Mxuid;
extern gid_t Mygid;
extern int Mypid;
extern uid_t Myuid;
extern char *Namech;
extern int Ndev;
# if defined(HASNLIST)
# if !defined(NLIST_TYPE)
#define NLIST_TYPE nlist
# endif /* !defined(NLIST_TYPE) */
extern struct NLIST_TYPE *Nl;
extern int Nll;
# endif /* defined(HASNLIST) */
extern int Nlproc;
extern char *Nmlst;
extern int Npgrp;
extern int Npid;
extern int Npuns;
extern int Ntype;
extern int Nuid;
extern int Nuidexcl;
extern int Nuidincl;
struct nwad {
char *arg; /* argument */
char *proto; /* protocol */
unsigned char a[4]; /* address */
int sport; /* starting port */
int eport; /* ending port */
int f; /* find state */
struct nwad *next; /* forward link */
};
extern struct nwad *Nwad;
extern char *Pn;
# if defined(HASPROCFS)
struct procfsid {
pid_t pid; /* search PID */
# if defined(HASPINFO)
unsigned char type; /* type: 0 if one PID file in HASPROCFS
* 1 if one PID file in HASPINFO
* 2 if all files in HASPINFO */
# endif /* defined(HASPINFO) */
# if defined(HASPINODEN)
unsigned long inode; /* search inode number */
# endif /* defined(HASPINODEN) */
struct procfsid *next; /* forward link */
};
extern struct procfsid *Procfsid;
extern int Procsrch;
# endif /* defined(HASPROCFS) */
extern int PrPass;
extern int RptTm;
extern struct l_dev **Sdev;
extern int Selall;
extern int Selflags;
extern int Setgid;
extern int Selinet;
extern int Setuidroot;
extern struct sfile *Sfile;
extern struct int_lst *Spgrp;
extern struct int_lst *Spid;
extern struct seluid *Suid;
extern char *SzOffFmt_0t;
extern char *SzOffFmt_d;
extern char *SzOffFmt_dv;
extern char *SzOffFmt_x;
extern char Terminator;
extern int TmLimit;
#include "proto.h"
#include "dproto.h"
#endif /* LSOF_H */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.