70 lines · cpp
1//===-- VMRange.cpp -------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "lldb/Utility/VMRange.h"10 11#include "lldb/Utility/Stream.h"12#include "lldb/lldb-types.h"13 14#include <algorithm>15#include <iterator>16#include <vector>17 18#include <cstddef>19#include <cstdint>20 21using namespace lldb;22using namespace lldb_private;23 24bool VMRange::ContainsValue(const VMRange::collection &coll,25 lldb::addr_t value) {26 return llvm::any_of(coll,27 [&](const VMRange &r) { return r.Contains(value); });28}29 30bool VMRange::ContainsRange(const VMRange::collection &coll,31 const VMRange &range) {32 return llvm::any_of(coll,33 [&](const VMRange &r) { return r.Contains(range); });34}35 36void VMRange::Dump(llvm::raw_ostream &s, lldb::addr_t offset,37 uint32_t addr_width) const {38 DumpAddressRange(s, offset + GetBaseAddress(), offset + GetEndAddress(),39 addr_width);40}41 42bool lldb_private::operator==(const VMRange &lhs, const VMRange &rhs) {43 return lhs.GetBaseAddress() == rhs.GetBaseAddress() &&44 lhs.GetEndAddress() == rhs.GetEndAddress();45}46 47bool lldb_private::operator!=(const VMRange &lhs, const VMRange &rhs) {48 return !(lhs == rhs);49}50 51bool lldb_private::operator<(const VMRange &lhs, const VMRange &rhs) {52 if (lhs.GetBaseAddress() < rhs.GetBaseAddress())53 return true;54 else if (lhs.GetBaseAddress() > rhs.GetBaseAddress())55 return false;56 return lhs.GetEndAddress() < rhs.GetEndAddress();57}58 59bool lldb_private::operator<=(const VMRange &lhs, const VMRange &rhs) {60 return !(lhs > rhs);61}62 63bool lldb_private::operator>(const VMRange &lhs, const VMRange &rhs) {64 return rhs < lhs;65}66 67bool lldb_private::operator>=(const VMRange &lhs, const VMRange &rhs) {68 return !(lhs < rhs);69}70