SIMPLEQ_* macros from OpenBSD sys/queue.h

Giorgos Keramidas keramida at freebsd.org
Wed Jul 13 21:09:55 GMT 2005


On 2005-07-13 12:31, Sam Leffler <sam at errno.com> wrote:
> Giorgos Keramidas wrote:
> >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.

I couldn't agree more.  Helping source-level compatibility, as much as
this can be accomplished for kernel code, is definitely a plus.  This is
partly the reason why I noted that OpenBSD synchronized their queue.h
header with NetBSD a few times in the past.  I just didn't propose
something like this because I'm not sure I can convince any of the three
BSD teams to s/SIMPLEQ/STAILQ/ or vice versa :-)

- Giorgos



More information about the freebsd-hackers mailing list