| //===-- MemoryRegionInfo.cpp ----------------------------------------------===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #include "lldb/Target/MemoryRegionInfo.h" | |
| using namespace lldb_private; | |
| llvm::raw_ostream &lldb_private::operator<<(llvm::raw_ostream &OS, | |
| const MemoryRegionInfo &Info) { | |
| return OS << llvm::formatv("MemoryRegionInfo([{0}, {1}), {2:r}{3:w}{4:x}, " | |
| "{5}, `{6}`, {7}, {8}, {9})", | |
| Info.GetRange().GetRangeBase(), | |
| Info.GetRange().GetRangeEnd(), Info.GetReadable(), | |
| Info.GetWritable(), Info.GetExecutable(), | |
| Info.GetMapped(), Info.GetName(), Info.GetFlash(), | |
| Info.GetBlocksize(), Info.GetMemoryTagged()); | |
| } | |
| void llvm::format_provider<MemoryRegionInfo::OptionalBool>::format( | |
| const MemoryRegionInfo::OptionalBool &B, raw_ostream &OS, | |
| StringRef Options) { | |
| assert(Options.size() <= 1); | |
| bool Empty = Options.empty(); | |
| switch (B) { | |
| case lldb_private::MemoryRegionInfo::eNo: | |
| OS << (Empty ? "no" : "-"); | |
| return; | |
| case lldb_private::MemoryRegionInfo::eYes: | |
| OS << (Empty ? "yes" : Options); | |
| return; | |
| case lldb_private::MemoryRegionInfo::eDontKnow: | |
| OS << (Empty ? "don't know" : "?"); | |
| return; | |
| } | |
| } |