On 21 Nov, 2013, at 11:04 , Christos Zoulas <chris...@netbsd.org> wrote:
> 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. It is a tiny thing, but I think one of the CIRCLEQ_END macros is useful in applications to replace what is now written as (void *)head with CIRCLEQ_END(head), and the version best suited for this should be the one named CIRCLEQ_END() with no extra characters. Given that all application use of (void *)head in the base system is for end-of-list comparisons, while only the macros do assignments to list variables, it might be a bit better to call the comparison version CIRCLEQ_END() and the assignment version something else. If you really do decide to fix the alias problem with the ugly inline then CIRCLEQ_END() can be defined as that to fix both macros and applications while leaving CIRCLEQ_END_DONT_USE_THIS() as-is for assignments. Dennis Ferguson