180814287SRaphael Isemann //===-- DWARFDataExtractor.cpp --------------------------------------------===//
2eeae7218SEd Maste //
32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6eeae7218SEd Maste //
7eeae7218SEd Maste //===----------------------------------------------------------------------===//
8eeae7218SEd Maste 
9eeae7218SEd Maste #include "DWARFDataExtractor.h"
10f4af9a9dSJonas Devlieghere #include "llvm/ADT/StringRef.h"
11eeae7218SEd Maste 
12eeae7218SEd Maste namespace lldb_private {
13eeae7218SEd Maste 
14eeae7218SEd Maste uint64_t
GetDWARFInitialLength(lldb::offset_t * offset_ptr) const15b9c1b51eSKate Stone DWARFDataExtractor::GetDWARFInitialLength(lldb::offset_t *offset_ptr) const {
167e44a844SZachary Turner   return GetU32(offset_ptr);
17eeae7218SEd Maste }
18eeae7218SEd Maste 
19eeae7218SEd Maste dw_offset_t
GetDWARFOffset(lldb::offset_t * offset_ptr) const20b9c1b51eSKate Stone DWARFDataExtractor::GetDWARFOffset(lldb::offset_t *offset_ptr) const {
21f56c30d1SGreg Clayton   return GetMaxU64(offset_ptr, GetDWARFSizeOfOffset());
22eeae7218SEd Maste }
23f4af9a9dSJonas Devlieghere 
GetAsLLVM() const24f4af9a9dSJonas Devlieghere llvm::DWARFDataExtractor DWARFDataExtractor::GetAsLLVM() const {
25f4af9a9dSJonas Devlieghere   return llvm::DWARFDataExtractor(
26*512c03baSFangrui Song       llvm::makeArrayRef(GetDataStart(), GetByteSize()),
27f4af9a9dSJonas Devlieghere       GetByteOrder() == lldb::eByteOrderLittle, GetAddressByteSize());
28eeae7218SEd Maste }
29f4af9a9dSJonas Devlieghere } // namespace lldb_private
30