summaryrefslogtreecommitdiffstats
path: root/sys/cfs/cfsk.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cfs/cfsk.h')
-rw-r--r--sys/cfs/cfsk.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/sys/cfs/cfsk.h b/sys/cfs/cfsk.h
new file mode 100644
index 0000000..5bdcd41
--- /dev/null
+++ b/sys/cfs/cfsk.h
@@ -0,0 +1,64 @@
+/*
+
+ Coda: an Experimental Distributed File System
+ Release 3.1
+
+ Copyright (c) 1987-1998 Carnegie Mellon University
+ All Rights Reserved
+
+Permission to use, copy, modify and distribute this software and its
+documentation is hereby granted, provided that both the copyright
+notice and this permission notice appear in all copies of the
+software, derivative works or modified versions, and any portions
+thereof, and that both notices appear in supporting documentation, and
+that credit is given to Carnegie Mellon University in all documents
+and publicity pertaining to direct or indirect use of this code or its
+derivatives.
+
+CODA IS AN EXPERIMENTAL SOFTWARE SYSTEM AND IS KNOWN TO HAVE BUGS,
+SOME OF WHICH MAY HAVE SERIOUS CONSEQUENCES. CARNEGIE MELLON ALLOWS
+FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON
+DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER
+RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE OR OF
+ANY DERIVATIVE WORK.
+
+Carnegie Mellon encourages users of this software to return any
+improvements or extensions that they make, and to grant Carnegie
+Mellon the rights to redistribute these changes without encumbrance.
+*/
+
+/* $Header: /afs/cs/project/coda-src/cvs/coda/kernel-src/vfs/freebsd/cfs/cfsk.h,v 1.9 1998/08/18 17:05:23 rvb Exp $ */
+
+/* Macros to manipulate the queue */
+#ifndef INIT_QUEUE
+struct queue {
+ struct queue *forw, *back;
+};
+
+#define INIT_QUEUE(head) \
+do { \
+ (head).forw = (struct queue *)&(head); \
+ (head).back = (struct queue *)&(head); \
+} while (0)
+
+#define GETNEXT(head) (head).forw
+
+#define EMPTY(head) ((head).forw == &(head))
+
+#define EOQ(el, head) ((struct queue *)(el) == (struct queue *)&(head))
+
+#define INSQUE(el, head) \
+do { \
+ (el).forw = ((head).back)->forw; \
+ (el).back = (head).back; \
+ ((head).back)->forw = (struct queue *)&(el); \
+ (head).back = (struct queue *)&(el); \
+} while (0)
+
+#define REMQUE(el) \
+do { \
+ ((el).forw)->back = (el).back; \
+ (el).back->forw = (el).forw; \
+} while (0)
+
+#endif INIT_QUEUE
OpenPOWER on IntegriCloud