Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:42:42

0001 //===-- SBMemoryRegionInfoList.h --------------------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLDB_API_SBMEMORYREGIONINFOLIST_H
0010 #define LLDB_API_SBMEMORYREGIONINFOLIST_H
0011 
0012 #include "lldb/API/SBDefines.h"
0013 
0014 class MemoryRegionInfoListImpl;
0015 
0016 namespace lldb {
0017 
0018 class LLDB_API SBMemoryRegionInfoList {
0019 public:
0020   SBMemoryRegionInfoList();
0021 
0022   SBMemoryRegionInfoList(const lldb::SBMemoryRegionInfoList &rhs);
0023 
0024   const SBMemoryRegionInfoList &operator=(const SBMemoryRegionInfoList &rhs);
0025 
0026   ~SBMemoryRegionInfoList();
0027 
0028   uint32_t GetSize() const;
0029 
0030   bool GetMemoryRegionContainingAddress(lldb::addr_t addr,
0031                                         SBMemoryRegionInfo &region_info);
0032 
0033   bool GetMemoryRegionAtIndex(uint32_t idx, SBMemoryRegionInfo &region_info);
0034 
0035   void Append(lldb::SBMemoryRegionInfo &region);
0036 
0037   void Append(lldb::SBMemoryRegionInfoList &region_list);
0038 
0039   void Clear();
0040 
0041 protected:
0042   const MemoryRegionInfoListImpl *operator->() const;
0043 
0044   const MemoryRegionInfoListImpl &operator*() const;
0045 
0046 private:
0047   friend class SBProcess;
0048 
0049   lldb_private::MemoryRegionInfos &ref();
0050 
0051   const lldb_private::MemoryRegionInfos &ref() const;
0052 
0053   std::unique_ptr<MemoryRegionInfoListImpl> m_opaque_up;
0054 };
0055 
0056 } // namespace lldb
0057 
0058 #endif // LLDB_API_SBMEMORYREGIONINFOLIST_H