/*
This file is part of Libelfpp.
Libelfpp is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
Libelfpp is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with Libelfpp. If not, see
.
Copyright (c) Alexandre Becoulet
*/
#ifndef ELFPP_SYMBOL_HXX_
#define ELFPP_SYMBOL_HXX_
namespace elfpp
{
const std::string & symbol::get_name() const
{
return name_;
}
section * symbol::get_section() const
{
return section_;
}
void symbol::set_section_ndx(unsigned int ndx)
{
sec_ndx_ = ndx;
}
unsigned int symbol::get_section_ndx() const
{
return sec_ndx_;
}
uint8_t symbol::get_info() const
{
return info_;
}
void symbol::set_info(uint8_t info)
{
info_ = info;
}
uint8_t symbol::get_other() const
{
return other_;
}
void symbol::set_other(uint8_t other)
{
other_ = other;
}
uint64_t symbol::get_value() const
{
return value_;
}
size_t symbol::get_size() const
{
return size_;
}
uint8_t * symbol::get_content() const
{
return content_;
}
void symbol::set_value(uint64_t val)
{
value_ = val;
}
void symbol::set_size(size_t size)
{
size_ = size;
}
const reloc_table_t & symbol::get_reloc_table() const
{
return reloc_tab_;
}
const reloc_modlist_t & symbol::get_mangling_relocs() const
{
return reloc_mod_;
}
st_info_type_e symbol::get_type() const
{
return ELF_ST_TYPE(info_);
}
void symbol::set_type(st_info_type_e type)
{
info_ = ELF_ST_INFO(get_bind(), type);
}
st_info_bind_e symbol::get_bind() const
{
return ELF_ST_BIND(info_);
}
void symbol::set_bind(st_info_bind_e bind)
{
info_ = ELF_ST_INFO(bind, get_type());
}
}
#endif