/src/elfutils/lib/eu-search.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* Calls for thread-safe tsearch/tfind |
2 | | Copyright (C) 2023 Rice University |
3 | | This file is part of elfutils. |
4 | | |
5 | | This file is free software; you can redistribute it and/or modify |
6 | | it under the terms of either |
7 | | |
8 | | * the GNU Lesser General Public License as published by the Free |
9 | | Software Foundation; either version 3 of the License, or (at |
10 | | your option) any later version |
11 | | |
12 | | or |
13 | | |
14 | | * the GNU General Public License as published by the Free |
15 | | Software Foundation; either version 2 of the License, or (at |
16 | | your option) any later version |
17 | | |
18 | | or both in parallel, as here. |
19 | | |
20 | | elfutils is distributed in the hope that it will be useful, but |
21 | | WITHOUT ANY WARRANTY; without even the implied warranty of |
22 | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
23 | | General Public License for more details. |
24 | | |
25 | | You should have received copies of the GNU General Public License and |
26 | | the GNU Lesser General Public License along with this program. If |
27 | | not, see <http://www.gnu.org/licenses/>. */ |
28 | | |
29 | | #ifndef EU_SEARCH_H |
30 | | #define EU_SEARCH_H 1 |
31 | | |
32 | | #include <stdlib.h> |
33 | | #include <search.h> |
34 | | #include <locks.h> |
35 | | |
36 | | typedef struct |
37 | | { |
38 | | void *root; |
39 | | rwlock_define (, lock); |
40 | | } search_tree; |
41 | | |
42 | | /* Search TREE for KEY and add KEY if not found. Synchronized using |
43 | | TREE's lock. */ |
44 | | extern void *eu_tsearch (const void *key, search_tree *tree, |
45 | | int (*compare)(const void *, const void *)); |
46 | | |
47 | | /* Search TREE for KEY. Synchronized with TREE's lock. */ |
48 | | extern void *eu_tfind (const void *key, search_tree *tree, |
49 | | int (*compare)(const void *, const void *)); |
50 | | |
51 | | /* Delete key from TREE. Synchronized with TREE's lock. */ |
52 | | extern void *eu_tdelete (const void *key, search_tree *tree, |
53 | | int (*compare)(const void *, const void *)); |
54 | | |
55 | | /* Search TREE for KEY and add KEY if not found. No locking is performed. */ |
56 | | static inline void * |
57 | | eu_tsearch_nolock (const void *key, search_tree *tree, |
58 | | int (*compare)(const void *, const void *)) |
59 | 0 | { |
60 | 0 | return tsearch (key, &tree->root, compare); |
61 | 0 | } Unexecuted instantiation: dwfl_begin.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_end.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_error.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_module.c:eu_tsearch_nolock Unexecuted instantiation: find-debuginfo.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_build_id_find_elf.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:eu_tsearch_nolock Unexecuted instantiation: libdwfl_crc32_file.c:eu_tsearch_nolock Unexecuted instantiation: core-file.c:eu_tsearch_nolock Unexecuted instantiation: open.c:eu_tsearch_nolock Unexecuted instantiation: image-header.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_frame.c:eu_tsearch_nolock Unexecuted instantiation: frame_unwind.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_frame_pc.c:eu_tsearch_nolock Unexecuted instantiation: linux-core-attach.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_frame_regs.c:eu_tsearch_nolock Unexecuted instantiation: gzip.c:eu_tsearch_nolock Unexecuted instantiation: dwflst_process_tracker.c:eu_tsearch_nolock Unexecuted instantiation: dwflst_tracker_elftab.c:eu_tsearch_nolock Unexecuted instantiation: dwflst_tracker_dwfltab.c:eu_tsearch_nolock Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:eu_tsearch_nolock Unexecuted instantiation: dwelf_elf_gnu_build_id.c:eu_tsearch_nolock Unexecuted instantiation: eblopenbackend.c:eu_tsearch_nolock Unexecuted instantiation: riscv_init.c:eu_tsearch_nolock Unexecuted instantiation: mips_init.c:eu_tsearch_nolock Unexecuted instantiation: mips_symbol.c:eu_tsearch_nolock Unexecuted instantiation: mips_retval.c:eu_tsearch_nolock Unexecuted instantiation: bpf_disasm.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_end.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_tag.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_error.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_attr.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_abbrev_hash.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_attr_integrate.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_hasattr_integrate.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_child.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_formudata.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_formref_die.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_siblingof.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_diecu.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_hasattr.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_bytesize.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_bitsize.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_formflag.c:eu_tsearch_nolock Unexecuted instantiation: libdw_findcu.c:eu_tsearch_nolock Unexecuted instantiation: libdw_form.c:eu_tsearch_nolock Unexecuted instantiation: libdw_alloc.c:eu_tsearch_nolock Unexecuted instantiation: frame-cache.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_frame_cfa.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_frame_register.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_cfi_addrframe.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_cfi_end.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_aggregate_size.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_getalt.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_peel_type.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_default_lower_bound.c:eu_tsearch_nolock Unexecuted instantiation: libdw_find_split_unit.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_cu_dwp_section_info.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_report_elf.c:eu_tsearch_nolock Unexecuted instantiation: relocate.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_module_build_id.c:eu_tsearch_nolock Unexecuted instantiation: segment.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_module_getdwarf.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_addrmodule.c:eu_tsearch_nolock Unexecuted instantiation: libdwfl_crc32.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_module_dwarf_cfi.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_module_eh_cfi.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_segment_report_module.c:eu_tsearch_nolock Unexecuted instantiation: link_map.c:eu_tsearch_nolock Unexecuted instantiation: dwflst_tracker_find_elf.c:eu_tsearch_nolock Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_begin.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_begin_elf.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_getabbrev.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_nextcu.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_offdie.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_formstring.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_haschildren.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_formsdata.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_formref.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_srclang.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_getlocation.c:eu_tsearch_nolock Unexecuted instantiation: fde.c:eu_tsearch_nolock Unexecuted instantiation: cfi.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_getcfi.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_getcfi_elf.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_setalt.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_get_units.c:eu_tsearch_nolock Unexecuted instantiation: dwfl_module_report_build_id.c:eu_tsearch_nolock Unexecuted instantiation: derelocate.c:eu_tsearch_nolock Unexecuted instantiation: linux-proc-maps.c:eu_tsearch_nolock Unexecuted instantiation: elf-from-memory.c:eu_tsearch_nolock Unexecuted instantiation: linux-pid-attach.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_formaddr.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_lowpc.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_ranges.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_formblock.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_next_cfi.c:eu_tsearch_nolock Unexecuted instantiation: cie.c:eu_tsearch_nolock Unexecuted instantiation: dwarf_highpc.c:eu_tsearch_nolock Unexecuted instantiation: elf_version.c:eu_tsearch_nolock Unexecuted instantiation: elf_hash.c:eu_tsearch_nolock Unexecuted instantiation: elf_error.c:eu_tsearch_nolock Unexecuted instantiation: elf_begin.c:eu_tsearch_nolock Unexecuted instantiation: elf_end.c:eu_tsearch_nolock Unexecuted instantiation: elf_kind.c:eu_tsearch_nolock Unexecuted instantiation: gelf_getclass.c:eu_tsearch_nolock Unexecuted instantiation: elf_getident.c:eu_tsearch_nolock Unexecuted instantiation: gelf_fsize.c:eu_tsearch_nolock Unexecuted instantiation: elf32_xlatetof.c:eu_tsearch_nolock Unexecuted instantiation: elf32_xlatetom.c:eu_tsearch_nolock Unexecuted instantiation: elf64_xlatetof.c:eu_tsearch_nolock Unexecuted instantiation: elf64_xlatetom.c:eu_tsearch_nolock Unexecuted instantiation: gelf_xlate.c:eu_tsearch_nolock Unexecuted instantiation: gelf_getehdr.c:eu_tsearch_nolock Unexecuted instantiation: gelf_getphdr.c:eu_tsearch_nolock Unexecuted instantiation: elf_rawfile.c:eu_tsearch_nolock Unexecuted instantiation: elf_readall.c:eu_tsearch_nolock Unexecuted instantiation: elf_cntl.c:eu_tsearch_nolock Unexecuted instantiation: elf_getscn.c:eu_tsearch_nolock Unexecuted instantiation: elf_nextscn.c:eu_tsearch_nolock Unexecuted instantiation: elf_ndxscn.c:eu_tsearch_nolock Unexecuted instantiation: gelf_getshdr.c:eu_tsearch_nolock Unexecuted instantiation: gelf_update_shdr.c:eu_tsearch_nolock Unexecuted instantiation: elf_strptr.c:eu_tsearch_nolock Unexecuted instantiation: elf_rawdata.c:eu_tsearch_nolock Unexecuted instantiation: elf_getdata.c:eu_tsearch_nolock Unexecuted instantiation: elf_getdata_rawchunk.c:eu_tsearch_nolock Unexecuted instantiation: elf_memory.c:eu_tsearch_nolock Unexecuted instantiation: gelf_getrel.c:eu_tsearch_nolock Unexecuted instantiation: gelf_getrela.c:eu_tsearch_nolock Unexecuted instantiation: gelf_update_rel.c:eu_tsearch_nolock Unexecuted instantiation: gelf_update_rela.c:eu_tsearch_nolock Unexecuted instantiation: gelf_getdyn.c:eu_tsearch_nolock Unexecuted instantiation: gelf_getnote.c:eu_tsearch_nolock Unexecuted instantiation: gelf_xlatetof.c:eu_tsearch_nolock Unexecuted instantiation: gelf_xlatetom.c:eu_tsearch_nolock Unexecuted instantiation: gelf_getsymshndx.c:eu_tsearch_nolock Unexecuted instantiation: elf_getphdrnum.c:eu_tsearch_nolock Unexecuted instantiation: elf_getshdrnum.c:eu_tsearch_nolock Unexecuted instantiation: elf_getshdrstrndx.c:eu_tsearch_nolock Unexecuted instantiation: elf_clone.c:eu_tsearch_nolock Unexecuted instantiation: gelf_offscn.c:eu_tsearch_nolock Unexecuted instantiation: elf_compress.c:eu_tsearch_nolock Unexecuted instantiation: elf_compress_gnu.c:eu_tsearch_nolock Unexecuted instantiation: eu-search.c:eu_tsearch_nolock Unexecuted instantiation: elf32_getphdr.c:eu_tsearch_nolock Unexecuted instantiation: elf64_getphdr.c:eu_tsearch_nolock Unexecuted instantiation: elf32_getshdr.c:eu_tsearch_nolock Unexecuted instantiation: elf64_getshdr.c:eu_tsearch_nolock Unexecuted instantiation: elf32_offscn.c:eu_tsearch_nolock Unexecuted instantiation: elf64_offscn.c:eu_tsearch_nolock Unexecuted instantiation: gelf_getchdr.c:eu_tsearch_nolock Unexecuted instantiation: elf32_getchdr.c:eu_tsearch_nolock Unexecuted instantiation: elf64_getchdr.c:eu_tsearch_nolock |
62 | | |
63 | | /* Search TREE for KEY. No locking is performed. */ |
64 | | static inline void * |
65 | | eu_tfind_nolock (const void *key, search_tree *tree, |
66 | | int (*compare)(const void *, const void *)) |
67 | 0 | { |
68 | 0 | return tfind (key, &tree->root, compare); |
69 | 0 | } Unexecuted instantiation: dwfl_begin.c:eu_tfind_nolock Unexecuted instantiation: dwfl_end.c:eu_tfind_nolock Unexecuted instantiation: dwfl_error.c:eu_tfind_nolock Unexecuted instantiation: dwfl_module.c:eu_tfind_nolock Unexecuted instantiation: find-debuginfo.c:eu_tfind_nolock Unexecuted instantiation: dwfl_build_id_find_elf.c:eu_tfind_nolock Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:eu_tfind_nolock Unexecuted instantiation: libdwfl_crc32_file.c:eu_tfind_nolock Unexecuted instantiation: core-file.c:eu_tfind_nolock Unexecuted instantiation: open.c:eu_tfind_nolock Unexecuted instantiation: image-header.c:eu_tfind_nolock Unexecuted instantiation: dwfl_frame.c:eu_tfind_nolock Unexecuted instantiation: frame_unwind.c:eu_tfind_nolock Unexecuted instantiation: dwfl_frame_pc.c:eu_tfind_nolock Unexecuted instantiation: linux-core-attach.c:eu_tfind_nolock Unexecuted instantiation: dwfl_frame_regs.c:eu_tfind_nolock Unexecuted instantiation: gzip.c:eu_tfind_nolock Unexecuted instantiation: dwflst_process_tracker.c:eu_tfind_nolock Unexecuted instantiation: dwflst_tracker_elftab.c:eu_tfind_nolock Unexecuted instantiation: dwflst_tracker_dwfltab.c:eu_tfind_nolock Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:eu_tfind_nolock Unexecuted instantiation: dwelf_elf_gnu_build_id.c:eu_tfind_nolock Unexecuted instantiation: eblopenbackend.c:eu_tfind_nolock Unexecuted instantiation: riscv_init.c:eu_tfind_nolock Unexecuted instantiation: mips_init.c:eu_tfind_nolock Unexecuted instantiation: mips_symbol.c:eu_tfind_nolock Unexecuted instantiation: mips_retval.c:eu_tfind_nolock Unexecuted instantiation: bpf_disasm.c:eu_tfind_nolock Unexecuted instantiation: dwarf_end.c:eu_tfind_nolock Unexecuted instantiation: dwarf_tag.c:eu_tfind_nolock Unexecuted instantiation: dwarf_error.c:eu_tfind_nolock Unexecuted instantiation: dwarf_attr.c:eu_tfind_nolock Unexecuted instantiation: dwarf_abbrev_hash.c:eu_tfind_nolock Unexecuted instantiation: dwarf_attr_integrate.c:eu_tfind_nolock Unexecuted instantiation: dwarf_hasattr_integrate.c:eu_tfind_nolock Unexecuted instantiation: dwarf_child.c:eu_tfind_nolock Unexecuted instantiation: dwarf_formudata.c:eu_tfind_nolock Unexecuted instantiation: dwarf_formref_die.c:eu_tfind_nolock Unexecuted instantiation: dwarf_siblingof.c:eu_tfind_nolock Unexecuted instantiation: dwarf_diecu.c:eu_tfind_nolock Unexecuted instantiation: dwarf_hasattr.c:eu_tfind_nolock Unexecuted instantiation: dwarf_bytesize.c:eu_tfind_nolock Unexecuted instantiation: dwarf_bitsize.c:eu_tfind_nolock Unexecuted instantiation: dwarf_formflag.c:eu_tfind_nolock Unexecuted instantiation: libdw_findcu.c:eu_tfind_nolock Unexecuted instantiation: libdw_form.c:eu_tfind_nolock Unexecuted instantiation: libdw_alloc.c:eu_tfind_nolock Unexecuted instantiation: frame-cache.c:eu_tfind_nolock Unexecuted instantiation: dwarf_frame_cfa.c:eu_tfind_nolock Unexecuted instantiation: dwarf_frame_register.c:eu_tfind_nolock Unexecuted instantiation: dwarf_cfi_addrframe.c:eu_tfind_nolock Unexecuted instantiation: dwarf_cfi_end.c:eu_tfind_nolock Unexecuted instantiation: dwarf_aggregate_size.c:eu_tfind_nolock Unexecuted instantiation: dwarf_getalt.c:eu_tfind_nolock Unexecuted instantiation: dwarf_peel_type.c:eu_tfind_nolock Unexecuted instantiation: dwarf_default_lower_bound.c:eu_tfind_nolock Unexecuted instantiation: libdw_find_split_unit.c:eu_tfind_nolock Unexecuted instantiation: dwarf_cu_dwp_section_info.c:eu_tfind_nolock Unexecuted instantiation: dwfl_report_elf.c:eu_tfind_nolock Unexecuted instantiation: relocate.c:eu_tfind_nolock Unexecuted instantiation: dwfl_module_build_id.c:eu_tfind_nolock Unexecuted instantiation: segment.c:eu_tfind_nolock Unexecuted instantiation: dwfl_module_getdwarf.c:eu_tfind_nolock Unexecuted instantiation: dwfl_addrmodule.c:eu_tfind_nolock Unexecuted instantiation: libdwfl_crc32.c:eu_tfind_nolock Unexecuted instantiation: dwfl_module_dwarf_cfi.c:eu_tfind_nolock Unexecuted instantiation: dwfl_module_eh_cfi.c:eu_tfind_nolock Unexecuted instantiation: dwfl_segment_report_module.c:eu_tfind_nolock Unexecuted instantiation: link_map.c:eu_tfind_nolock Unexecuted instantiation: dwflst_tracker_find_elf.c:eu_tfind_nolock Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:eu_tfind_nolock Unexecuted instantiation: dwarf_begin.c:eu_tfind_nolock Unexecuted instantiation: dwarf_begin_elf.c:eu_tfind_nolock Unexecuted instantiation: dwarf_getabbrev.c:eu_tfind_nolock Unexecuted instantiation: dwarf_nextcu.c:eu_tfind_nolock Unexecuted instantiation: dwarf_offdie.c:eu_tfind_nolock Unexecuted instantiation: dwarf_formstring.c:eu_tfind_nolock Unexecuted instantiation: dwarf_haschildren.c:eu_tfind_nolock Unexecuted instantiation: dwarf_formsdata.c:eu_tfind_nolock Unexecuted instantiation: dwarf_formref.c:eu_tfind_nolock Unexecuted instantiation: dwarf_srclang.c:eu_tfind_nolock Unexecuted instantiation: dwarf_getlocation.c:eu_tfind_nolock Unexecuted instantiation: fde.c:eu_tfind_nolock Unexecuted instantiation: cfi.c:eu_tfind_nolock Unexecuted instantiation: dwarf_getcfi.c:eu_tfind_nolock Unexecuted instantiation: dwarf_getcfi_elf.c:eu_tfind_nolock Unexecuted instantiation: dwarf_setalt.c:eu_tfind_nolock Unexecuted instantiation: dwarf_get_units.c:eu_tfind_nolock Unexecuted instantiation: dwfl_module_report_build_id.c:eu_tfind_nolock Unexecuted instantiation: derelocate.c:eu_tfind_nolock Unexecuted instantiation: linux-proc-maps.c:eu_tfind_nolock Unexecuted instantiation: elf-from-memory.c:eu_tfind_nolock Unexecuted instantiation: linux-pid-attach.c:eu_tfind_nolock Unexecuted instantiation: dwarf_formaddr.c:eu_tfind_nolock Unexecuted instantiation: dwarf_lowpc.c:eu_tfind_nolock Unexecuted instantiation: dwarf_ranges.c:eu_tfind_nolock Unexecuted instantiation: dwarf_formblock.c:eu_tfind_nolock Unexecuted instantiation: dwarf_next_cfi.c:eu_tfind_nolock Unexecuted instantiation: cie.c:eu_tfind_nolock Unexecuted instantiation: dwarf_highpc.c:eu_tfind_nolock Unexecuted instantiation: elf_version.c:eu_tfind_nolock Unexecuted instantiation: elf_hash.c:eu_tfind_nolock Unexecuted instantiation: elf_error.c:eu_tfind_nolock Unexecuted instantiation: elf_begin.c:eu_tfind_nolock Unexecuted instantiation: elf_end.c:eu_tfind_nolock Unexecuted instantiation: elf_kind.c:eu_tfind_nolock Unexecuted instantiation: gelf_getclass.c:eu_tfind_nolock Unexecuted instantiation: elf_getident.c:eu_tfind_nolock Unexecuted instantiation: gelf_fsize.c:eu_tfind_nolock Unexecuted instantiation: elf32_xlatetof.c:eu_tfind_nolock Unexecuted instantiation: elf32_xlatetom.c:eu_tfind_nolock Unexecuted instantiation: elf64_xlatetof.c:eu_tfind_nolock Unexecuted instantiation: elf64_xlatetom.c:eu_tfind_nolock Unexecuted instantiation: gelf_xlate.c:eu_tfind_nolock Unexecuted instantiation: gelf_getehdr.c:eu_tfind_nolock Unexecuted instantiation: gelf_getphdr.c:eu_tfind_nolock Unexecuted instantiation: elf_rawfile.c:eu_tfind_nolock Unexecuted instantiation: elf_readall.c:eu_tfind_nolock Unexecuted instantiation: elf_cntl.c:eu_tfind_nolock Unexecuted instantiation: elf_getscn.c:eu_tfind_nolock Unexecuted instantiation: elf_nextscn.c:eu_tfind_nolock Unexecuted instantiation: elf_ndxscn.c:eu_tfind_nolock Unexecuted instantiation: gelf_getshdr.c:eu_tfind_nolock Unexecuted instantiation: gelf_update_shdr.c:eu_tfind_nolock Unexecuted instantiation: elf_strptr.c:eu_tfind_nolock Unexecuted instantiation: elf_rawdata.c:eu_tfind_nolock Unexecuted instantiation: elf_getdata.c:eu_tfind_nolock Unexecuted instantiation: elf_getdata_rawchunk.c:eu_tfind_nolock Unexecuted instantiation: elf_memory.c:eu_tfind_nolock Unexecuted instantiation: gelf_getrel.c:eu_tfind_nolock Unexecuted instantiation: gelf_getrela.c:eu_tfind_nolock Unexecuted instantiation: gelf_update_rel.c:eu_tfind_nolock Unexecuted instantiation: gelf_update_rela.c:eu_tfind_nolock Unexecuted instantiation: gelf_getdyn.c:eu_tfind_nolock Unexecuted instantiation: gelf_getnote.c:eu_tfind_nolock Unexecuted instantiation: gelf_xlatetof.c:eu_tfind_nolock Unexecuted instantiation: gelf_xlatetom.c:eu_tfind_nolock Unexecuted instantiation: gelf_getsymshndx.c:eu_tfind_nolock Unexecuted instantiation: elf_getphdrnum.c:eu_tfind_nolock Unexecuted instantiation: elf_getshdrnum.c:eu_tfind_nolock Unexecuted instantiation: elf_getshdrstrndx.c:eu_tfind_nolock Unexecuted instantiation: elf_clone.c:eu_tfind_nolock Unexecuted instantiation: gelf_offscn.c:eu_tfind_nolock Unexecuted instantiation: elf_compress.c:eu_tfind_nolock Unexecuted instantiation: elf_compress_gnu.c:eu_tfind_nolock Unexecuted instantiation: eu-search.c:eu_tfind_nolock Unexecuted instantiation: elf32_getphdr.c:eu_tfind_nolock Unexecuted instantiation: elf64_getphdr.c:eu_tfind_nolock Unexecuted instantiation: elf32_getshdr.c:eu_tfind_nolock Unexecuted instantiation: elf64_getshdr.c:eu_tfind_nolock Unexecuted instantiation: elf32_offscn.c:eu_tfind_nolock Unexecuted instantiation: elf64_offscn.c:eu_tfind_nolock Unexecuted instantiation: gelf_getchdr.c:eu_tfind_nolock Unexecuted instantiation: elf32_getchdr.c:eu_tfind_nolock Unexecuted instantiation: elf64_getchdr.c:eu_tfind_nolock |
70 | | |
71 | | /* Delete key from TREE. No locking is performed. */ |
72 | | static inline void * |
73 | | eu_tdelete_nolock (const void *key, search_tree *tree, |
74 | | int (*compare)(const void *, const void *)) |
75 | 0 | { |
76 | 0 | return tdelete (key, &tree->root, compare); |
77 | 0 | } Unexecuted instantiation: dwfl_begin.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_end.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_error.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_module.c:eu_tdelete_nolock Unexecuted instantiation: find-debuginfo.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_build_id_find_elf.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_build_id_find_debuginfo.c:eu_tdelete_nolock Unexecuted instantiation: libdwfl_crc32_file.c:eu_tdelete_nolock Unexecuted instantiation: core-file.c:eu_tdelete_nolock Unexecuted instantiation: open.c:eu_tdelete_nolock Unexecuted instantiation: image-header.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_frame.c:eu_tdelete_nolock Unexecuted instantiation: frame_unwind.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_frame_pc.c:eu_tdelete_nolock Unexecuted instantiation: linux-core-attach.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_frame_regs.c:eu_tdelete_nolock Unexecuted instantiation: gzip.c:eu_tdelete_nolock Unexecuted instantiation: dwflst_process_tracker.c:eu_tdelete_nolock Unexecuted instantiation: dwflst_tracker_elftab.c:eu_tdelete_nolock Unexecuted instantiation: dwflst_tracker_dwfltab.c:eu_tdelete_nolock Unexecuted instantiation: dwelf_dwarf_gnu_debugaltlink.c:eu_tdelete_nolock Unexecuted instantiation: dwelf_elf_gnu_build_id.c:eu_tdelete_nolock Unexecuted instantiation: eblopenbackend.c:eu_tdelete_nolock Unexecuted instantiation: riscv_init.c:eu_tdelete_nolock Unexecuted instantiation: mips_init.c:eu_tdelete_nolock Unexecuted instantiation: mips_symbol.c:eu_tdelete_nolock Unexecuted instantiation: mips_retval.c:eu_tdelete_nolock Unexecuted instantiation: bpf_disasm.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_end.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_tag.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_error.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_attr.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_abbrev_hash.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_attr_integrate.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_hasattr_integrate.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_child.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_formudata.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_formref_die.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_siblingof.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_diecu.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_hasattr.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_bytesize.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_bitsize.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_formflag.c:eu_tdelete_nolock Unexecuted instantiation: libdw_findcu.c:eu_tdelete_nolock Unexecuted instantiation: libdw_form.c:eu_tdelete_nolock Unexecuted instantiation: libdw_alloc.c:eu_tdelete_nolock Unexecuted instantiation: frame-cache.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_frame_cfa.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_frame_register.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_cfi_addrframe.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_cfi_end.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_aggregate_size.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_getalt.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_peel_type.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_default_lower_bound.c:eu_tdelete_nolock Unexecuted instantiation: libdw_find_split_unit.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_cu_dwp_section_info.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_report_elf.c:eu_tdelete_nolock Unexecuted instantiation: relocate.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_module_build_id.c:eu_tdelete_nolock Unexecuted instantiation: segment.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_module_getdwarf.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_addrmodule.c:eu_tdelete_nolock Unexecuted instantiation: libdwfl_crc32.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_module_dwarf_cfi.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_module_eh_cfi.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_segment_report_module.c:eu_tdelete_nolock Unexecuted instantiation: link_map.c:eu_tdelete_nolock Unexecuted instantiation: dwflst_tracker_find_elf.c:eu_tdelete_nolock Unexecuted instantiation: dwelf_elf_gnu_debuglink.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_begin.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_begin_elf.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_getabbrev.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_nextcu.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_offdie.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_formstring.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_haschildren.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_formsdata.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_formref.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_srclang.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_getlocation.c:eu_tdelete_nolock Unexecuted instantiation: fde.c:eu_tdelete_nolock Unexecuted instantiation: cfi.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_getcfi.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_getcfi_elf.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_setalt.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_get_units.c:eu_tdelete_nolock Unexecuted instantiation: dwfl_module_report_build_id.c:eu_tdelete_nolock Unexecuted instantiation: derelocate.c:eu_tdelete_nolock Unexecuted instantiation: linux-proc-maps.c:eu_tdelete_nolock Unexecuted instantiation: elf-from-memory.c:eu_tdelete_nolock Unexecuted instantiation: linux-pid-attach.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_formaddr.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_lowpc.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_ranges.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_formblock.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_next_cfi.c:eu_tdelete_nolock Unexecuted instantiation: cie.c:eu_tdelete_nolock Unexecuted instantiation: dwarf_highpc.c:eu_tdelete_nolock Unexecuted instantiation: elf_version.c:eu_tdelete_nolock Unexecuted instantiation: elf_hash.c:eu_tdelete_nolock Unexecuted instantiation: elf_error.c:eu_tdelete_nolock Unexecuted instantiation: elf_begin.c:eu_tdelete_nolock Unexecuted instantiation: elf_end.c:eu_tdelete_nolock Unexecuted instantiation: elf_kind.c:eu_tdelete_nolock Unexecuted instantiation: gelf_getclass.c:eu_tdelete_nolock Unexecuted instantiation: elf_getident.c:eu_tdelete_nolock Unexecuted instantiation: gelf_fsize.c:eu_tdelete_nolock Unexecuted instantiation: elf32_xlatetof.c:eu_tdelete_nolock Unexecuted instantiation: elf32_xlatetom.c:eu_tdelete_nolock Unexecuted instantiation: elf64_xlatetof.c:eu_tdelete_nolock Unexecuted instantiation: elf64_xlatetom.c:eu_tdelete_nolock Unexecuted instantiation: gelf_xlate.c:eu_tdelete_nolock Unexecuted instantiation: gelf_getehdr.c:eu_tdelete_nolock Unexecuted instantiation: gelf_getphdr.c:eu_tdelete_nolock Unexecuted instantiation: elf_rawfile.c:eu_tdelete_nolock Unexecuted instantiation: elf_readall.c:eu_tdelete_nolock Unexecuted instantiation: elf_cntl.c:eu_tdelete_nolock Unexecuted instantiation: elf_getscn.c:eu_tdelete_nolock Unexecuted instantiation: elf_nextscn.c:eu_tdelete_nolock Unexecuted instantiation: elf_ndxscn.c:eu_tdelete_nolock Unexecuted instantiation: gelf_getshdr.c:eu_tdelete_nolock Unexecuted instantiation: gelf_update_shdr.c:eu_tdelete_nolock Unexecuted instantiation: elf_strptr.c:eu_tdelete_nolock Unexecuted instantiation: elf_rawdata.c:eu_tdelete_nolock Unexecuted instantiation: elf_getdata.c:eu_tdelete_nolock Unexecuted instantiation: elf_getdata_rawchunk.c:eu_tdelete_nolock Unexecuted instantiation: elf_memory.c:eu_tdelete_nolock Unexecuted instantiation: gelf_getrel.c:eu_tdelete_nolock Unexecuted instantiation: gelf_getrela.c:eu_tdelete_nolock Unexecuted instantiation: gelf_update_rel.c:eu_tdelete_nolock Unexecuted instantiation: gelf_update_rela.c:eu_tdelete_nolock Unexecuted instantiation: gelf_getdyn.c:eu_tdelete_nolock Unexecuted instantiation: gelf_getnote.c:eu_tdelete_nolock Unexecuted instantiation: gelf_xlatetof.c:eu_tdelete_nolock Unexecuted instantiation: gelf_xlatetom.c:eu_tdelete_nolock Unexecuted instantiation: gelf_getsymshndx.c:eu_tdelete_nolock Unexecuted instantiation: elf_getphdrnum.c:eu_tdelete_nolock Unexecuted instantiation: elf_getshdrnum.c:eu_tdelete_nolock Unexecuted instantiation: elf_getshdrstrndx.c:eu_tdelete_nolock Unexecuted instantiation: elf_clone.c:eu_tdelete_nolock Unexecuted instantiation: gelf_offscn.c:eu_tdelete_nolock Unexecuted instantiation: elf_compress.c:eu_tdelete_nolock Unexecuted instantiation: elf_compress_gnu.c:eu_tdelete_nolock Unexecuted instantiation: eu-search.c:eu_tdelete_nolock Unexecuted instantiation: elf32_getphdr.c:eu_tdelete_nolock Unexecuted instantiation: elf64_getphdr.c:eu_tdelete_nolock Unexecuted instantiation: elf32_getshdr.c:eu_tdelete_nolock Unexecuted instantiation: elf64_getshdr.c:eu_tdelete_nolock Unexecuted instantiation: elf32_offscn.c:eu_tdelete_nolock Unexecuted instantiation: elf64_offscn.c:eu_tdelete_nolock Unexecuted instantiation: gelf_getchdr.c:eu_tdelete_nolock Unexecuted instantiation: elf32_getchdr.c:eu_tdelete_nolock Unexecuted instantiation: elf64_getchdr.c:eu_tdelete_nolock |
78 | | |
79 | | /* Free all nodes from TREE. */ |
80 | | void eu_tdestroy (search_tree *tree, void (*free_node)(void *)); |
81 | | |
82 | | /* Initialize TREE's root and lock. */ |
83 | | void eu_search_tree_init (search_tree *tree); |
84 | | |
85 | | /* Free all nodes from TREE as well as TREE's lock. */ |
86 | | void eu_search_tree_fini (search_tree *tree, void (*free_node)(void *)); |
87 | | |
88 | | #endif |