summaryrefslogtreecommitdiff
path: root/dialects/darwin/kmem/dlsof.h
diff options
context:
space:
mode:
Diffstat (limited to 'dialects/darwin/kmem/dlsof.h')
-rw-r--r--dialects/darwin/kmem/dlsof.h337
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 */