abd.h is not C++ friendly
A C++ compiler fails to compile abd_is_linear(), which is an inline function defined in abd.h, with the following error:
error: cannot initialize return object of type 'boolean_t' with an rvalue of type 'bool'
That happens because a bool can not be converted to an enum in C++.
That's a problem because abd.h can be visible through other header files that a C++ program that works with ZFS can include.