summaryrefslogtreecommitdiff
path: root/dialects/uw/uw7/fs/nsc_cfs/cnode.h
diff options
context:
space:
mode:
Diffstat (limited to 'dialects/uw/uw7/fs/nsc_cfs/cnode.h')
-rw-r--r--dialects/uw/uw7/fs/nsc_cfs/cnode.h78
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) */