blob: f61ec8ac180e9f08aad144c13335b50f5bdb2667 [file] [log] [blame]
/*
* rnode.h for HP-UX 10.30 and above
*
* This header file defines the rnode structure for lsof. Lsof uses it to get
* infomation about remote (NFS) nodes -- e.g., node number and size.
*
* V. Abell <abe@purdue.edu>
* February, 1998
*/
#if !defined(LSOF_RNODE_H)
#define LSOF_RNODE_H
#include "kernbits.h"
#define _KERNEL
#include <sys/spinlock.h>
#undef _KERNEL
#include "vnode.h"
typedef struct krwlock {
lock_t *interlock;
u_int delay;
int read_count;
char want_write;
char want_upgrade;
char waiting;
char no_swap;
} krwlock_t;
typedef struct kmutex {
lock_t *spin_lockp;
int lockp_type;
} kmutex_t;
typedef struct nfs_fhandle {
int fh_len;
char fh_buf[64];
} nfs_fhandle_t;
typedef struct rnode {
KA_T r_freef;
KA_T r_freeb;
KA_T r_hash;
vnode_t r_vnode; /* the vnode that contains this rnode */
krwlock_t r_rwlock;
kmutex_t r_statelock;
nfs_fhandle_t r_fh;
uint16_t r_flags;
int16_t r_error;
KA_T r_rcred;
KA_T r_wcred;
KA_T r_unlcred;
KA_T r_unlname;
KA_T r_unldvp;
int64_t r_size; /* This should be an off_t, but there's an
* unresolvable conflict between the kernel
* and application off_t sizes. */
struct vattr r_attr; /* the vnode attributes -- e.g., node number,
* size, etc. (See ./vnode.h.) */
/*
* These q4 elements are ignored.
time_t r_attrtime;
time_t r_mtime;
int32_t r_mapcnt;
uint32_t r_count;
int32_t r_seq;
int *r_acc;
int *r_dir;
int *r_direof;
symlink_cache r_symlink;
u_char r_verf;
commit_t r_commit;
recover_t r_recover;
uint32_t r_truncaddr;
uint32_t r_iocnt;
kcondvar_t r_trunccv;
kmutex_t r_serialize;
u_char r_cookieverf;
int *r_lmpl;
daddr_t r_lastr;
kcondvar_t r_cv;
int *r_owner;
short r_ownercount;
* Those q4 elements were ignored.
*/
} rnode_t;
#endif /* !defined(LSOF_RNODE_H) */