The most code in vbox_common.h is extracted from the vbox_CAPI_v*.h. I
know some symbols like PR_INT16_MAX or PR_INT16_MIN may not be necessary,
as well as the
definition of the NS_LIKELY and NS_UNLIKEY. But I put it here because I
treat these codes as a whole thing and not separate them.
I think your suggestion on handling API fails is better than mine, I would
take it.