Module Name:    src
Committed By:   christos
Date:           Thu Nov 21 19:04:19 UTC 2013

Modified Files:
        src/sys/sys: queue.h

Log Message:
provide a const and a non const flavor for CIRCLEQ_END because the kernel
needs a const one. The const one is supposed to be used for comparisons
and the non-const one for assignments.


To generate a diff of this commit:
cvs rdiff -u -r1.56 -r1.57 src/sys/sys/queue.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/sys/queue.h
diff -u src/sys/sys/queue.h:1.56 src/sys/sys/queue.h:1.57
--- src/sys/sys/queue.h:1.56	Thu Nov 21 10:54:17 2013
+++ src/sys/sys/queue.h	Thu Nov 21 14:04:19 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: queue.h,v 1.56 2013/11/21 15:54:17 christos Exp $	*/
+/*	$NetBSD: queue.h,v 1.57 2013/11/21 19:04:19 christos Exp $	*/
 
 /*
  * Copyright (c) 1991, 1993
@@ -604,16 +604,16 @@ struct {								\
  */
 #if defined(_KERNEL) && defined(QUEUEDEBUG)
 #define QUEUEDEBUG_CIRCLEQ_HEAD(head, field)				\
-	if ((head)->cqh_first != CIRCLEQ_END(head) &&			\
-	    (head)->cqh_first->field.cqe_prev != CIRCLEQ_END(head))	\
+	if ((head)->cqh_first != CIRCLEQ_ENDC(head) &&			\
+	    (head)->cqh_first->field.cqe_prev != CIRCLEQ_ENDC(head))	\
 		panic("CIRCLEQ head forw %p %s:%d", (head),		\
 		      __FILE__, __LINE__);				\
-	if ((head)->cqh_last != CIRCLEQ_END(head) &&			\
-	    (head)->cqh_last->field.cqe_next != CIRCLEQ_END(head))		\
+	if ((head)->cqh_last != CIRCLEQ_ENDC(head) &&			\
+	    (head)->cqh_last->field.cqe_next != CIRCLEQ_ENDC(head))		\
 		panic("CIRCLEQ head back %p %s:%d", (head),		\
 		      __FILE__, __LINE__);
 #define QUEUEDEBUG_CIRCLEQ_ELM(head, elm, field)			\
-	if ((elm)->field.cqe_next == CIRCLEQ_END(head)) {			\
+	if ((elm)->field.cqe_next == CIRCLEQ_ENDC(head)) {			\
 		if ((head)->cqh_last != (elm))				\
 			panic("CIRCLEQ elm last %p %s:%d", (elm),	\
 			      __FILE__, __LINE__);			\
@@ -622,7 +622,7 @@ struct {								\
 			panic("CIRCLEQ elm forw %p %s:%d", (elm),	\
 			      __FILE__, __LINE__);			\
 	}								\
-	if ((elm)->field.cqe_prev == CIRCLEQ_END(head)) {			\
+	if ((elm)->field.cqe_prev == CIRCLEQ_ENDC(head)) {			\
 		if ((head)->cqh_first != (elm))				\
 			panic("CIRCLEQ elm first %p %s:%d", (elm),	\
 			      __FILE__, __LINE__);			\
@@ -668,7 +668,7 @@ struct {								\
 	QUEUEDEBUG_CIRCLEQ_ELM((head), (listelm), field)		\
 	(elm)->field.cqe_next = (listelm)->field.cqe_next;		\
 	(elm)->field.cqe_prev = (listelm);				\
-	if ((listelm)->field.cqe_next == CIRCLEQ_END(head))		\
+	if ((listelm)->field.cqe_next == CIRCLEQ_ENDC(head))		\
 		(head)->cqh_last = (elm);				\
 	else								\
 		(listelm)->field.cqe_next->field.cqe_prev = (elm);	\
@@ -680,7 +680,7 @@ struct {								\
 	QUEUEDEBUG_CIRCLEQ_ELM((head), (listelm), field)		\
 	(elm)->field.cqe_next = (listelm);				\
 	(elm)->field.cqe_prev = (listelm)->field.cqe_prev;		\
-	if ((listelm)->field.cqe_prev == CIRCLEQ_END(head))		\
+	if ((listelm)->field.cqe_prev == CIRCLEQ_ENDC(head))		\
 		(head)->cqh_first = (elm);				\
 	else								\
 		(listelm)->field.cqe_prev->field.cqe_next = (elm);	\
@@ -691,7 +691,7 @@ struct {								\
 	QUEUEDEBUG_CIRCLEQ_HEAD((head), field)				\
 	(elm)->field.cqe_next = (head)->cqh_first;			\
 	(elm)->field.cqe_prev = CIRCLEQ_END(head);			\
-	if ((head)->cqh_last == CIRCLEQ_END(head))			\
+	if ((head)->cqh_last == CIRCLEQ_ENDC(head))			\
 		(head)->cqh_last = (elm);				\
 	else								\
 		(head)->cqh_first->field.cqe_prev = (elm);		\
@@ -702,7 +702,7 @@ struct {								\
 	QUEUEDEBUG_CIRCLEQ_HEAD((head), field)				\
 	(elm)->field.cqe_next = CIRCLEQ_END(head);			\
 	(elm)->field.cqe_prev = (head)->cqh_last;			\
-	if ((head)->cqh_first == CIRCLEQ_END(head))			\
+	if ((head)->cqh_first == CIRCLEQ_ENDC(head))			\
 		(head)->cqh_first = (elm);				\
 	else								\
 		(head)->cqh_last->field.cqe_next = (elm);		\
@@ -712,12 +712,12 @@ struct {								\
 #define	CIRCLEQ_REMOVE(head, elm, field) do {				\
 	QUEUEDEBUG_CIRCLEQ_HEAD((head), field)				\
 	QUEUEDEBUG_CIRCLEQ_ELM((head), (elm), field)			\
-	if ((elm)->field.cqe_next == CIRCLEQ_END(head))			\
+	if ((elm)->field.cqe_next == CIRCLEQ_ENDC(head))			\
 		(head)->cqh_last = (elm)->field.cqe_prev;		\
 	else								\
 		(elm)->field.cqe_next->field.cqe_prev =			\
 		    (elm)->field.cqe_prev;				\
-	if ((elm)->field.cqe_prev == CIRCLEQ_END(head))			\
+	if ((elm)->field.cqe_prev == CIRCLEQ_ENDC(head))			\
 		(head)->cqh_first = (elm)->field.cqe_next;		\
 	else								\
 		(elm)->field.cqe_prev->field.cqe_next =			\
@@ -727,12 +727,12 @@ struct {								\
 
 #define	CIRCLEQ_FOREACH(var, head, field)				\
 	for ((var) = ((head)->cqh_first);				\
-		(var) != CIRCLEQ_END(head);				\
+		(var) != CIRCLEQ_ENDC(head);				\
 		(var) = ((var)->field.cqe_next))
 
 #define	CIRCLEQ_FOREACH_REVERSE(var, head, field)			\
 	for ((var) = ((head)->cqh_last);				\
-		(var) != CIRCLEQ_END(head);				\
+		(var) != CIRCLEQ_ENDC(head);				\
 		(var) = ((var)->field.cqe_prev))
 
 /*
@@ -740,18 +740,21 @@ struct {								\
  */
 #define	CIRCLEQ_FIRST(head)		((head)->cqh_first)
 #define	CIRCLEQ_LAST(head)		((head)->cqh_last)
+/* For comparisons */
+#define	CIRCLEQ_ENDC(head)		((const void *)(head))
+/* For assignments */
 #define	CIRCLEQ_END(head)		((void *)(head))
 #define	CIRCLEQ_NEXT(elm, field)	((elm)->field.cqe_next)
 #define	CIRCLEQ_PREV(elm, field)	((elm)->field.cqe_prev)
 #define	CIRCLEQ_EMPTY(head)						\
-    (CIRCLEQ_FIRST(head) == CIRCLEQ_END(head))
+    (CIRCLEQ_FIRST(head) == CIRCLEQ_ENDC(head))
 
 #define CIRCLEQ_LOOP_NEXT(head, elm, field)				\
-	(((elm)->field.cqe_next == CIRCLEQ_END(head))			\
+	(((elm)->field.cqe_next == CIRCLEQ_ENDC(head))			\
 	    ? ((head)->cqh_first)					\
 	    : (elm->field.cqe_next))
 #define CIRCLEQ_LOOP_PREV(head, elm, field)				\
-	(((elm)->field.cqe_prev == CIRCLEQ_END(head))			\
+	(((elm)->field.cqe_prev == CIRCLEQ_ENDC(head))			\
 	    ? ((head)->cqh_last)					\
 	    : (elm->field.cqe_prev))
 

Reply via email to