File: abg-btf-reader.h

package info (click to toggle)
libabigail 2.9-2
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 1,021,756 kB
  • sloc: xml: 572,663; cpp: 110,945; sh: 11,868; ansic: 4,329; makefile: 3,486; python: 1,684; ada: 62
file content (67 lines) | stat: -rw-r--r-- 2,214 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// -*- Mode: C++ -*-
//
// Copyright (C) 2022-2025 Red Hat, Inc.
//
// Author: Dodji Seketeli

/// @file
///
/// This file contains the declarations of the front-end to analyze the
/// BTF information contained in an ELF file.

#ifndef __ABG_BTF_READER_H__
#define __ABG_BTF_READER_H__

#include "abg-elf-based-reader.h"

namespace abigail
{

/// Namespace of the reader for the BTF debug information.
namespace btf
{

  /// Create and return a BTF reader (or front-end) which is an instance
  /// of @ref btf::reader.
  ///
  /// @param elf_path the path to the path to the elf file the reader is
  /// to be used for.
  ///
  /// @param debug_info_root_paths a vector to the paths to the
  /// directories under which the debug info is to be found for @p
  /// elf_path.  Pass an empty vector if th debug info is not in a split
  /// file.
  ///
  /// @param environment the environment used by the current context.
  /// This environment contains resources needed by the BTF reader and
  /// by the types and declarations that are to be created later.  Note
  /// that ABI artifacts that are to be compared all need to be created
  /// within the same environment.
  ///
  /// Please also note that the life time of this environment object
  /// must be greater than the life time of the resulting @ref
  /// reader the context uses resources that are allocated in the
  /// environment.
  ///
  /// @param load_all_types if set to false only the types that are
  /// reachable from publicly exported declarations (of functions and
  /// variables) are read.  If set to true then all types found in the
  /// debug information are loaded.
  ///
  /// @param linux_kernel_mode if set to true, then consider the special
  /// linux kernel symbol tables when determining if a symbol is
  /// exported or not.
  ///
  /// @return a smart pointer to the resulting btf::reader.
  elf_based_reader_sptr
  create_reader(const std::string& elf_path,
		const vector<string>& debug_info_root_paths,
		environment& env,
		bool load_all_types = false,
		bool linux_kernel_mode = false);

}//end namespace btf
}//end namespace abigail

#endif //__ABG_BTF_READER_H__