1libublio uses BSD style data structure macros via queue.h and tree.h,
2something which is present in a form in all four major BSD variants.
3
4Upon trying to compile libublio on xBSD, one may ask: how do libublio's
5{quee,tree}.h headers relate to those of xBSD, and is it possible to use
6the native xBSD versions of these header files indeed?
7
8Briefly: you can use the native queue.h on all BSDs but you can use the
9native tree.h only on FreeBSD.
10
11In details:
12
13- queue.h is taken from OpenBSD as is. I choose the OpenBSD version because
14  that seemed to be the least stuffed with system-specific stuff. However,
15  those macros of queue.h which I use do the same on all BSDs.
16
17- tree.h was taken from FreeBSD with some modifications. I choose the FreeBSD
18  version for two features:
19  - it can generate a static tree function kit;
20  - it has the RB_NFIND macro which looks up the least upper bound of a sample
21    node.
22
23  I made some adjustments on both features.
24  - regarding the static functions: I made the code a bit more portable;
25  - regarding RB_NFIND: I replaced the FreeBSD implementation with a more
26    streamlined and optimized one.
27