| .. SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) | |
| .. _api: | |
| .. toctree:: Table of Contents | |
| LIBBPF API | |
| ========== | |
| Error Handling | |
| -------------- | |
| When libbpf is used in "libbpf 1.0 mode", API functions can return errors in one of two ways. | |
| You can set "libbpf 1.0" mode with the following line: | |
| .. code-block:: | |
| libbpf_set_strict_mode(LIBBPF_STRICT_DIRECT_ERRS | LIBBPF_STRICT_CLEAN_PTRS); | |
| If the function returns an error code directly, it uses 0 to indicate success | |
| and a negative error code to indicate what caused the error. In this case the | |
| error code should be checked directly from the return, you do not need to check | |
| errno. | |
| For example: | |
| .. code-block:: | |
| err = some_libbpf_api_with_error_return(...); | |
| if (err < 0) { | |
| /* Handle error accordingly */ | |
| } | |
| If the function returns a pointer, it will return NULL to indicate there was | |
| an error. In this case errno should be checked for the error code. | |
| For example: | |
| .. code-block:: | |
| ptr = some_libbpf_api_returning_ptr(); | |
| if (!ptr) { | |
| /* note no minus sign for EINVAL and E2BIG below */ | |
| if (errno == EINVAL) { | |
| /* handle EINVAL error */ | |
| } else if (errno == E2BIG) { | |
| /* handle E2BIG error */ | |
| } | |
| } | |
| libbpf.h | |
| -------- | |
| .. doxygenfile:: libbpf.h | |
| :project: libbpf | |
| :sections: func define public-type enum | |
| bpf.h | |
| ----- | |
| .. doxygenfile:: bpf.h | |
| :project: libbpf | |
| :sections: func define public-type enum | |
| btf.h | |
| ----- | |
| .. doxygenfile:: btf.h | |
| :project: libbpf | |
| :sections: func define public-type enum | |
| xsk.h | |
| ----- | |
| .. doxygenfile:: xsk.h | |
| :project: libbpf | |
| :sections: func define public-type enum | |
| bpf_tracing.h | |
| ------------- | |
| .. doxygenfile:: bpf_tracing.h | |
| :project: libbpf | |
| :sections: func define public-type enum | |
| bpf_core_read.h | |
| --------------- | |
| .. doxygenfile:: bpf_core_read.h | |
| :project: libbpf | |
| :sections: func define public-type enum | |
| bpf_endian.h | |
| ------------ | |
| .. doxygenfile:: bpf_endian.h | |
| :project: libbpf | |
| :sections: func define public-type enum |