Halide 22.0.0 Halide compiler and libraries

Public Types | Public Member Functions | List of all members
Halide::Internal::Elf::Section Class Reference

Describes a section of an object file. More...

`#include <Elf.h>`

## Public Types
enum | Type : uint32_t { SHT_NULL = 0 , SHT_PROGBITS = 1 , SHT_SYMTAB = 2 , SHT_STRTAB = 3 , SHT_RELA = 4 , SHT_HASH = 5 , SHT_DYNAMIC = 6 , SHT_NOTE = 7 , SHT_NOBITS = 8 , SHT_REL = 9 , SHT_SHLIB = 10 , SHT_DYNSYM = 11 , SHT_LOPROC = 0x70000000u , SHT_HIPROC = 0x7fffffffu , SHT_LOUSER = 0x80000000u , SHT_HIUSER = 0xffffffffu }
enum | Flag : uint32_t { SHF_WRITE = 0x1 , SHF_ALLOC = 0x2 , SHF_EXECINSTR = 0x4 , SHF_MASKPROC = 0xf0000000u }
typedef std::vector< Relocation > | RelocationList
typedef RelocationList::iterator | relocation_iterator
typedef RelocationList::const_iterator | const_relocation_iterator
typedef std::vector< char >::iterator | contents_iterator
typedef std::vector< char >::const_iterator | const_contents_iterator

## Public Member Functions
| Section ()=default
| Section (const std::string &name, Type type)
Section & | set_name (const std::string &name)
const std::string & | get_name () const
Section & | set_type (Type type)
Type | get_type () const
Section & | set_flag (Flag flag)
Section & | remove_flag (Flag flag)
Section & | set_flags (uint32_t flags)
uint32_t | get_flags () const
bool | is_alloc () const
bool | is_writable () const
Section & | set_alignment (uint64_t alignment)
uint64_t | get_alignment () const
Section & | set_contents (std::vector< char > contents)
template<typename It >
Section & | set_contents (It begin, It end)
template<typename It >
Section & | append_contents (It begin, It end)
template<typename It >
Section & | prepend_contents (It begin, It end)
template<typename T >
Section & | set_contents (const std::vector< T > &contents)
| Set, append or prepend an object to the contents, assuming T is a trivially copyable datatype. More...
template<typename T >
Section & | append_contents (const T &x)
template<typename T >
Section & | prepend_contents (const T &x)
const std::vector< char > & | get_contents () const
contents_iterator | contents_begin ()
contents_iterator | contents_end ()
const_contents_iterator | contents_begin () const
const_contents_iterator | contents_end () const
const char * | contents_data () const
size_t | contents_size () const
bool | contents_empty () const
Section & | set_relocations (std::vector< Relocation > relocs)
template<typename It >
Section & | set_relocations (It begin, It end)
void | add_relocation (const Relocation &reloc)
relocation_iterator | relocations_begin ()
relocation_iterator | relocations_end ()
iterator_range< relocation_iterator > | relocations ()
const_relocation_iterator | relocations_begin () const
const_relocation_iterator | relocations_end () const
iterator_range< const_relocation_iterator > | relocations () const
size_t | relocations_size () const
Section & | set_size (uint64_t size)
| Get or set the size of the section. More...
uint64_t | get_size () const
| Get or set the size of the section. More...

## Detailed Description

Describes a section of an object file.

Definition at line 214 of file Elf.h.

## Member Typedef Documentation

## ◆ RelocationList

typedef std::vector<Relocation> Halide::Internal::Elf::Section::RelocationList

Definition at line 242 of file Elf.h.

## ◆ relocation_iterator

typedef RelocationList::iterator Halide::Internal::Elf::Section::relocation_iterator

Definition at line 243 of file Elf.h.

## ◆ const_relocation_iterator

typedef RelocationList::const_iterator Halide::Internal::Elf::Section::const_relocation_iterator

Definition at line 244 of file Elf.h.

## ◆ contents_iterator

typedef std::vector<char>::iterator Halide::Internal::Elf::Section::contents_iterator

Definition at line 246 of file Elf.h.

## ◆ const_contents_iterator

typedef std::vector<char>::const_iterator Halide::Internal::Elf::Section::const_contents_iterator

Definition at line 247 of file Elf.h.

## Member Enumeration Documentation

## ◆ Type

enum Halide::Internal::Elf::Section::Type : uint32_t

Enumerator
SHT_NULL |
SHT_PROGBITS |
SHT_SYMTAB |
SHT_STRTAB |
SHT_RELA |
SHT_HASH |
SHT_DYNAMIC |
SHT_NOTE |
SHT_NOBITS |
SHT_REL |
SHT_SHLIB |
SHT_DYNSYM |
SHT_LOPROC |
SHT_HIPROC |
SHT_LOUSER |
SHT_HIUSER |

Definition at line 216 of file Elf.h.

## ◆ Flag

enum Halide::Internal::Elf::Section::Flag : uint32_t

Enumerator
SHF_WRITE |
SHF_ALLOC |
SHF_EXECINSTR |
SHF_MASKPROC |

Definition at line 235 of file Elf.h.

## Constructor & Destructor Documentation

## ◆ Section() [1/2]

Halide::Internal::Elf::Section::Section | ( |  | ) |
| default

## ◆ Section() [2/2]

Halide::Internal::Elf::Section::Section | ( | const std::string & | name,
|  | Type | type
| ) |  |
| inline

Definition at line 261 of file Elf.h.

## Member Function Documentation

## ◆ set_name()

Section & Halide::Internal::Elf::Section::set_name | ( | const std::string & | name | ) |
| inline

Definition at line 265 of file Elf.h.

## ◆ get_name()

const std::string & Halide::Internal::Elf::Section::get_name | ( |  | ) | const
| inline

Definition at line 269 of file Elf.h.

## ◆ set_type()

Section & Halide::Internal::Elf::Section::set_type | ( | Type | type | ) |
| inline

Definition at line 273 of file Elf.h.

## ◆ get_type()

Type Halide::Internal::Elf::Section::get_type | ( |  | ) | const
| inline

Definition at line 277 of file Elf.h.

## ◆ set_flag()

Section & Halide::Internal::Elf::Section::set_flag | ( | Flag | flag | ) |
| inline

Definition at line 281 of file Elf.h.

## ◆ remove_flag()

Section & Halide::Internal::Elf::Section::remove_flag | ( | Flag | flag | ) |
| inline

Definition at line 285 of file Elf.h.

## ◆ set_flags()

Section & Halide::Internal::Elf::Section::set_flags | ( | uint32_t | flags | ) |
| inline

Definition at line 289 of file Elf.h.

## ◆ get_flags()

uint32_t Halide::Internal::Elf::Section::get_flags | ( |  | ) | const
| inline

Definition at line 293 of file Elf.h.

## ◆ is_alloc()

bool Halide::Internal::Elf::Section::is_alloc | ( |  | ) | const
| inline

Definition at line 296 of file Elf.h.

References SHF_ALLOC.

## ◆ is_writable()

bool Halide::Internal::Elf::Section::is_writable | ( |  | ) | const
| inline

Definition at line 299 of file Elf.h.

References SHF_WRITE.

## ◆ set_size()

Section & Halide::Internal::Elf::Section::set_size | ( | uint64_t | size | ) |
| inline

Get or set the size of the section.

The size may be larger than the content.

Definition at line 306 of file Elf.h.

## ◆ get_size()

uint64_t Halide::Internal::Elf::Section::get_size | ( |  | ) | const
| inline

Get or set the size of the section.

The size may be larger than the content.

Definition at line 310 of file Elf.h.

References Halide::Internal::max().

## ◆ set_alignment()

Section & Halide::Internal::Elf::Section::set_alignment | ( | uint64_t | alignment | ) |
| inline

Definition at line 315 of file Elf.h.

## ◆ get_alignment()

uint64_t Halide::Internal::Elf::Section::get_alignment | ( |  | ) | const
| inline

Definition at line 319 of file Elf.h.

## ◆ set_contents() [1/3]

Section & Halide::Internal::Elf::Section::set_contents | ( | std::vector< char > | contents | ) |
| inline

Definition at line 323 of file Elf.h.

## ◆ set_contents() [2/3]

template<typename It >

Section & Halide::Internal::Elf::Section::set_contents | ( | It | begin,
|  | It | end
| ) |  |
| inline

Definition at line 328 of file Elf.h.

References Halide::Internal::begin(), and Halide::Internal::end().

## ◆ append_contents() [1/2]

template<typename It >

Section & Halide::Internal::Elf::Section::append_contents | ( | It | begin,
|  | It | end
| ) |  |
| inline

Definition at line 333 of file Elf.h.

References Halide::Internal::begin(), and Halide::Internal::end().

Referenced by append_contents().

## ◆ prepend_contents() [1/2]

template<typename It >

Section & Halide::Internal::Elf::Section::prepend_contents | ( | It | begin,
|  | It | end
| ) |  |
| inline

Definition at line 338 of file Elf.h.

References Halide::Internal::begin(), Halide::Internal::end(), and relocations().

Referenced by prepend_contents().

## ◆ set_contents() [3/3]

template<typename T >

Section & Halide::Internal::Elf::Section::set_contents | ( | const std::vector< T > & | contents | ) |
| inline

Set, append or prepend an object to the contents, assuming T is a trivially copyable datatype.

Definition at line 354 of file Elf.h.

## ◆ append_contents() [2/2]

template<typename T >

Section & Halide::Internal::Elf::Section::append_contents | ( | const T & | x | ) |
| inline

Definition at line 359 of file Elf.h.

References append_contents().

## ◆ prepend_contents() [2/2]

template<typename T >

Section & Halide::Internal::Elf::Section::prepend_contents | ( | const T & | x | ) |
| inline

Definition at line 363 of file Elf.h.

References prepend_contents().

## ◆ get_contents()

const std::vector< char > & Halide::Internal::Elf::Section::get_contents | ( |  | ) | const
| inline

Definition at line 366 of file Elf.h.

## ◆ contents_begin() [1/2]

contents_iterator Halide::Internal::Elf::Section::contents_begin | ( |  | ) |
| inline

Definition at line 369 of file Elf.h.

## ◆ contents_end() [1/2]

contents_iterator Halide::Internal::Elf::Section::contents_end | ( |  | ) |
| inline

Definition at line 372 of file Elf.h.

## ◆ contents_begin() [2/2]

const_contents_iterator Halide::Internal::Elf::Section::contents_begin | ( |  | ) | const
| inline

Definition at line 375 of file Elf.h.

## ◆ contents_end() [2/2]

const_contents_iterator Halide::Internal::Elf::Section::contents_end | ( |  | ) | const
| inline

Definition at line 378 of file Elf.h.

## ◆ contents_data()

const char * Halide::Internal::Elf::Section::contents_data | ( |  | ) | const
| inline

Definition at line 381 of file Elf.h.

## ◆ contents_size()

size_t Halide::Internal::Elf::Section::contents_size | ( |  | ) | const
| inline

Definition at line 384 of file Elf.h.

## ◆ contents_empty()

bool Halide::Internal::Elf::Section::contents_empty | ( |  | ) | const
| inline

Definition at line 387 of file Elf.h.

## ◆ set_relocations() [1/2]

Section & Halide::Internal::Elf::Section::set_relocations | ( | std::vector< Relocation > | relocs | ) |
| inline

Definition at line 391 of file Elf.h.

## ◆ set_relocations() [2/2]

template<typename It >

Section & Halide::Internal::Elf::Section::set_relocations | ( | It | begin,
|  | It | end
| ) |  |
| inline

Definition at line 396 of file Elf.h.

References Halide::Internal::begin(), and Halide::Internal::end().

## ◆ add_relocation()

void Halide::Internal::Elf::Section::add_relocation | ( | const Relocation & | reloc | ) |
| inline

Definition at line 400 of file Elf.h.

## ◆ relocations_begin() [1/2]

relocation_iterator Halide::Internal::Elf::Section::relocations_begin | ( |  | ) |
| inline

Definition at line 403 of file Elf.h.

## ◆ relocations_end() [1/2]

relocation_iterator Halide::Internal::Elf::Section::relocations_end | ( |  | ) |
| inline

Definition at line 406 of file Elf.h.

## ◆ relocations() [1/2]

iterator_range< relocation_iterator > Halide::Internal::Elf::Section::relocations | ( |  | ) |
| inline

Definition at line 409 of file Elf.h.

Referenced by prepend_contents().

## ◆ relocations_begin() [2/2]

const_relocation_iterator Halide::Internal::Elf::Section::relocations_begin | ( |  | ) | const
| inline

Definition at line 412 of file Elf.h.

## ◆ relocations_end() [2/2]

const_relocation_iterator Halide::Internal::Elf::Section::relocations_end | ( |  | ) | const
| inline

Definition at line 415 of file Elf.h.

## ◆ relocations() [2/2]

iterator_range< const_relocation_iterator > Halide::Internal::Elf::Section::relocations | ( |  | ) | const
| inline

Definition at line 418 of file Elf.h.

## ◆ relocations_size()

size_t Halide::Internal::Elf::Section::relocations_size | ( |  | ) | const
| inline

Definition at line 421 of file Elf.h.

The documentation for this class was generated from the following file:

- src/Elf.h