/* * dlsof.h - NEXTSTEP and OPENSTEP header file for lsof */ /* * Copyright 1994 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. */ /* * $Id: dlsof.h,v 1.14 2006/03/28 22:08:17 abe Exp $ */ #if !defined(LSOF_NEXT_H) #define LSOF_NEXT_H 1 #include #include #include #include #include #include #include # if !defined(NCPUS) #define NCPUS 1 # endif #include #include #include #include #include #include #include #include #include #include #include # if !defined(KERNEL) #define KERNEL # endif #include #undef KERNEL #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include # if !defined(SHOW_UTT) #define SHOW_UTT # endif /* * Define simple_lock_t size. */ # if STEPV>=40 && defined(m68k) #define SIMPLE_LOCK_SIZE 0 # elif defined(hppa) /* && (STEPV<40 || !defined(m68k)) */ #define SIMPLE_LOCK_SIZE 4 # else /* (STEPV<40 || !defined(m68k)) && !defined(hppa) */ #define SIMPLE_LOCK_SIZE 1 # endif /* STEPV>=40 && defined(m68k) */ # if !defined(SIMPLE_LOCK_SIZE) #define SIMPLE_LOCK_SIZE 1 # endif /* !defined(SIMPLE_LOCK_SIZE) */ # if STEPV>=40 /* * Define lock_data_t that was removed from OPENSTEP 4.x's . */ typedef struct lock { char *thread; unsigned int read_count:16, want_upgrade:1, want_write:1, waiting:1, can_sleep:1, recursion_depth:12; # if SIMPLE_LOCK_SIZE>0 caddr_t interlock[SIMPLE_LOCK_SIZE]; # endif /* SIMPLE_LOCK_SIZE>0 */ } lock_data_t; # endif /* STEPV>=40 */ #include #define u_comm uu_comm #define u_cdir uu_cdir #define u_rdir uu_rdir #undef SHOW_UTT #include #include #include typedef int pid_t; /* * The following substitution compensates for the snode.h that NeXT does * not supply in NEXTSTEP 2.0 and above. The value of interest is s_realvp. */ struct snode { struct snode *s_next; /* must be first */ struct vnode s_vnode; /* vnode associated with this snode */ struct vnode *s_realvp; /* vnode for the fs entry (if any) */ }; /* * Miscellaneous definitions. */ #define COMP_P const void #define DEVINCR 1024 /* device table malloc() increment */ typedef off_t KA_T; #define KMEM "/dev/kmem" #define MALLOC_P void #define FREE_P MALLOC_P #define MALLOC_S size_t #define MAXSYSCMDL MAXCOMLEN /* max system command name length */ #define PROCDFLT 256 /* default size of local proc table */ #define PROCMIN 5 /* processes that make a "good" scan */ #define PROCSIZE sizeof(struct proc) #define PROCTRYLM 5 /* times to try to read proc table */ #define QSORT_P void #define READLEN_T int #define STRNCPY_L int #define U_SIZE sizeof(struct user) # if !defined(VMUNIX) #define VMUNIX "/mach" # endif #define N_UNIX VMUNIX # if defined(HAS_AFS) /* * AFS definitions */ #define AFSAPATHDEF "/usr/vice/etc/afs_loadable" #define AFSDEV 1 /* AFS "fake" device number */ # if defined(HASAOPT) extern char *AFSApath; /* alternate AFS name list path * (from -A) */ # endif /* defined(HASAOPT) */ extern struct vfs *AFSVfsp; /* AFS struct vfs kernel pointer */ # endif /* defined(HAS_AFS) */ /* * Local mount information */ 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 inode number */ u_short mode; /* directory st_mode */ u_short fs_mode; /* file system st_mode */ struct mounts *next; /* forward link */ }; /* * Defines for kernel name list */ #define NL_NAME n_un.n_name /* * For kernel name cache processing */ # if defined(HASNCACHE) #include #define X_NCACHE "nch" #define X_NCSIZE "ncsz" # endif /* defined(HASNCACHE) */ /* * Defines for library readdev() function */ #define DIRTYPE direct #define HASDNAMLEN 1 /* * Search file information */ struct sfile { char *aname; /* file name argument */ 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 */ }; /* * Miscellaneous external definitions */ extern struct file *Fileptr; #define FILEPTR Fileptr /* for process_file() in lib/prfp.c */ extern int Kd; #endif /* LSOF_NEXT_H */