SIMPLEQ_* macros from OpenBSD sys/queue.h

Sam Leffler sam at errno.com
Wed Jul 13 19:26:36 GMT 2005


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.

	Sam


More information about the freebsd-hackers mailing list