blob: 9138143fc65c3c6680c6558a022bf32017a73900 [file] [log] [blame]
/*
* dlsof.h -- Darwin header file for libproc-based lsof
*/
/*
* Portions Copyright 2005-2007 Apple Inc. All rights reserved.
*
* Copyright 2005 Purdue Research Foundation, West Lafayette, Indiana
* 47907. All rights reserved.
*
* Written by Allan Nathanson, Apple Inc., and Victor A. Abell, Purdue
* University.
*
* 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 Apple Inc. 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, Apple
* Inc. 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.7 2011/08/07 22:52:30 abe Exp $
*/
#if !defined(DARWIN_LSOF_H)
#define DARWIN_LSOF_H 1
#include <stdlib.h>
#include <dirent.h>
#include <setjmp.h>
#include <signal.h>
#include <string.h>
#include <unistd.h>
#include <wctype.h>
#include <arpa/inet.h>
#include <sys/fcntl.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp_fsm.h>
#include <netinet/tcp_timer.h>
#include <rpc/rpc.h>
#include <rpc/pmap_prot.h>
#include <libproc.h>
# if DARWINV<900
#define vst_blksize st_blksize
#define vst_dev st_dev
#define vst_ino st_ino
#define vst_mode st_mode
#define vst_nlink st_nlink
#define vst_rdev st_rdev
#define vst_size st_size
# endif /* DARWINV<=900 */
#define COMP_P const void
#define DEVINCR 1024 /* device table malloc() increment */
#define DIRTYPE dirent /* directory entry type */
typedef uintptr_t KA_T;
#define KA_T_FMT_X "0x%08lx"
#define LOGINML MAXLOGNAME
#define MALLOC_P void
#define FREE_P MALLOC_P
#define MALLOC_S size_t
#define MAXSYSCMDL (MAXCOMLEN - 1) /* max system command name length */
#define MOUNTED MNT_MNTTAB
#define QSORT_P void
#define READLEN_T int
#define STRNCPY_L size_t
#define SZOFFTYPE unsigned long long
/* size and offset internal storage
* type */
#define SZOFFPSPEC "ll" /* SZOFFTYPE printf specification
* modifier */
/*
* Global storage definitions (including their structure definitions)
*/
struct file *Cfp;
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 */
int is_nfs; /* 1 if NFS file system, 0 if not */
struct mounts *next; /* forward link */
};
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
# if !defined(offsetof)
#define offsetof(type, member) ((size_t)(&((type *)0)->member))
# endif /* !defined(offsetof) */
#endif /* DARWIN_LSOF_H */