Error reporting in the API

Most functions in the hwloc API return an integer value. Unless documentated differently, they return 0 on success and -1 on error. Functions that return a pointer type return `NULL` on error.

`errno` will be set to a meaningful value whenever possible. This includes the usual `EINVAL` when invalid function parameters are passed or `ENOMEM` when an internal allocation fails. Some specific `errno` value are also used, for instance for binding errors as documented in CPU binding.

Some modules describe return values of their functions in their introduction, for instance in The bitmap API.