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