| .. 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 |