diff options
Diffstat (limited to 'dialects/uw/uw7/fs/nsc_cfs/cnode.h')
-rw-r--r-- | dialects/uw/uw7/fs/nsc_cfs/cnode.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/dialects/uw/uw7/fs/nsc_cfs/cnode.h b/dialects/uw/uw7/fs/nsc_cfs/cnode.h new file mode 100644 index 0000000..dfdbd89 --- /dev/null +++ b/dialects/uw/uw7/fs/nsc_cfs/cnode.h @@ -0,0 +1,78 @@ +/* + * cnode.h -- Vic Abell's definition of an nsc_cfs node - with help from + * the kind folks at SCO + */ + + +/* + * Copyright 2001 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. + */ + +#if !defined(FS_NSC_CFS_CNODE_H) +#define FS_NSC_CFS_CNODE_H 1 + +#include <sys/nsc_synch.h> + + +/* + * chandle_t definition from the kernel's <fs/nsc_cfs/cfs.h> + */ + +#define CFS_FHSIZE 44 + +typedef struct cfhandle { + char fh_data[CFS_FHSIZE]; +} cfhandle_t; + + +/* + * CFS node structure + */ + +typedef struct cnode { + struct cnode *c_freef; /* free list forward pointer */ + struct cnode *c_freeb; /* free list back pointer */ + struct cnode *c_hash; /* cnode hash chain */ + struct vnode c_vnode; /* vnode for remote file */ + cfhandle_t c_fh; /* file handle */ + void *c_hp; /* Hash pointer */ + u_long c_flags; /* flags, see below */ + union { + daddr_t C_nextr; /* next byte read offset (read-ahead) */ + int C_lastcookie; /* last readdir cookie */ + } c_c; + long c_owner; /* proc index for locker of cnode */ + long c_count; /* number of cnode locks for c_owner */ + long c_lwpid; /* lwp id of locker of cnode */ + CONDITION_T c_cxlock; /* Synch structure */ + int c_rw_excl; /* RW locked exclusively */ + /* Credentials here are only for use by cfs-as-nfs-client. */ + struct cred *c_cred; /* current credentials */ + struct vattr c_attr; /* cached vnode attributes */ +/* + * Lsof needs nothing below c_attr. + */ +} cnode_t; +#endif /* !defined(FS_NSC_CFS_CNODE_H) */ |