aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lib/bpf/btf.c
AgeCommit message (Expand)AuthorFilesLines
2025-11-14libbpf: Fix BTF dedup to support recursive typedef definitionsPaul Houssel1-16/+55
2025-11-04libbpf: Fix parsing of multi-split BTFAlan Maguire1-2/+2
2025-10-01libbpf: move libbpf_errstr() into libbpf_utils.cAndrii Nakryiko1-1/+0
2025-06-06libbpf: Handle unsupported mmap-based /sys/kernel/btf/vmlinux correctlyAndrii Nakryiko1-3/+3
2025-05-23libbpf: Use mmap to parse vmlinux BTF from sysfsLorenz Bauer1-18/+71
2025-05-20libbpf/btf: Fix string handling to support multi-split BTFAlan Maguire1-1/+1
2025-05-05libbpf: Improve BTF dedup handling of "identical" BTF typesAndrii Nakryiko1-48/+89
2025-04-29libbpf: Add identical pointer detection to btf_dedup_is_equiv()Alan Maguire1-0/+16
2025-04-15libbpf: Verify section type in btf_find_elf_sectionsIhor Solodrai1-0/+6
2025-03-17libbpf: Pass BPF token from find_prog_btf_id to BPF_BTF_GET_FD_BY_IDMykyta Yatsenko1-2/+13
2025-02-05libbpf: Introduce kflag for type_tags and decl_tags in BTFIhor Solodrai1-23/+63
2025-02-03libbpf: Fix accessing BTF.ext core_relo headerTony Ambardar1-2/+2
2025-01-16libbpf: Fix return zero when elf_begin failedPu Lehui1-0/+1
2024-12-02libbpf: Improve debug message when the base BTF cannot be foundBen Olson1-1/+1
2024-11-16libbpf: Change hash_combine parameters from long to unsigned longSidong Yang1-1/+1
2024-11-11libbpf: Stringify errno in log messages in btf*.cMykyta Yatsenko1-12/+14
2024-10-03libbpf: Support BTF.ext loading and output in either endiannessTony Ambardar1-57/+219
2024-10-03libbpf: Improve log message formattingTony Ambardar1-3/+3
2024-09-09libbpf: Fix some typos in commentsYusheng Zheng1-1/+1
2024-09-05libbpf: fix some typos in libbpfLin Yikai1-1/+1
2024-08-30libbpf: Ensure new BTF objects inherit input endiannessTony Ambardar1-0/+4
2024-07-01libbpf: Fix error handling in btf__distill_base()Alan Maguire1-1/+1
2024-06-24libbpf: Skip base btf sanity checksAntoine Tenart1-1/+1
2024-06-21libbpf: Split field iter code into its own file kernelAlan Maguire1-162/+0
2024-06-17libbpf: Make btf_parse_elf process .BTF.base transparentlyEduard Zingerman1-54/+110
2024-06-17libbpf: Split BTF relocationAlan Maguire1-0/+17
2024-06-17libbpf: Add btf__distill_base() creating split BTF with distilled base BTFAlan Maguire1-6/+313
2024-06-05libbpf: Remove callback-based type/string BTF field visitor helpersAndrii Nakryiko1-130/+0
2024-06-05libbpf: Make use of BTF field iterator in BTF handling codeAndrii Nakryiko1-22/+54
2024-06-05libbpf: Make use of BTF field iterator in BPF linker codeAndrii Nakryiko1-2/+2
2024-06-05libbpf: Add BTF field iteratorAndrii Nakryiko1-0/+162
2024-03-04libbpf: Correct debug message in btf__load_vmlinux_btfChen Shen1-1/+1
2024-02-01libbpf: Add missed btf_ext__raw_data() APIAndrii Nakryiko1-1/+5
2024-02-01libbpf: Add btf__new_split() API that was declared but not implementedAndrii Nakryiko1-0/+5
2024-01-29libbpf: Add some details for BTF parsing failuresIan Rogers1-4/+18
2024-01-24libbpf: Wire up BPF token support at BPF object levelAndrii Nakryiko1-2/+8
2023-09-08libbpf: Add basic BTF sanity validationAndrii Nakryiko1-0/+160
2023-05-26libbpf: Ensure libbpf always opens files with O_CLOEXECAndrii Nakryiko1-1/+1
2023-03-01libbpf: Remove several dead assignmentsViktor Malik1-2/+0
2023-02-16libbpf: Use bpf_{btf,link,map,prog}_get_info_by_fd()Ilya Leoshkevich1-4/+4
2023-01-03libbpf: Return -ENODATA for missing btf sectionChangbin Du1-1/+1
2022-12-20libbpf: Show error info about missing ".BTF" sectionChangbin Du1-0/+1
2022-12-15libbpf: Fix btf__align_of() by taking into account field offsetsAndrii Nakryiko1-0/+13
2022-11-14libbpf: checkpatch: Fixed code alignments in btf.cKang Minchul1-2/+3
2022-11-09libbpf: Resolve unambigous forward declarationsEduard Zingerman1-4/+139
2022-11-09libbpf: Hashmap interface update to allow both long and void* keys/valuesEduard Zingerman1-21/+20
2022-11-04libbpf: Resolve enum fwd as full enum64 and vice versaEduard Zingerman1-50/+25
2022-10-25libbpf: Btf dedup identical struct test needs check for nested structs/arraysAlan Maguire1-3/+5
2022-09-26libbpf: Fix the case of running as non-root with capabilitiesJon Doron1-1/+1
2022-09-21libbpf: Support raw BTF placed in the default search pathTao Chen1-18/+12
2022-08-17libbpf: Clean up deprecated and legacy aliasesAndrii Nakryiko1-2/+0
2022-06-28libbpf: remove deprecated BTF APIsAndrii Nakryiko1-182/+1
2022-06-07libbpf: Add enum64 deduplication supportYonghong Song1-2/+60
2022-06-07libbpf: Add enum64 parsing and new enum64 public APIYonghong Song1-0/+103
2022-06-07libbpf: Refactor btf__add_enum() for future code sharingYonghong Song1-15/+21
2022-06-03libbpf: Fix a couple of typosDaniel Müller1-1/+1
2022-06-02libbpf: Fix determine_ptr_size() guessingDouglas Raillard1-6/+20
2022-04-26libbpf: Avoid joining .BTF.ext data with BPF programs by section nameAndrii Nakryiko1-2/+7
2022-04-03libbpf: Don't return -EINVAL if hdr_len < offsetofend(core_relo_len)Yuntao Wang1-4/+2
2022-01-19libbpf: Improve btf__add_btf() with an additional hashmap for strings.Kui-Feng Lee1-1/+30
2021-12-10libbpf: Fix typo in btf__dedup@LIBBPF_0.0.2 definitionVincent Minet1-1/+1
2021-12-10libbpf: Allow passing preallocated log_buf when loading BTF into kernelAndrii Nakryiko1-23/+55
2021-12-02libbpf: Replace btf__type_by_id() with btf_type_by_id().Alexei Starovoitov1-1/+1
2021-11-26libbpf: Fix potential misaligned memory access in btf_ext__new()Andrii Nakryiko1-5/+5
2021-11-19libbpf: Accommodate DWARF/compiler bug with duplicated structsAndrii Nakryiko1-4/+41
2021-11-16libbpf: Fix a couple of missed btf_type_tag handling in btf.cYonghong Song1-0/+2
2021-11-11libbpf: Support BTF_KIND_TYPE_TAGYonghong Song1-0/+23
2021-11-11libbpf: Turn btf_dedup_opts into OPTS-based structAndrii Nakryiko1-19/+27
2021-10-28libbpf: Use O_CLOEXEC uniformly when opening fdsKumar Kartikeya Dwivedi1-1/+1
2021-10-25libbpf: Use __BYTE_ORDER__Ilya Leoshkevich1-2/+2
2021-10-22libbpf: Fix BTF header parsing checksAndrii Nakryiko1-3/+9
2021-10-22libbpf: Fix overflow in BTF sanity checksAndrii Nakryiko1-2/+2
2021-10-22libbpf: Add btf__type_cnt() and btf__raw_data() APIsHengqi Chen1-14/+22
2021-10-22libbpf: Fix memory leak in btf__dedup()Mauricio Vásquez1-2/+4
2021-10-21libbpf: Deprecate btf__finalize_data() and move it into libbpf.cAndrii Nakryiko1-93/+0
2021-10-18bpf: Rename BTF_KIND_TAG to BTF_KIND_DECL_TAGYonghong Song1-18/+18
2021-10-06libbpf: Add API that copies all BTF types from one BTF object to anotherAndrii Nakryiko1-2/+112
2021-10-05libbpf: Support kernel module function callsKumar Kartikeya Dwivedi1-3/+15
2021-09-14libbpf: Add support for BTF_KIND_TAGYonghong Song1-0/+68
2021-09-14libbpf: Rename btf_{hash,equal}_int to btf_{hash,equal}_int_tagYonghong Song1-8/+8
2021-08-13Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netJakub Kicinski1-2/+1
2021-08-07libbpf: Do not close un-owned FD 0 on errorsDaniel Xu1-2/+1
2021-07-30libbpf: Add btf__load_vmlinux_btf/btf__load_module_btfHengqi Chen1-2/+12
2021-07-29libbpf: Add split BTF support for btf__load_from_kernel_by_id()Quentin Monnet1-2/+7
2021-07-29libbpf: Rename btf__get_from_id() as btf__load_from_kernel_by_id()Quentin Monnet1-8/+17
2021-07-29libbpf: Rename btf__load() as btf__load_into_kernel()Quentin Monnet1-1/+2
2021-05-25libbpf: Streamline error reporting for high-level APIsAndrii Nakryiko1-150/+152
2021-04-23libbpf: Mark BPF subprogs with hidden visibility as static for BPF verifierAndrii Nakryiko1-5/+0
2021-03-18libbpf: Add generic BTF type shallow copy APIAndrii Nakryiko1-0/+48
2021-03-18libbpf: Extract internal set-of-strings datastructure APIsAndrii Nakryiko1-194/+61
2021-03-18libbpf: Rename internal memory-management helpersAndrii Nakryiko1-12/+12
2021-03-18libbpf: Generalize BTF and BTF.ext type ID and strings iterationAndrii Nakryiko1-172/+221
2021-03-18libbpf: Expose btf_type_by_id() internallyAndrii Nakryiko1-1/+1
2021-03-04libbpf: Add BTF_KIND_FLOAT supportIlya Leoshkevich1-0/+49
2021-03-04libbpf: Fix whitespace in btf_add_composite() commentIlya Leoshkevich1-1/+1
2021-01-21libbpf: Use string table index from index table if neededJiri Olsa1-2/+10
2021-01-12libbpf: Allow loading empty BTFsAndrii Nakryiko1-5/+0
2020-12-03libbpf: Add internal helper to load BTF data by FDAndrii Nakryiko1-26/+35
2020-12-03libbpf: Add base BTF accessorAndrii Nakryiko1-0/+5
2020-11-16libbpf: bpf__find_by_name[_kind] should use btf__get_nr_types()Alan Maguire1-4/+4
2020-11-05libbpf: Accomodate DWARF/compiler bug with duplicated identical arraysAndrii Nakryiko1-2/+25
2020-11-05libbpf: Support BTF dedup of split BTFsAndrii Nakryiko1-53/+168
2020-11-05libbpf: Fix BTF data layout checks and allow empty BTFAndrii Nakryiko1-10/+6
2020-11-05libbpf: Implement basic split BTF supportAndrii Nakryiko1-45/+152
2020-11-05libbpf: Unify and speed up BTF string deduplicationAndrii Nakryiko1-165/+98
2020-11-05libbpf: Factor out common operations in BTF writing APIsAndrii Nakryiko1-80/+43
2020-09-30libbpf: Make btf_dump work with modifiable BTFAndrii Nakryiko1-0/+17
2020-09-29libbpf: Fix uninitialized variable in btf_parse_type_secAndrii Nakryiko1-1/+1
2020-09-29libbpf: Support BTF loading and raw data output in both endiannessAndrii Nakryiko1-64/+246
2020-09-28selftests/bpf: Test BTF writing APIsAndrii Nakryiko1-4/+4
2020-09-28libbpf: Add btf__str_by_offset() as a more generic variant of name_by_offsetAndrii Nakryiko1-1/+6
2020-09-28libbpf: Add BTF writing APIsAndrii Nakryiko1-0/+781
2020-09-28libbpf: Add btf__new_empty() to create an empty BTF objectAndrii Nakryiko1-0/+30
2020-09-28libbpf: Allow modification of BTF and add btf__add_str APIAndrii Nakryiko1-8/+252
2020-09-28libbpf: Generalize common logic for managing dynamically-sized arraysAndrii Nakryiko1-21/+56
2020-09-28libbpf: Remove assumption of single contiguous memory for BTF dataAndrii Nakryiko1-41/+58
2020-09-28libbpf: Refactor internals of BTF type indexAndrii Nakryiko1-64/+75
2020-08-18libbpf: Centralize poisoning and poison reallocarray()Andrii Nakryiko1-3/+0
2020-08-18libbpf: Remove any use of reallocarray() in libbpfAndrii Nakryiko1-6/+5
2020-08-18libbpf: Clean up and improve CO-RE reloc loggingAndrii Nakryiko1-9/+8
2020-08-13libbpf: Handle BTF pointer sizes more carefullyAndrii Nakryiko1-3/+80
2020-08-06libbf: Fix uninitialized pointer at btf__parse_raw()Daniel T. Lee1-1/+1
2020-08-03libbpf: Add btf__parse_raw() and generic btf__parse() APIsAndrii Nakryiko1-36/+78
2020-07-31libbpf: Make destructors more robust by handling ERR_PTR(err) casesAndrii Nakryiko1-2/+2
2020-07-10libbpf: Fix memory leak and optimize BTF sanitizationAndrii Nakryiko1-1/+1
2020-07-09libbpf: Add btf__set_fd() for more control over loaded BTF FDAndrii Nakryiko1-1/+6
2020-03-26libbpf: Don't allocate 16M for log buffer by defaultStanislav Fomichev1-5/+15
2020-01-15libbpf: Expose bpf_find_kernel_btf as a LIBBPF_APIMartin KaFai Lau1-6/+96
2020-01-10libbpf: Poison kernel-only integer typesAndrii Nakryiko1-0/+3
2019-12-16libbpf: Fix build by renaming variablesPrashant Bhole1-6/+6
2019-12-15libbpf: Support libbpf-provided extern variablesAndrii Nakryiko1-1/+8
2019-12-15libbpf: Expose btf__align_of() APIAndrii Nakryiko1-0/+39
2019-11-15libbpf: Introduce btf__find_by_name_kind()Alexei Starovoitov1-0/+22
2019-11-07libbpf: Make btf__resolve_size logic always check size error conditionAndrii Nakryiko1-2/+1
2019-10-21tools, bpf: Rename pr_warning to pr_warn to align with kernel loggingKefeng Wang1-28/+28
2019-10-15libbpf: Update BTF reloc support to latest Clang formatAndrii Nakryiko1-8/+8
2019-08-13Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-nextJakub Kicinski1-140/+110
2019-08-07libbpf: add .BTF.ext offset relocation section loadingAndrii Nakryiko1-42/+27
2019-08-07libbpf: convert libbpf code to use new btf helpersAndrii Nakryiko1-98/+83
2019-07-22libbpf: Fix endianness macro usage for some compilersArnaldo Carvalho de Melo1-2/+3
2019-06-18libbpf: add common min/max macro to libbpf_internal.hAndrii Nakryiko1-3/+0
2019-05-24libbpf: switch btf_dedup() to hashmap for dedup tableAndrii Nakryiko1-116/+85
2019-05-24libbpf: add btf__parse_elf API to load .BTF and .BTF.extAndrii Nakryiko1-0/+128
2019-05-16libbpf: move logging helpers into libbpf_internal.hAndrii Nakryiko1-1/+1
2019-04-16btf: add support for VAR and DATASEC in btf_dedup()Andrii Nakryiko1-2/+27
2019-04-11Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-nextDavid S. Miller1-1/+96
2019-04-09bpf, libbpf: add support for BTF Var and DataSecDaniel Borkmann1-1/+96
2019-03-27libbpf: fix btf_dedup equivalence check handling of different kindsAndrii Nakryiko1-0/+3
2019-03-14btf: resolve enum fwds in btf_dedupAndrii Nakryiko1-13/+38
2019-03-01btf: fix bug with resolving STRUCT/UNION into corresponding FWDAndrii Nakryiko1-3/+17
2019-03-01btf: allow to customize dedup hash table sizeAndrii Nakryiko1-17/+36
2019-03-01tools/libbpf: signedness bug in btf_dedup_ref_type()Dan Carpenter1-1/+2
2019-02-16tools/libbpf: support bigger BTF data sizesAndrii Nakryiko1-7/+8
2019-02-14tools/bpf: replace bzero with memsetAndrii Nakryiko1-3/+2
2019-02-08tools/bpf: remove btf__get_strings() superseded by raw data APIAndrii Nakryiko1-7/+0
2019-02-08btf: expose API to work with raw btf_ext dataAndrii Nakryiko1-48/+54
2019-02-08btf: expose API to work with raw btf dataAndrii Nakryiko1-0/+6
2019-02-08btf: separate btf creation and loadingAndrii Nakryiko1-24/+30
2019-02-07tools/bpf: add missing strings.h includeAndrii Nakryiko1-0/+1
2019-02-05tools/bpf: silence a libbpf unnecessary warningYonghong Song1-2/+2
2019-02-05tools/bpf: add const qualifier to btf__get_map_kv_tids() map_name parameterYonghong Song1-1/+1
2019-02-05selftests/btf: add initial BTF dedup testsAndrii Nakryiko1-0/+12
2019-02-05btf: add BTF types deduplication algorithmAndrii Nakryiko1-0/+1741
2019-02-05btf: extract BTF type size calculationAndrii Nakryiko1-52/+46
2019-02-04tools/bpf: implement libbpf btf__get_map_kv_tids() API functionYonghong Song1-0/+73
2019-02-04tools/bpf: print out btf log at LIBBPF_WARN levelYonghong Song1-10/+9
2019-02-04tools/bpf: move libbpf pr_* debug print functions to headersYonghong Song1-50/+47
2018-12-09bpf: libbpf: Add btf_line_info support to libbpfMartin KaFai Lau1-59/+150
2018-12-09bpf: libbpf: Refactor and bug fix on the bpf_func_info loading logicMartin KaFai Lau1-118/+73
2018-12-05bpf: Expect !info.func_info and insn_off name changes in test_btf/libbpf/bpftoolMartin KaFai Lau1-6/+6
2018-11-28bpf: Fix various lib and testsuite build failures on 32-bit.David Miller1-1/+1
2018-11-26libbpf: Name changing for btf_get_from_idMartin KaFai Lau1-1/+1
2018-11-20tools/bpf: refactor to implement btf_get_from_id() in lib/bpfYonghong Song1-0/+69
2018-11-20tools/bpf: add support to read .BTF.ext sectionsYonghong Song1-0/+274
2018-11-20tools/bpf: Add tests for BTF_KIND_FUNC_PROTO and BTF_KIND_FUNCMartin KaFai Lau1-0/+4
2018-10-08libbpf: relicense libbpf as LGPL-2.1 OR BSD-2-ClauseAlexei Starovoitov1-1/+1
2018-08-11Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/netDavid S. Miller1-1/+1
2018-08-06bpf: btf: Change tools/lib/bpf/btf to LGPLMartin KaFai Lau1-1/+1
2018-08-02tools: bpf: fix BTF code added twice to different treesJakub Kicinski1-17/+0
2018-08-02Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/netDavid S. Miller1-16/+30
2018-07-25bpf: Introduce BPF_ANNOTATE_KV_PAIRMartin KaFai Lau1-4/+3
2018-07-25bpf: Replace [u]int32_t and [u]int64_t in libbpfMartin KaFai Lau1-18/+16
2018-07-14bpf: btf: export btf types and name by offset from libOkash Khawaja1-20/+45
2018-05-23bpf: btf: Add tests for the btf uapi changesMartin KaFai Lau1-3/+2
2018-04-23bpf: btf: Clean up btf.h in uapiMartin KaFai Lau1-1/+1
2018-04-19bpf: btf: Add BTF support to libbpfMartin KaFai Lau1-0/+374