diff options
Diffstat (limited to 'dialects/darwin/kmem/dlsof.h')
-rw-r--r-- | dialects/darwin/kmem/dlsof.h | 337 |
1 files changed, 337 insertions, 0 deletions
diff --git a/dialects/darwin/kmem/dlsof.h b/dialects/darwin/kmem/dlsof.h new file mode 100644 index 0000000..f5e50eb --- /dev/null +++ b/dialects/darwin/kmem/dlsof.h @@ -0,0 +1,337 @@ +/* + * dlsof.h - Darwin header file for /dev/kmem-based 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.11 2005/11/01 20:24:51 abe Exp $ + */ + + +#if !defined(DARWIN_LSOF_H) +#define DARWIN_LSOF_H 1 + +#include <stdlib.h> +#include <dirent.h> +#include <nlist.h> +#include <setjmp.h> +#include <string.h> +#include <unistd.h> +#include <sys/conf.h> +#include <sys/filedesc.h> +#include <sys/ucred.h> + +#if DARWINV<800 +#include <sys/mount.h> +#define m_stat mnt_stat +#else /* DARWINV>=800 */ +#include <sys/mount_internal.h> +#define m_stat mnt_vfsstat +#endif /* DARWINV>=800 */ + +#if DARWINV<800 +#include <sys/uio.h> +#include <sys/vnode.h> +#else /* DARWINV>=800 */ +#include <sys/vnode.h> +#define _SYS_SYSTM_H_ +struct nameidata { int dummy; }; /* to satisfy function prototypes */ +#include <sys/vnode_internal.h> +#endif /* DARWINV>=800 */ + +#include <rpc/types.h> +#define KERNEL_PRIVATE +#include <sys/socketvar.h> +#undef KERNEL_PRIVATE +#include <sys/protosw.h> +#include <sys/socket.h> +#include <sys/un.h> +#include <sys/unpcb.h> + +# if defined(AF_NDRV) +#include <net/if_var.h> +#define KERNEL +#include <sys/kern_event.h> +#undef KERNEL +#include <net/ndrv.h> +# if DARWINV>=530 +#define KERNEL 1 +#include <net/ndrv_var.h> +#undef KERNEL +# endif /* DARWINV>=530 */ +# endif /* defined(AF_NDRV) */ + +# if defined(AF_SYSTEM) +#include <sys/queue.h> +#define KERNEL +#include <sys/kern_event.h> +#undef KERNEL +# endif /* defined(AF_SYSTEM) */ + +#include <netinet/in.h> +#include <netinet/in_systm.h> +#include <netinet/ip.h> +#include <net/route.h> +#include <netinet6/ipsec.h> +#include <netinet/in_pcb.h> +#include <netinet/ip_var.h> +#include <netinet/tcp.h> +#include <netinet/tcpip.h> +#include <netinet/tcp_fsm.h> +#include <netinet/tcp_timer.h> +#include <netinet/tcp_var.h> +#include <arpa/inet.h> +#include <net/raw_cb.h> +#include <sys/domain.h> +#define pmap RPC_pmap +#include <rpc/rpc.h> +#include <rpc/pmap_prot.h> +#undef pmap + +#include <sys/quota.h> +#include <sys/event.h> + +# if DARWINV<800 +#include <paths.h> +#undef MAXNAMLEN +#include <ufs/ufs/quota.h> +#include <paths.h> +#include <ufs/ufs/quota.h> +#include <ufs/ufs/inode.h> +#include <nfs/rpcv2.h> +#include <nfs/nfs.h> +#include <nfs/nfsproto.h> +#include <nfs/nfsnode.h> + +# if DARWINV<600 +#include <hfs/hfs.h> +#undef offsetof +# else /* DARWINV>=600 */ +#define KERNEL +#include <hfs/hfs_cnode.h> +#undef KERNEL +# endif /* DARWINV<600 */ +# endif /* DARWINV<800 */ + +# if DARWINV<800 +#define time t1 /* hack to make dn_times() happy */ +#include <miscfs/devfs/devfsdefs.h> +#undef time +# endif /* DARWINV<800 */ + +# if DARWINV<800 +#define KERNEL +#include <miscfs/fdesc/fdesc.h> +#undef KERNEL +# endif /* DARWINV<800 */ + +# if DARWINV<800 +#include <sys/proc.h> +# else /* DARWINV>=800 */ +#define PROC_DEF_ENABLED +#define sleep kernel_sleep +#include <sys/proc_internal.h> +#undef sleep +# endif /* DARWINV<800 */ + +#include <kvm.h> +#undef TRUE +#undef FALSE + +# if DARWINV<800 +#include <sys/sysctl.h> +# else /* DARWINV>=800 */ +#include "/usr/include/sys/sysctl.h" +# endif /* DARWINV<800 */ + +# if DARWINV<800 +#define KERNEL +#include <sys/fcntl.h> +#include <sys/file.h> +#undef KERNEL +# else /* DARWINV>=800 */ +#include <sys/fcntl.h> +#include <sys/file_internal.h> +# endif /* DARWINV<800 */ + +# if defined(HASKQUEUE) +#include <sys/eventvar.h> +# endif /* defined(HASKQUEUE) */ + +# if defined(DTYPE_PSXSEM) +#define HASPSXSEM /* has the POSIX semaphore file + * type */ +# endif /* defined(DTYPE_PSXSEM) */ + +# if defined(DTYPE_PSXSHM) +#define HASPSXSHM /* has the POSIX shared memory + * file type */ +# endif /* defined(DTYPE_PSXSHM) */ + +struct vop_advlock_args { int dummy; }; /* to satisfy lf_advlock() prototype */ +#include <sys/lockf.h> +#include <sys/lock.h> + +/* + * Compensate for removal of MAP_ENTRY_IS_A_MAP from <vm/vm_map.h>, + * This work-around was supplied by John Polstra <jdp@polstra.com>. + */ + +# if defined(MAP_ENTRY_IS_SUB_MAP) && !defined(MAP_ENTRY_IS_A_MAP) +#define MAP_ENTRY_IS_A_MAP 0 +# endif /* defined(MAP_ENTRY_IS_SUB_MAP) && !defined(MAP_ENTRY_IS_A_MAP) */ + +#undef B_NEEDCOMMIT +#include <sys/buf.h> +#include <sys/signal.h> +#define user_sigaltstack sigaltstack +#include <sys/user.h> + +#define COMP_P const void +#define DEVINCR 1024 /* device table malloc() increment */ +#define DIRTYPE dirent /* directory entry type */ + +typedef u_long KA_T; + +#define KMEM "/dev/kmem" +#define LOGINML MAXLOGNAME +#define MALLOC_P void +#define FREE_P MALLOC_P +#define MALLOC_S size_t + +#define N_UNIX "/mach_kernel" + +#define QSORT_P void +#define READLEN_T int +#define STRNCPY_L size_t +#define SWAP "/dev/drum" + +# if DARWINV>=800 +#define SZOFFTYPE unsigned long long + /* size and offset internal storage + * type */ +#define SZOFFPSPEC "ll" /* SZOFFTYPE printf specification + * modifier */ +# endif /* DARWINV>=800 */ + + +/* + * Global storage definitions (including their structure definitions) + */ + +struct file * Cfp; + +extern int Kd; /* KMEM descriptor */ +extern KA_T Kpa; + +struct l_vfs { + KA_T addr; /* kernel address */ + fsid_t fsid; /* file system ID */ + +# if defined(MOUNT_NONE) + short type; /* type of file system */ +# else /* !defined(MOUNT_NONE) */ + char *typnm; /* file system type name */ +# endif /* defined(MOUNT_NONE) */ + + char *dir; /* mounted directory */ + char *fsname; /* file system name */ + struct l_vfs *next; /* forward link */ +}; +extern struct l_vfs *Lvfs; + +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 */ +}; + +#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 */ + +}; + +#define XDR_VOID (const xdrproc_t)xdr_void +#define XDR_PMAPLIST (const xdrproc_t)xdr_pmaplist + + +/* + * Definitions for rnmh.c + */ + +# if defined(HASNCACHE) +#include <sys/uio.h> +#include <sys/namei.h> + +# if !defined(offsetof) +#define offsetof(type, member) ((size_t)(&((type *)0)->member)) +# endif /* !defined(offsetof) */ + +#define NCACHE namecache /* kernel's structure name */ + +#define NCACHE_NM nc_name /* name in NCACHE */ + +# if DARWINV<700 +#define NCACHE_NMLEN nc_nlen /* name length in NCACHE */ +# endif /* DARWINV<700 */ + +#define NCACHE_NXT nc_hash.le_next /* link in NCACHE */ +#define NCACHE_NODEADDR nc_vp /* node address in NCACHE */ +#define NCACHE_PARADDR nc_dvp /* parent node address in NCACHE */ + +# if defined(HASNCVPID) +#define NCACHE_NODEID nc_vpid /* node ID in NCACHE */ +#define NCACHE_PARID nc_dvpid /* parent node ID in NCACHE */ +# endif /* defined(HASNCVPID) */ +# endif /* defined(HASNCACHE) */ + +#endif /* DARWIN_LSOF_H */ |