SIMPLEQ_* macros from OpenBSD sys/queue.h

Florent Thoumie flz at xbsd.org
Wed Jul 13 19:43:09 GMT 2005


Le Mercredi 13 juillet 2005 à 12:31 -0700, Sam Leffler a écrit :
> Giorgos Keramidas wrote:
> > On 2005-07-12 17:59, Florent Thoumie <flz at xbsd.org> wrote:
> > 
> >>I'm currently working on OpenBGPd port update and I'm facing a little
> >>problem that is actually quite painful to deal with.
> >>
> >>I need some macros from OpenBSD sys/queue.h which aren't present in
> >>FreeBSD. I can replace #include <sys/queue.h> with #include "queue.h"
> >>and copy the file in the working directory but this leads to having
> >>more than 10 patches.
> >>
> >>Yeah I'm using REINPLACE_CMD, but sometimes sys/queue.h is a hidden
> >>"dependency" (by hidden, I mean it's included by an included header
> >>file, and doesn't show up directly in the source file).
> >>
> >>So, could somebody consider merging these SIMPLEQ_* macros or even
> >>synchronize FreeBSD and OpenBSD versions ?
> > 
> > 
> > OpenBSD tries to keep this header in sync with NetBSD, AFAICT from the
> > cvs logs in their tree.
> > 
> > I have the queue.h headers from all three on my disk and I'm already
> > looking at the differences, so if you don't mind waiting 1-2 days so
> > that I can run any changes through a buildworld I'll give it a try.
> > 
> > If you have changes that depend on SIMPLEQ_* that could serve as a test
> > case that you can share, it would be nice too :-)
> 
> trouble% grep STAILQ /sys/dev/ubsec/ubsec.c
> #define SIMPLEQ_HEAD            STAILQ_HEAD
> #define SIMPLEQ_ENTRY           STAILQ_ENTRY
> #define SIMPLEQ_INIT            STAILQ_INIT
> #define SIMPLEQ_INSERT_TAIL     STAILQ_INSERT_TAIL
> #define SIMPLEQ_EMPTY           STAILQ_EMPTY
> #define SIMPLEQ_FIRST           STAILQ_FIRST
> #define SIMPLEQ_REMOVE_HEAD     STAILQ_REMOVE_HEAD_UNTIL
> #define SIMPLEQ_FOREACH         STAILQ_FOREACH
> 
> Not sure who's to blaim for this but it'd be nice to unify the names so 
> drivers don't need portability shims like this.

	Not sure if we (or OpenBSD/NetBSD) will change STAILQ for 
	SIMPLEQ (or the opposite), but having STAILQ_REMOVE_HEAD instead
	of STAILQ_REMOVE_HEAD_UNTIL would be nice so that there are no 
	special case (actually, I just sed 's/SIMPLEQ/STAILQ' since it 
	doesn't seem to use SIMPLEQ_REMOVE_HEAD).

-- 
Florent Thoumie
flz at xbsd.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: This is a digitally signed message part
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20050713/f17303ad/attachment.bin


More information about the freebsd-hackers mailing list