diff options
Diffstat (limited to 'dialects/uw/dlsof.h')
-rw-r--r-- | dialects/uw/dlsof.h | 358 |
1 files changed, 358 insertions, 0 deletions
diff --git a/dialects/uw/dlsof.h b/dialects/uw/dlsof.h new file mode 100644 index 0000000..72cfff2 --- /dev/null +++ b/dialects/uw/dlsof.h @@ -0,0 +1,358 @@ +/* + * dlsof.h - SCO UnixWare header file for lsof + */ + + +/* + * Copyright 1996 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. + */ + + +#if !defined(UW_LSOF_H) +#define UW_LSOF_H 1 + +#include <dirent.h> +#include <fcntl.h> +#include <malloc.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/conf.h> +#include <sys/exec.h> +#include <sys/mkdev.h> +#include <sys/mnttab.h> +#include <sys/mntent.h> +#include <netdb.h> +#include <string.h> +#include <nlist.h> +#include <sys/file.h> +#include <sys/flock.h> +#include <sys/immu.h> +#include <sys/fstyp.h> +#include <sys/fsid.h> + +# if UNIXWAREV>=70103 +#include <sys/poll.h> +#include <sys/fs/prdata.h> +#define PR_PIDDIR PR_PIDCAT_DIR +#define PR_AS PR_PIDCAT_AS +#define PR_CTL PR_PIDCAT_CTL +#define PR_STATUS PR_PIDCAT_STATUS +#define PR_MAP PR_PIDCAT_MAP +#define PR_CRED PR_PIDCAT_CRED +#define PR_SIGACT PR_PIDCAT_SIGACT +#define PR_OBJECTDIR PR_PIDCAT_OBJECTDIR +#define PR_LWPDIR PR_PIDCAT_LWP_DIR +#define PR_LWPIDDIR PR_PIDCAT_LWP_IDDIR +#define PR_LWPCTL PR_PIDCAT_LWP_CTL +#define PR_LWPSTATUS PR_PIDCAT_LWP_STATUS +#define PR_LWPSINFO PR_PIDCAT_LWP_SINFO +# endif /* UNIXWAREV>=70103 */ + +#include <sys/vfs.h> +#include <sys/vnode.h> +#include <sys/fs/memfs_mnode.h> +#include <sys/fs/namenode.h> + +# if UNIXWAREV>=70000 +#undef IREAD +#undef IWRITE +#undef IEXEC +# endif /* UNIXWAREV>=70000 */ + +#include <sys/fs/snode.h> + +# if UNIXWAREV<20102 +#include <fs/proc/prdata.h> +# else /* UNIXWAREV>=20102 */ +# if UNIXWAREV<70103 +#include <fs/procfs/prdata.h> +# endif /* UNIXWAREV<70103 */ +# endif /* UNIXWAREV<20102 */ + +#include <sys/mount.h> +#include <sys/stream.h> +#include <sys/strsubr.h> +#include <sys/sysmacros.h> +#undef major +#undef minor +#define major(d) (((d) >> L_BITSMINOR) & L_MAXMAJ) +#define minor(d) ((d) & L_MAXMIN) +#include <sys/time.h> +#include <sys/fs/s5dir.h> +#include <signal.h> +#include <sys/proc.h> +#include <sys/user.h> +#include <sys/var.h> +#include <sys/procfs.h> +#include <sys/priocntl.h> +#include <sys/tihdr.h> +#include <sys/tiuser.h> +#include <sys/un.h> +#include <rpc/types.h> +#include <nfs/nfs.h> + +#define _KERNEL +#include <sys/fs/fifonode.h> + +# if UNIXWAREV>=70000 +#include <rpc/xdr.h> +# endif /* UNIXWAREV>=70000 */ + +#include <nfs/rnode.h> +#undef _KERNEL + +#include <netinet/in.h> + +# if defined(HASIPv6) +#include <netinet/in6.h> +# if !defined(IN6_ARE_ADDR_EQUAL) +#define IN6_ARE_ADDR_EQUAL IN6_ADDR_EQUAL /* required by RFC2292 */ +# endif /* !defined(IN6_ARE_ADDR_EQUAL) */ +# endif /* defined(HASIPv6) */ + +#include <rpc/rpc.h> +#include <rpc/clnt_soc.h> +#include <rpc/pmap_prot.h> +#include <rpc/rpcent.h> +#include <sys/socket.h> +#include <net/route.h> + +# if defined(HAS_INKERNEL) +#define INKERNEL +# endif /* defined(HAS_INKERNEL) */ + +#include <netinet/in_pcb.h> + +# if defined(HAS_INKERNEL) +#undef INKERNEL +# endif /* defined(HAS_INKERNEL) */ + +# if UNIXWAREV>=70000 +#undef TCP_MAXSEG +#undef TCP_NODELAY +# endif /* UNIXWAREV>=70000 */ + +#include <netinet/tcp.h> +#include <netinet/tcp_fsm.h> + +# if UNIXWAREV<70000 +#include <netinet/tcp_kern.h> +# else /* UNIXWAREV>=70000 */ +#include <netinet/tcp_timer.h> + +# if defined(HAS_INKERNEL) +#define INKERNEL +# endif /* defined(HAS_INKERNEL) */ + +#include <netinet/tcp_var.h> + +# if defined(HAS_INKERNEL) +#undef INKERNEL +# endif /* defined(HAS_INKERNEL) */ +# endif /* UNIXWAREV<70000 */ + +#include <sys/protosw.h> +#include <sys/socketvar.h> +#include <sys/sockmod.h> + +# if UNIXWAREV>=70101 +#undef SS_ISBOUND +#undef SS_ISCONNECTED +#undef SS_ISCONNECTING +#undef SS_CANTRCVMORE +#undef SS_CANTSENDMORE +#include <sys/socksys.h> +# endif /* UNIXWAREV>=70101 */ + +#include <sys/tiuser.h> +#include <vm/hat.h> +#include <vm/as.h> +#include <vm/seg.h> + +# if UNIXWAREV>=70000 && UNIXWAREV<70103 +typedef ulong_t channel_t; /* also in types.h #if _KERNEL */ +# endif /* UNIXWAREV>=70000 && UNIXWAREV<70103 */ + +#include <vm/seg_dev.h> +#include <vm/seg_map.h> +#include <vm/seg_vn.h> + +#define COMP_P const void +#define DEVINCR 1024 /* device table malloc() increment */ +#define DIRTYPE dirent +#define FSNAMEL 4 +typedef off_t KA_T; +#define KMEM "/dev/kmem" + +# if defined(HAS_UW_NSC) +#define N_UNIX "/unix" +# else /* !defined(HAS_UW_NSC) */ +#define N_UNIX "/stand/unix" +# endif /* defined(HAS_UW_NSC) */ + +# if UNIXWAREV<70103 +#define MALLOC_P char +#define MALLOC_S unsigned +# else /* UNIXWAREV>=70103 */ +#define MALLOC_P void +#define MALLOC_S size_t +# endif /* UNIXWAREV<70103 */ + +#define FREE_P MALLOC_P +#define MAXSEGS 100 /* maximum text segments */ +#define MAXSYSCMDL (PSCOMSIZ - 1) /* max system command name length */ +#define PROCFS "/proc" +#define PROCINCR 32 /* local proc table malloc increment */ +#define PROCMIN 3 /* processes that make a "good" scan */ +#define PROCSIZE sizeof(struct proc) +#define PROCTRYLM 5 /* times to try to read proc table */ +#define QSORT_P char + +# if UNIXWAREV<7000 +#define READLEN_T unsigned +# else /* UNIXWAREV>=7000 */ +#define READLEN_T size_t +# endif /* UNIXWAREV<7000 */ + +# if defined(HASPROCFS) +#define PNSIZ 5 /* size of /HASPROCFS names */ +#define PR_INOBIAS 64L /* /HASPROCFS PID to i_number bias */ +#define PR_ROOTINO 2 /* /HASPROCFS root inode number */ +# endif + +#define STRNCPY_L size_t +#define STRNML 32 + +# if UNIXWAREV>=70000 +#define SZOFFTYPE unsigned long long + /* type for size and offset */ +#define SZOFFPSPEC "ll" /* SZOFFTYPE printf specification + * modifier */ +/* + * Use the 64 bit stat() functions, so that lsof can get parameters on + * large and small files. + */ +#define fstat fstat64 +#define lstat lstat64 +#define stat stat64 +# else /* UNIXWAREV<70000 */ +#define SZOFFTYPE unsigned long /* type for size and offset */ +#define SZOFFPSPEC "l" /* SZOFFTYPE printf specification modifier */ +# endif /* UNIXWAREV>=7000 */ + +#define U_SIZE sizeof(struct user) + + +/* + * Global storage definitions (including their structure definitions) + */ + +extern int CloneMaj; +extern char **Fsinfo; +extern int Fsinfomax; +extern int HaveCloneMaj; +extern int Kd; + +struct l_ino { + dev_t dev; /* device */ + long nlink; /* link count */ + char *nm; /* name */ + INODETYPE number; /* inode number */ + dev_t rdev; /* raw device */ + SZOFFTYPE size; /* file size */ + unsigned char dev_def; /* dev is defined */ + unsigned char nlink_def; /* link count is defined */ + unsigned char number_def; /* number is defined */ + unsigned char rdev_def; /* rdev is defined */ + unsigned char size_def; /* size is defined */ +}; + +struct mounts { + char *dir; /* directory (mounted on) */ + char *fsname; /* file system + * (symbolic links unresolved) */ + char *fsnmres; /* file system + * (symbolic links resolved) */ + dev_t dev; /* directory st_dev */ + dev_t rdev; /* directory st_rdev */ + INODETYPE inode; /* directory st_ino */ + mode_t mode; /* directory st_mode */ + mode_t fs_mode; /* file system st_mode */ + struct mounts *next; /* forward link */ + +# if defined(HASFSTYPE) + char *fstype; /* st_fstype */ +# endif + +}; + +extern short Nfstyp; + +#define X_NCACHE "ncache" +#define X_NCSIZE "ncsize" +#define NL_NAME n_name + +struct sfile { + char *aname; /* argument file name */ + char *name; /* file name (after readlink()) */ + char *devnm; /* device name (optional) */ + dev_t dev; /* device */ + dev_t rdev; /* raw device */ + u_short mode; /* S_IFMT mode bits from stat() */ + int type; /* file type: 0 = file system + * 1 = regular file */ + INODETYPE i; /* inode number */ + int f; /* file found flag */ + struct sfile *next; /* forward link */ +}; + +#include <setjmp.h> + + +/* + * Definition for ckfa.c + */ + +#define CKFA_XDEVTST strcmp(sb.st_fstype,"cdfs")==0 + + +/* + * Definition for dvch.c, isfn.c, and rdev.c + */ + +#define CLONEMAJ CloneMaj /* clone major variable name */ +#define HAS_STD_CLONE 1 /* has standard clone handling */ +#define HAVECLONEMAJ HaveCloneMaj /* clone major status variable name */ + + +/* + * Definitions for rnch.c + */ + +#if defined(HASNCACHE) +#include <sys/dnlc.h> +#endif /* defined(HASNCACHE) */ + +#endif /* UW_LSOF_H */ |