13e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton//===-- SBSection.h ---------------------------------------------*- C++ -*-===// 23e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton// 33e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton// The LLVM Compiler Infrastructure 43e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton// 53e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton// This file is distributed under the University of Illinois Open Source 63e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton// License. See LICENSE.TXT for details. 73e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton// 83e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton//===----------------------------------------------------------------------===// 93e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 103e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton#ifndef LLDB_SBSection_h_ 113e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton#define LLDB_SBSection_h_ 123e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 133e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton#include "lldb/API/SBDefines.h" 143e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton#include "lldb/API/SBData.h" 153e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 163e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Claytonnamespace lldb { 173e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 183e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Claytonclass SBSection 193e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton{ 203e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Claytonpublic: 213e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 223e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton SBSection (); 233e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 243e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton SBSection (const lldb::SBSection &rhs); 253e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 263e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton ~SBSection (); 273e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 283e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton const lldb::SBSection & 293e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton operator = (const lldb::SBSection &rhs); 307dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton 313e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton bool 323e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton IsValid () const; 333e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 34980c7500ca60ce7ee0917ea77bc9bb4563950c57Greg Clayton const char * 35980c7500ca60ce7ee0917ea77bc9bb4563950c57Greg Clayton GetName (); 36ba3ebe1d3e6d13c42f7e35ff715431573af65681Greg Clayton 37ba3ebe1d3e6d13c42f7e35ff715431573af65681Greg Clayton lldb::SBSection 38ba3ebe1d3e6d13c42f7e35ff715431573af65681Greg Clayton GetParent(); 39ba3ebe1d3e6d13c42f7e35ff715431573af65681Greg Clayton 403e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton lldb::SBSection 413e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton FindSubSection (const char *sect_name); 423e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 433e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton size_t 443e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton GetNumSubSections (); 453e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 463e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton lldb::SBSection 473e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton GetSubSectionAtIndex (size_t idx); 483e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 493e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton lldb::addr_t 503e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton GetFileAddress (); 513e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 523e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton lldb::addr_t 535c5a38e7c640e9448241ec2aca0c60047ec3273cGreg Clayton GetLoadAddress (lldb::SBTarget &target); 545c5a38e7c640e9448241ec2aca0c60047ec3273cGreg Clayton 555c5a38e7c640e9448241ec2aca0c60047ec3273cGreg Clayton lldb::addr_t 563e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton GetByteSize (); 573e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 583e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton uint64_t 593e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton GetFileOffset (); 603e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 613e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton uint64_t 623e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton GetFileByteSize (); 633e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 643e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton lldb::SBData 6515ef51e3bd8229d3779f96e08b25b26182c91c6cGreg Clayton GetSectionData (); 663e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 6715ef51e3bd8229d3779f96e08b25b26182c91c6cGreg Clayton lldb::SBData 6815ef51e3bd8229d3779f96e08b25b26182c91c6cGreg Clayton GetSectionData (uint64_t offset, 6915ef51e3bd8229d3779f96e08b25b26182c91c6cGreg Clayton uint64_t size); 7015ef51e3bd8229d3779f96e08b25b26182c91c6cGreg Clayton 713e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton SectionType 723e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton GetSectionType (); 733e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 743e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton bool 753e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton operator == (const lldb::SBSection &rhs); 763e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 773e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton bool 783e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton operator != (const lldb::SBSection &rhs); 793e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 803e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton bool 813e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton GetDescription (lldb::SBStream &description); 823e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 83ba3ebe1d3e6d13c42f7e35ff715431573af65681Greg Clayton 843e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Claytonprivate: 853e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 863e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton friend class SBAddress; 873e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton friend class SBModule; 883e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton friend class SBTarget; 893e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 903508c387c3f0c9ecc439d98048fd7694d41bab1bGreg Clayton SBSection (const lldb::SectionSP §ion_sp); 913e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 923508c387c3f0c9ecc439d98048fd7694d41bab1bGreg Clayton lldb::SectionSP 933508c387c3f0c9ecc439d98048fd7694d41bab1bGreg Clayton GetSP() const; 943e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 953e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton void 963508c387c3f0c9ecc439d98048fd7694d41bab1bGreg Clayton SetSP(const lldb::SectionSP §ion_sp); 973e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 983508c387c3f0c9ecc439d98048fd7694d41bab1bGreg Clayton lldb::SectionWP m_opaque_wp; 993e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton}; 1003e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 1013e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 1023e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton} // namespace lldb 1033e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 1043e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton#endif // LLDB_SBSection_h_ 105