retdec
tls_info.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_FILEFORMAT_TYPES_TLS_INFO_TLS_INFO_H
8 #define RETDEC_FILEFORMAT_TYPES_TLS_INFO_TLS_INFO_H
9 
10 #include <string>
11 #include <vector>
12 
13 namespace retdec {
14 namespace fileformat {
15 
19 class TlsInfo
20 {
21  private:
22  std::vector<std::uint64_t> callBacks;
23  std::uint64_t rawDataStartAddr = 0;
24  std::uint64_t rawDataEndAddr = 0;
25  std::uint64_t indexAddr = 0;
26  std::uint64_t callBacksAddr = 0;
27  std::uint32_t zeroFillSize = 0;
28  std::uint32_t characteristics = 0;
29  bool rawDataStartAddrValid = false;
30  bool rawDataEndAddrValid = false;
31  bool indexAddrValid = false;
32  bool callBacksAddrValid = false;
33  bool zeroFillSizeValid = false;
34  bool characteristicsValid = false;
35  public:
38  bool getRawDataStartAddr(std::uint64_t &res) const;
39  bool getRawDataEndAddr(std::uint64_t &res) const;
40  bool getIndexAddr(std::uint64_t &res) const;
41  bool getCallBacksAddr(std::uint64_t &res) const;
42  bool getZeroFillSize(std::uint32_t &res) const;
43  bool getCharacteristics(std::uint32_t &res) const;
44  const std::vector<std::uint64_t> &getCallBacks() const;
46 
49  void setRawDataStartAddr(std::uint64_t sAddr);
50  void setRawDataEndAddr(std::uint64_t eAddr);
51  void setIndexAddr(std::uint64_t iAddr);
52  void setCallBacksAddr(std::uint64_t cbAddr);
53  void setZeroFillSize(std::uint32_t zFill);
54  void setCharacteristics(std::uint32_t chars);
55  void setCallBacks(const std::vector<uint64_t> & callbacks);
57 
60  void addCallBack(std::uint64_t cb);
62 };
63 
64 } // namespace fileformat
65 } // namespace retdec
66 
67 #endif
Definition: tls_info.h:20
std::vector< std::uint64_t > callBacks
addresses of callback functions
Definition: tls_info.h:22
bool getIndexAddr(std::uint64_t &res) const
Definition: tls_info.cpp:49
bool rawDataEndAddrValid
member validity flag
Definition: tls_info.h:30
bool getCharacteristics(std::uint32_t &res) const
Definition: tls_info.cpp:94
bool getRawDataStartAddr(std::uint64_t &res) const
Definition: tls_info.cpp:19
void addCallBack(std::uint64_t cb)
Definition: tls_info.cpp:186
void setIndexAddr(std::uint64_t iAddr)
Definition: tls_info.cpp:137
bool rawDataStartAddrValid
member validity flag
Definition: tls_info.h:29
std::uint64_t rawDataStartAddr
start address of raw data
Definition: tls_info.h:23
std::uint32_t characteristics
characteristics
Definition: tls_info.h:28
bool getRawDataEndAddr(std::uint64_t &res) const
Definition: tls_info.cpp:34
void setCallBacks(const std::vector< uint64_t > &callbacks)
Definition: tls_info.cpp:157
std::uint64_t indexAddr
address of index
Definition: tls_info.h:25
void setCharacteristics(std::uint32_t chars)
Definition: tls_info.cpp:176
bool getCallBacksAddr(std::uint64_t &res) const
Definition: tls_info.cpp:64
bool getZeroFillSize(std::uint32_t &res) const
Definition: tls_info.cpp:79
void setRawDataStartAddr(std::uint64_t sAddr)
Definition: tls_info.cpp:117
void setZeroFillSize(std::uint32_t zFill)
Definition: tls_info.cpp:166
void setCallBacksAddr(std::uint64_t cbAddr)
Definition: tls_info.cpp:147
std::uint64_t callBacksAddr
address of array of callbacks
Definition: tls_info.h:26
bool indexAddrValid
member validity flag
Definition: tls_info.h:31
bool callBacksAddrValid
member validity flag
Definition: tls_info.h:32
std::uint64_t rawDataEndAddr
end address of raw data
Definition: tls_info.h:24
const std::vector< std::uint64_t > & getCallBacks() const
Definition: tls_info.cpp:108
bool characteristicsValid
member validity flag
Definition: tls_info.h:34
void setRawDataEndAddr(std::uint64_t eAddr)
Definition: tls_info.cpp:127
std::uint32_t zeroFillSize
size of zero fill
Definition: tls_info.h:27
bool zeroFillSizeValid
member validity flag
Definition: tls_info.h:33
Definition: archive_wrapper.h:19