diff options
41 files changed, 169 insertions, 191 deletions
diff --git a/lldb/include/lldb/Core/Communication.h b/lldb/include/lldb/Core/Communication.h index 2266bb9082b..3b47412d061 100644 --- a/lldb/include/lldb/Core/Communication.h +++ b/lldb/include/lldb/Core/Communication.h @@ -19,9 +19,7 @@ #include "lldb/lldb-private.h" #include "lldb/Core/Broadcaster.h" #include "lldb/Core/Error.h" -#include "lldb/Host/Host.h" #include "lldb/Host/Mutex.h" -#include "lldb/Host/Predicate.h" #include "lldb/lldb-private.h" namespace lldb_private { diff --git a/lldb/include/lldb/Host/Endian.h b/lldb/include/lldb/Host/Endian.h index 5d1e848ef31..bc36f68f20a 100644 --- a/lldb/include/lldb/Host/Endian.h +++ b/lldb/include/lldb/Host/Endian.h @@ -10,10 +10,24 @@ #ifndef liblldb_host_endian_h_ #define liblldb_host_endian_h_ -// TODO: come up with a more lldb specific solution instead of relying on -// macosx <machine/endian.h>.... +#include <lldb-enumerations.h> -#include <machine/endian.h> +namespace lldb { + +namespace endian { + + static union EndianTest + { + uint32_t num; + uint8_t bytes[sizeof(uint32_t)]; + } const endianTest = { (uint16_t)0x01020304 }; + + inline ByteOrder InlHostByteOrder() { return (ByteOrder)endianTest.bytes[0]; } + +// ByteOrder const InlHostByteOrder = (ByteOrder)endianTest.bytes[0]; +} + +} #endif // liblldb_host_endian_h_ diff --git a/lldb/include/lldb/Symbol/ObjectContainer.h b/lldb/include/lldb/Symbol/ObjectContainer.h index f5c6d0780f8..be72501bb96 100644 --- a/lldb/include/lldb/Symbol/ObjectContainer.h +++ b/lldb/include/lldb/Symbol/ObjectContainer.h @@ -20,6 +20,7 @@ #include "lldb/Core/FileSpec.h" #include "lldb/Core/ModuleChild.h" #include "lldb/Core/PluginInterface.h" +#include "lldb/Host/Endian.h" namespace lldb_private { @@ -55,7 +56,7 @@ public: m_file (), // This file can be different than the module's file spec m_offset (offset), m_length (length), - m_data (headerDataSP, lldb::eByteOrderHost, 4) + m_data (headerDataSP, lldb::endian::InlHostByteOrder(), 4) { if (file) m_file = *file; diff --git a/lldb/include/lldb/Symbol/ObjectFile.h b/lldb/include/lldb/Symbol/ObjectFile.h index 8e51571acb7..d5048b96a07 100644 --- a/lldb/include/lldb/Symbol/ObjectFile.h +++ b/lldb/include/lldb/Symbol/ObjectFile.h @@ -15,6 +15,7 @@ #include "lldb/Core/FileSpec.h" #include "lldb/Core/ModuleChild.h" #include "lldb/Core/PluginInterface.h" +#include "lldb/Host/Endian.h" #include "lldb/Symbol/Symtab.h" #include "lldb/Symbol/UnwindTable.h" @@ -67,7 +68,7 @@ public: m_file (), // This file could be different from the original module's file m_offset (offset), m_length (length), - m_data (headerDataSP, lldb::eByteOrderHost, 4), + m_data (headerDataSP, lldb::endian::InlHostByteOrder(), 4), m_unwind_table (*this) { if (file_spec_ptr) diff --git a/lldb/include/lldb/lldb-enumerations.h b/lldb/include/lldb/lldb-enumerations.h index 1af325dfe25..a01ed7e0e25 100644 --- a/lldb/include/lldb/lldb-enumerations.h +++ b/lldb/include/lldb/lldb-enumerations.h @@ -10,12 +10,6 @@ #ifndef LLDB_enumerations_h_ #define LLDB_enumerations_h_ -#if !defined (__APPLE__) - -#include <endian.h> - -#endif - namespace lldb { //---------------------------------------------------------------------- @@ -86,41 +80,9 @@ typedef enum AddressType typedef enum ByteOrder { eByteOrderInvalid = 0, - eByteOrderLittle = 1234, - eByteOrderBig = 4321, - eByteOrderPDP = 3412, - -#if defined (__APPLE__) - -// On Mac OS X there are preprocessor defines automatically defined -// for the byte order that we can rely on. - -#if defined (__LITTLE_ENDIAN__) - eByteOrderHost = eByteOrderLittle -#elif defined (__BIG_ENDIAN__) - eByteOrderHost = eByteOrderBig -#elif defined (__PDP_ENDIAN__) - eByteOrderHost = eByteOrderPDP -#else -#error unable to detect endianness -#endif - -#else - -// On linux we rely upon the defines in <endian.h> - -#if __BYTE_ORDER == __LITTLE_ENDIAN - eByteOrderHost = eByteOrderLittle -#elif __BYTE_ORDER == __BIG_ENDIAN - eByteOrderHost = eByteOrderBig -#elif __BYTE_ORDER == __PDP_ENDIAN - eByteOrderHost = eByteOrderPDP -#else -#error unable to detect endianness -#endif - -#endif - + eByteOrderBig = 1, + eByteOrderPDP = 2, + eByteOrderLittle = 4, } ByteOrder; //---------------------------------------------------------------------- diff --git a/lldb/source/API/SBTarget.cpp b/lldb/source/API/SBTarget.cpp index 2bb70afcbdd..74bf423c1db 100644 --- a/lldb/source/API/SBTarget.cpp +++ b/lldb/source/API/SBTarget.cpp @@ -30,6 +30,7 @@ #include "lldb/Core/RegularExpression.h" #include "lldb/Core/SearchFilter.h" #include "lldb/Core/STLUtils.h" +#include "lldb/Host/Host.h" #include "lldb/Target/Process.h" #include "lldb/Target/Target.h" #include "lldb/Target/TargetList.h" diff --git a/lldb/source/Commands/CommandObjectFrame.cpp b/lldb/source/Commands/CommandObjectFrame.cpp index 0d955b37691..1616eccf145 100644 --- a/lldb/source/Commands/CommandObjectFrame.cpp +++ b/lldb/source/Commands/CommandObjectFrame.cpp @@ -20,6 +20,7 @@ #include "lldb/Core/Value.h" #include "lldb/Core/ValueObject.h" #include "lldb/Core/ValueObjectVariable.h" +#include "lldb/Host/Host.h" #include "lldb/Interpreter/Args.h" #include "lldb/Interpreter/CommandInterpreter.h" #include "lldb/Interpreter/CommandReturnObject.h" diff --git a/lldb/source/Commands/CommandObjectProcess.cpp b/lldb/source/Commands/CommandObjectProcess.cpp index 3d863b7b83d..7dd42237ea7 100644 --- a/lldb/source/Commands/CommandObjectProcess.cpp +++ b/lldb/source/Commands/CommandObjectProcess.cpp @@ -19,6 +19,7 @@ #include "lldb/Interpreter/CommandInterpreter.h" #include "lldb/Interpreter/CommandReturnObject.h" #include "./CommandObjectThread.h" +#include "lldb/Host/Host.h" #include "lldb/Target/Process.h" #include "lldb/Target/Target.h" #include "lldb/Target/Thread.h" diff --git a/lldb/source/Commands/CommandObjectThread.cpp b/lldb/source/Commands/CommandObjectThread.cpp index 5cde70efa1b..af11fa7bf6f 100644 --- a/lldb/source/Commands/CommandObjectThread.cpp +++ b/lldb/source/Commands/CommandObjectThread.cpp @@ -17,6 +17,8 @@ #include "lldb/Core/State.h" #include "lldb/Core/SourceManager.h" +#include "lldb/Host/Host.h" + #include "lldb/Interpreter/CommandInterpreter.h" #include "lldb/Interpreter/CommandReturnObject.h" diff --git a/lldb/source/Core/Address.cpp b/lldb/source/Core/Address.cpp index 967ccd0d3c2..d138f02b876 100644 --- a/lldb/source/Core/Address.cpp +++ b/lldb/source/Core/Address.cpp @@ -171,7 +171,7 @@ ReadCStringFromMemory (ExecutionContextScope *exe_scope, const Address &address, buf[k_buf_len] = '\0'; // NULL terminate // Byte order and address size don't matter for C string dumping.. - DataExtractor data (buf, sizeof(buf), eByteOrderHost, 4); + DataExtractor data (buf, sizeof(buf), lldb::endian::InlHostByteOrder(), 4); size_t total_len = 0; size_t bytes_read; Address curr_address(address); diff --git a/lldb/source/Core/Communication.cpp b/lldb/source/Core/Communication.cpp index 72560ef6f73..cf58aa5eff8 100644 --- a/lldb/source/Core/Communication.cpp +++ b/lldb/source/Core/Communication.cpp @@ -17,6 +17,7 @@ #include "lldb/Core/Log.h" #include "lldb/Core/Timer.h" #include "lldb/Core/Event.h" +#include "lldb/Host/Host.h" #include <string.h> using namespace lldb; diff --git a/lldb/source/Core/DataExtractor.cpp b/lldb/source/Core/DataExtractor.cpp index 2c805417432..66ffe6dc1fd 100644 --- a/lldb/source/Core/DataExtractor.cpp +++ b/lldb/source/Core/DataExtractor.cpp @@ -22,6 +22,7 @@ #include "lldb/Core/StreamString.h" #include "lldb/Core/UUID.h" #include "lldb/Core/dwarf.h" +#include "lldb/Host/Endian.h" using namespace lldb; using namespace lldb_private; @@ -67,7 +68,7 @@ ReadSwapInt64(const unsigned char* ptr, unsigned offset) DataExtractor::DataExtractor () : m_start (NULL), m_end (NULL), - m_byte_order(eByteOrderHost), + m_byte_order(lldb::endian::InlHostByteOrder()), m_addr_size (4), m_data_sp () { @@ -160,7 +161,7 @@ DataExtractor::Clear () { m_start = NULL; m_end = NULL; - m_byte_order = eByteOrderHost; + m_byte_order = lldb::endian::InlHostByteOrder(); m_addr_size = 4; m_data_sp.reset(); } @@ -460,7 +461,7 @@ DataExtractor::GetU16 (uint32_t *offset_ptr) const register uint32_t offset = *offset_ptr; if ( ValidOffsetForDataOfSize(offset, sizeof(val)) ) { - if (m_byte_order != eByteOrderHost) + if (m_byte_order != lldb::endian::InlHostByteOrder()) val = ReadSwapInt16(m_start, offset); else val = ReadInt16 (m_start, offset); @@ -474,7 +475,7 @@ DataExtractor::GetU16 (uint32_t *offset_ptr) const uint16_t DataExtractor::GetU16_unchecked (uint32_t *offset_ptr) const { - uint16_t val = (m_byte_order == eByteOrderHost) ? + uint16_t val = (m_byte_order == lldb::endian::InlHostByteOrder()) ? ReadInt16 (m_start, *offset_ptr) : ReadSwapInt16(m_start, *offset_ptr); *offset_ptr += sizeof(val); @@ -484,7 +485,7 @@ DataExtractor::GetU16_unchecked (uint32_t *offset_ptr) const uint32_t DataExtractor::GetU32_unchecked (uint32_t *offset_ptr) const { - uint32_t val = (m_byte_order == eByteOrderHost) ? + uint32_t val = (m_byte_order == lldb::endian::InlHostByteOrder()) ? ReadInt32 (m_start, *offset_ptr) : ReadSwapInt32 (m_start, *offset_ptr); *offset_ptr += sizeof(val); @@ -494,7 +495,7 @@ DataExtractor::GetU32_unchecked (uint32_t *offset_ptr) const uint64_t DataExtractor::GetU64_unchecked (uint32_t *offset_ptr) const { - uint64_t val = (m_byte_order == eByteOrderHost) ? + uint64_t val = (m_byte_order == lldb::endian::InlHostByteOrder()) ? ReadInt64 (m_start, *offset_ptr) : ReadSwapInt64 (m_start, *offset_ptr); *offset_ptr += sizeof(val); @@ -522,7 +523,7 @@ DataExtractor::GetU16 (uint32_t *offset_ptr, void *void_dst, uint32_t count) con { uint16_t *value_ptr; uint16_t *end = dst + count; - if (m_byte_order != eByteOrderHost) + if (m_byte_order != lldb::endian::InlHostByteOrder()) { for (value_ptr = dst; value_ptr < end; ++value_ptr, offset += value_size) *value_ptr = ReadSwapInt16 (m_start, offset); @@ -555,7 +556,7 @@ DataExtractor::GetU32 (uint32_t *offset_ptr) const if ( ValidOffsetForDataOfSize(offset, sizeof(val)) ) { - if (m_byte_order != eByteOrderHost) + if (m_byte_order != lldb::endian::InlHostByteOrder()) val = ReadSwapInt32 (m_start, offset); else val = ReadInt32 (m_start, offset); @@ -586,7 +587,7 @@ DataExtractor::GetU32 (uint32_t *offset_ptr, void *void_dst, uint32_t count) con { uint32_t *value_ptr; uint32_t *end = dst + count; - if (m_byte_order != eByteOrderHost) + if (m_byte_order != lldb::endian::InlHostByteOrder()) { for (value_ptr = dst; value_ptr < end; ++value_ptr, offset += value_size) *value_ptr = ReadSwapInt32 (m_start, offset); @@ -619,7 +620,7 @@ DataExtractor::GetU64 (uint32_t *offset_ptr) const register uint32_t offset = *offset_ptr; if ( ValidOffsetForDataOfSize(offset, sizeof(val)) ) { - if (m_byte_order != eByteOrderHost) + if (m_byte_order != lldb::endian::InlHostByteOrder()) val = ReadSwapInt64 (m_start, offset); else val = ReadInt64 (m_start, offset); @@ -648,7 +649,7 @@ DataExtractor::GetU64 (uint32_t *offset_ptr, void *void_dst, uint32_t count) con { uint64_t *value_ptr; uint64_t *end = dst + count; - if (m_byte_order != eByteOrderHost) + if (m_byte_order != lldb::endian::InlHostByteOrder()) { for (value_ptr = dst; value_ptr < end; ++value_ptr, offset += value_size) *value_ptr = ReadSwapInt64 (m_start, offset); @@ -776,7 +777,7 @@ DataExtractor::GetFloat (uint32_t *offset_ptr) const if (src_data) { - if (m_byte_order != eByteOrderHost) + if (m_byte_order != lldb::endian::InlHostByteOrder()) { uint8_t *dst_data = (uint8_t *)&val; for (int i=0; i<sizeof(float_type); ++i) @@ -802,7 +803,7 @@ DataExtractor::GetDouble (uint32_t *offset_ptr) const if (src_data) { - if (m_byte_order != eByteOrderHost) + if (m_byte_order != lldb::endian::InlHostByteOrder()) { uint8_t *dst_data = (uint8_t *)&val; for (int i=0; i<sizeof(float_type); ++i) @@ -829,7 +830,7 @@ DataExtractor::GetLongDouble (uint32_t *offset_ptr) const if (src_data) { - if (m_byte_order != eByteOrderHost) + if (m_byte_order != lldb::endian::InlHostByteOrder()) { uint8_t *dst_data = (uint8_t *)&val; for (int i=0; i<sizeof(float_type); ++i) diff --git a/lldb/source/Core/EmulateInstruction.cpp b/lldb/source/Core/EmulateInstruction.cpp index 5aeaae778fb..3718c12d320 100644 --- a/lldb/source/Core/EmulateInstruction.cpp +++ b/lldb/source/Core/EmulateInstruction.cpp @@ -11,6 +11,7 @@ #include "lldb/Core/DataExtractor.h" #include "lldb/Core/StreamString.h" +#include "lldb/Host/Endian.h" using namespace lldb; using namespace lldb_private; @@ -25,7 +26,7 @@ EmulateInstruction::EmulateInstruction ReadRegister read_reg_callback, WriteRegister write_reg_callback ) : - m_byte_order (lldb::eByteOrderHost), + m_byte_order (endian::InlHostByteOrder()), m_addr_byte_size (sizeof (void *)), m_baton (baton), m_read_mem_callback (read_mem_callback), diff --git a/lldb/source/Core/Event.cpp b/lldb/source/Core/Event.cpp index 8bf28f259f3..8b0ac16e2b6 100644 --- a/lldb/source/Core/Event.cpp +++ b/lldb/source/Core/Event.cpp @@ -17,6 +17,7 @@ #include "lldb/Core/Log.h" #include "lldb/Core/State.h" #include "lldb/Core/Stream.h" +#include "lldb/Host/Endian.h" #include "lldb/Target/Process.h" #include <algorithm> @@ -129,7 +130,7 @@ EventDataBytes::Dump (Stream *s) const else if (m_bytes.size() > 0) { DataExtractor data; - data.SetData(&m_bytes[0], m_bytes.size(), eByteOrderHost); + data.SetData(&m_bytes[0], m_bytes.size(), lldb::endian::InlHostByteOrder()); data.Dump(s, 0, eFormatBytes, 1, m_bytes.size(), 32, LLDB_INVALID_ADDRESS, 0, 0); } } diff --git a/lldb/source/Core/Scalar.cpp b/lldb/source/Core/Scalar.cpp index 57b70282a17..24e427c40d2 100644 --- a/lldb/source/Core/Scalar.cpp +++ b/lldb/source/Core/Scalar.cpp @@ -15,6 +15,7 @@ #include "lldb/Core/Error.h" #include "lldb/Core/Stream.h" #include "lldb/Core/DataExtractor.h" +#include "lldb/Host/Endian.h" using namespace lldb; using namespace lldb_private; @@ -134,25 +135,25 @@ Scalar::GetData (DataExtractor &data, size_t limit_byte_size) const { if (limit_byte_size < byte_size) { - if (eByteOrderHost == eByteOrderLittle) + if (lldb::endian::InlHostByteOrder() == eByteOrderLittle) { // On little endian systems if we want fewer bytes from the // current type we just specify fewer bytes since the LSByte // is first... - data.SetData((uint8_t*)&m_data, limit_byte_size, eByteOrderHost); + data.SetData((uint8_t*)&m_data, limit_byte_size, lldb::endian::InlHostByteOrder()); } - else if (eByteOrderHost == eByteOrderBig) + else if (lldb::endian::InlHostByteOrder() == eByteOrderBig) { // On big endian systems if we want fewer bytes from the // current type have to advance our initial byte pointer and // trim down the number of bytes since the MSByte is first - data.SetData(((uint8_t*)&m_data) + byte_size - limit_byte_size, limit_byte_size, eByteOrderHost); + data.SetData(((uint8_t*)&m_data) + byte_size - limit_byte_size, limit_byte_size, lldb::endian::InlHostByteOrder()); } } else { // We want all of the data - data.SetData((uint8_t*)&m_data, byte_size, eByteOrderHost); + data.SetData((uint8_t*)&m_data, byte_size, lldb::endian::InlHostByteOrder()); } return true; } diff --git a/lldb/source/Core/Stream.cpp b/lldb/source/Core/Stream.cpp index f971a4178df..c4a23a7a27b 100644 --- a/lldb/source/Core/Stream.cpp +++ b/lldb/source/Core/Stream.cpp @@ -8,6 +8,7 @@ //===----------------------------------------------------------------------===// #include "lldb/Core/Stream.h" +#include "lldb/Host/Endian.h" #include <stdio.h> #include <string.h> #include <stdlib.h> @@ -26,7 +27,7 @@ Stream::Stream (uint32_t flags, uint32_t addr_size, ByteOrder byte_order) : Stream::Stream () : m_flags (0), m_addr_size (4), - m_byte_order (eByteOrderHost), + m_byte_order (lldb::endian::InlHostByteOrder()), m_indent_level(0) { } @@ -628,7 +629,7 @@ Stream::PutMaxHex64 int Stream::PutPointer (void *ptr) { - return PutRawBytes (&ptr, sizeof(ptr), eByteOrderHost, eByteOrderHost); + return PutRawBytes (&ptr, sizeof(ptr), lldb::endian::InlHostByteOrder(), lldb::endian::InlHostByteOrder()); } int @@ -637,7 +638,7 @@ Stream::PutFloat(float f, ByteOrder byte_order) if (byte_order == eByteOrderInvalid) byte_order = m_byte_order; - return PutRawBytes (&f, sizeof(f), eByteOrderHost, byte_order); + return PutRawBytes (&f, sizeof(f), lldb::endian::InlHostByteOrder(), byte_order); } int @@ -646,7 +647,7 @@ Stream::PutDouble(double d, ByteOrder byte_order) if (byte_order == eByteOrderInvalid) byte_order = m_byte_order; - return PutRawBytes (&d, sizeof(d), eByteOrderHost, byte_order); + return PutRawBytes (&d, sizeof(d), lldb::endian::InlHostByteOrder(), byte_order); } int @@ -655,7 +656,7 @@ Stream::PutLongDouble(long double ld, ByteOrder byte_order) if (byte_order == eByteOrderInvalid) byte_order = m_byte_order; - return PutRawBytes (&ld, sizeof(ld), eByteOrderHost, byte_order); + return PutRawBytes (&ld, sizeof(ld), lldb::endian::InlHostByteOrder(), byte_order); } int @@ -739,21 +740,21 @@ Stream::UnitTest(Stream *s) s->PutHex8(0x12); s->PutChar(' '); - s->PutHex16(0x3456, eByteOrderHost); + s->PutHex16(0x3456, lldb::endian::InlHostByteOrder()); s->PutChar(' '); s->PutHex16(0x3456, eByteOrderBig); s->PutChar(' '); s->PutHex16(0x3456, eByteOrderLittle); s->PutChar(' '); - s->PutHex32(0x789abcde, eByteOrderHost); + s->PutHex32(0x789abcde, lldb::endian::InlHostByteOrder()); s->PutChar(' '); s->PutHex32(0x789abcde, eByteOrderBig); s->PutChar(' '); s->PutHex32(0x789abcde, eByteOrderLittle); s->PutChar(' '); - s->PutHex64(0x1122334455667788ull, eByteOrderHost); + s->PutHex64(0x1122334455667788ull, lldb::endian::InlHostByteOrder()); s->PutChar(' '); s->PutHex64(0x1122334455667788ull, eByteOrderBig); s->PutChar(' '); diff --git a/lldb/source/Core/Value.cpp b/lldb/source/Core/Value.cpp index 41483c7c7cc..7a9733dc2c4 100644 --- a/lldb/source/Core/Value.cpp +++ b/lldb/source/Core/Value.cpp @@ -522,7 +522,7 @@ Value::GetValueAsData (ExecutionContext *exe_ctx, clang::ASTContext *ast_context break; case eValueTypeScalar: - data.SetByteOrder (eByteOrderHost); + data.SetByteOrder (lldb::endian::InlHostByteOrder()); data.SetAddressByteSize(sizeof(void *)); if (m_value.GetData (data)) return error; // Success; @@ -603,7 +603,7 @@ Value::GetValueAsData (ExecutionContext *exe_ctx, clang::ASTContext *ast_context case eValueTypeHostAddress: address = m_value.ULongLong(LLDB_INVALID_ADDRESS); - data.SetByteOrder(eByteOrderHost); + data.SetByteOrder(lldb::endian::InlHostByteOrder()); data.SetAddressByteSize(sizeof(void *)); address_type = eAddressTypeHost; break; diff --git a/lldb/source/Core/ValueObject.cpp b/lldb/source/Core/ValueObject.cpp index 89fc8b31786..95669255bd5 100644 --- a/lldb/source/Core/ValueObject.cpp +++ b/lldb/source/Core/ValueObject.cpp @@ -24,6 +24,8 @@ #include "lldb/Core/ValueObjectConstResult.h" #include "lldb/Core/ValueObjectList.h" +#include "lldb/Host/Endian.h" + #include "lldb/Symbol/ClangASTType.h" #include "lldb/Symbol/ClangASTContext.h" #include "lldb/Symbol/Type.h" @@ -460,7 +462,7 @@ ValueObject::GetSummaryAsCString (ExecutionContextScope *exe_scope) if (cstr_len > 0) { data_buffer.resize(cstr_len); - data.SetData (&data_buffer.front(), data_buffer.size(), eByteOrderHost); + data.SetData (&data_buffer.front(), data_buffer.size(), lldb::endian::InlHostByteOrder()); bytes_read = process->ReadMemory (cstr_address, &data_buffer.front(), cstr_len, error); if (bytes_read > 0) { @@ -486,7 +488,7 @@ ValueObject::GetSummaryAsCString (ExecutionContextScope *exe_scope) sstr << '"'; - data.SetData (&data_buffer.front(), data_buffer.size(), eByteOrderHost); + data.SetData (&data_buffer.front(), data_buffer.size(), endian::InlHostByteOrder()); while ((bytes_read = process->ReadMemory (cstr_address, &data_buffer.front(), k_max_buf_size, error)) > 0) { size_t len = strlen(&data_buffer.front()); @@ -796,7 +798,7 @@ ValueObject::SetValueFromCString (ExecutionContextScope *exe_scope, const char * { // We are decoding a float into host byte order below, so make // sure m_data knows what it contains. - m_data.SetByteOrder(eByteOrderHost); + m_data.SetByteOrder(lldb::endian::InlHostByteOrder()); const size_t converted_byte_size = ClangASTContext::ConvertStringToFloatValue ( GetClangAST(), GetClangType(), diff --git a/lldb/source/Expression/ClangExpressionDeclMap.cpp b/lldb/source/Expression/ClangExpressionDeclMap.cpp index 9484d714d57..f863969d1e4 100644 --- a/lldb/source/Expression/ClangExpressionDeclMap.cpp +++ b/lldb/source/Expression/ClangExpressionDeclMap.cpp @@ -23,6 +23,7 @@ #include "lldb/Core/ValueObjectConstResult.h" #include "lldb/Expression/ClangASTSource.h" #include "lldb/Expression/ClangPersistentVariables.h" +#include "lldb/Host/Endian.h" #include "lldb/Symbol/ClangASTContext.h" #include "lldb/Symbol/ClangNamespaceDecl.h" #include "lldb/Symbol/CompileUnit.h" @@ -861,13 +862,13 @@ static bool WriteAddressInto case 4: { uint32_t address32 = address & 0xffffffffll; - str.PutRawBytes(&address32, sizeof(address32), eByteOrderHost, eByteOrderInvalid); + str.PutRawBytes(&address32, sizeof(address32), endian::InlHostByteOrder(), eByteOrderInvalid); } break; case 8: { uint64_t address64 = address; - str.PutRawBytes(&address64, sizeof(address64), eByteOrderHost, eByteOrderInvalid); + str.PutRawBytes(&address64, sizeof(address64), endian::InlHostByteOrder(), eByteOrderInvalid); } break; } diff --git a/lldb/source/Expression/ClangUserExpression.cpp b/lldb/source/Expression/ClangUserExpression.cpp index 73c7441b322..f64448a4bd2 100644 --- a/lldb/source/Expression/ClangUserExpression.cpp +++ b/lldb/source/Expression/ClangUserExpression.cpp @@ -275,7 +275,7 @@ ClangUserExpression::Parse (Stream &error_stream, // m_dwarf_opcodes.reset(new StreamString); - m_dwarf_opcodes->SetByteOrder (lldb::eByteOrderHost); + m_dwarf_opcodes->SetByteOrder (lldb::endian::InlHostByteOrder()); m_dwarf_opcodes->GetFlags ().Set (Stream::eBinary); m_local_variables.reset(new ClangExpressionVariableList()); diff --git a/lldb/source/Expression/DWARFExpression.cpp b/lldb/source/Expression/DWARFExpression.cpp index 1679c8d9df5..557095c5b1e 100644 --- a/lldb/source/Expression/DWARFExpression.cpp +++ b/lldb/source/Expression/DWARFExpression.cpp @@ -21,7 +21,7 @@ #include "lldb/Expression/ClangExpressionDeclMap.h" #include "lldb/Expression/ClangExpressionVariable.h" -#include "lldb/Host/Host.h" +#include "lldb/Host/Endian.h" #include "lldb/lldb-private-log.h" @@ -2272,7 +2272,7 @@ DWARFExpression::Evaluate tmp = stack.back(); stack.pop_back(); Value::ContextType context_type = stack.back().GetContextType(); - StreamString new_value(Stream::eBinary, 4, eByteOrderHost); + StreamString new_value(Stream::eBinary, 4, lldb::endian::InlHostByteOrder()); switch (context_type) { case Value::eContextTypeClangType: @@ -2316,7 +2316,7 @@ DWARFExpression::Evaluate } break; case Value::eValueTypeHostAddress: - if (exe_ctx->process->GetByteOrder() != Host::GetByteOrder()) + if (exe_ctx->process->GetByteOrder() != lldb::endian::InlHostByteOrder()) { if (error_ptr) error_ptr->SetErrorStringWithFormat ("Copy of composite types between incompatible byte orders is unimplemented"); @@ -2341,7 +2341,7 @@ DWARFExpression::Evaluate switch (target_value_type) { case Value::eValueTypeLoadAddress: - if (exe_ctx->process->GetByteOrder() != Host::GetByteOrder()) + if (exe_ctx->process->GetByteOrder() != lldb::endian::InlHostByteOrder()) { if (error_ptr) error_ptr->SetErrorStringWithFormat ("Copy of composite types between incompatible byte orders is unimplemented"); diff --git a/lldb/source/Host/common/Host.cpp b/lldb/source/Host/common/Host.cpp index ce82694ca2b..9bd80812658 100644 --- a/lldb/source/Host/common/Host.cpp +++ b/lldb/source/Host/common/Host.cpp @@ -14,6 +14,7 @@ #include "lldb/Core/FileSpec.h" #include "lldb/Core/Log.h" #include "lldb/Core/StreamString.h" +#include "lldb/Host/Endian.h" #include "lldb/Host/Mutex.h" #include <dlfcn.h> @@ -214,26 +215,6 @@ Host::GetPageSize() return ::getpagesize(); } -//------------------------------------------------------------------ -// Returns true if the host system is Big Endian. -//------------------------------------------------------------------ -ByteOrder -Host::GetByteOrder () -{ - union EndianTest - { - uint32_t num; - uint8_t bytes[sizeof(uint32_t)]; - } endian = { (uint16_t)0x11223344 }; - switch (endian.bytes[0]) - { - case 0x11: return eByteOrderLittle; - case 0x44: return eByteOrderBig; - case 0x33: return eByteOrderPDP; - } - return eByteOrderInvalid; -} - const ArchSpec & Host::GetArchitecture () { diff --git a/lldb/source/Host/macosx/Symbols.cpp b/lldb/source/Host/macosx/Symbols.cpp index cc39319d662..d4a3c01bd11 100644 --- a/lldb/source/Host/macosx/Symbols.cpp +++ b/lldb/source/Host/macosx/Symbols.cpp @@ -24,6 +24,7 @@ #include "lldb/Core/DataExtractor.h" #include "lldb/Core/Timer.h" #include "lldb/Core/UUID.h" +#include "lldb/Host/Endian.h" #include "Host/macosx/cfcpp/CFCReleaser.h" #include "mach/machine.h" @@ -53,8 +54,8 @@ SkinnyMachOFileContainsArchAndUUID { assert(magic == HeaderMagic32 || magic == HeaderMagic32Swapped || magic == HeaderMagic64 || magic == HeaderMagic64Swapped); if (magic == HeaderMagic32 || magic == HeaderMagic64) - data.SetByteOrder (eByteOrderHost); - else if (eByteOrderHost == eByteOrderBig) + data.SetByteOrder (lldb::endian::InlHostByteOrder()); + else if (lldb::endian::InlHostByteOrder() == eByteOrderBig) data.SetByteOrder (eByteOrderLittle); else data.SetByteOrder (eByteOrderBig); diff --git a/lldb/source/Interpreter/CommandInterpreter.cpp b/lldb/source/Interpreter/CommandInterpreter.cpp index 447372f787a..a106b367b5f 100644 --- a/lldb/source/Interpreter/CommandInterpreter.cpp +++ b/lldb/source/Interpreter/CommandInterpreter.cpp @@ -43,6 +43,7 @@ #include "lldb/Core/InputReader.h" #include "lldb/Core/Stream.h" #include "lldb/Core/Timer.h" +#include "lldb/Host/Host.h" #include "lldb/Target/Process.h" #include "lldb/Target/Thread.h" #include "lldb/Target/TargetList.h" diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp index 27fda80b5cd..68aa0e00bd8 100644 --- a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp +++ b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp @@ -785,7 +785,7 @@ DynamicLoaderMacOSXDYLD::ReadMachHeader (lldb::addr_t addr, mach_header *header, ::memset (header, 0, sizeof(header)); // Get the magic byte unswapped so we can figure out what we are dealing with - DataExtractor data(header_bytes.GetBytes(), header_bytes.GetByteSize(), eByteOrderHost, 4); + DataExtractor data(header_bytes.GetBytes(), header_bytes.GetByteSize(), lldb::endian::InlHostByteOrder(), 4); header->magic = data.GetU32(&offset); lldb::addr_t load_cmd_addr = addr; data.SetByteOrder(DynamicLoaderMacOSXDYLD::GetByteOrderFromMagic(header->magic)); diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h index 955fb79a71f..81263cf27cd 100644 --- a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h +++ b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h @@ -154,11 +154,11 @@ protected: { case llvm::MachO::HeaderMagic32: case llvm::MachO::HeaderMagic64: - return lldb::eByteOrderHost; + return lldb::endian::InlHostByteOrder(); case llvm::MachO::HeaderMagic32Swapped: case llvm::MachO::HeaderMagic64Swapped: - if (lldb::eByteOrderHost == lldb::eByteOrderBig) + if (lldb::endian::InlHostByteOrder() == lldb::eByteOrderBig) return lldb::eByteOrderLittle; else return lldb::eByteOrderBig; @@ -274,11 +274,11 @@ protected: { case llvm::MachO::HeaderMagic32: // MH_MAGIC case llvm::MachO::HeaderMagic64: // MH_MAGIC_64 - return lldb::eByteOrderHost; + return lldb::endian::InlHostByteOrder(); case llvm::MachO::HeaderMagic32Swapped: // MH_CIGAM case llvm::MachO::HeaderMagic64Swapped: // MH_CIGAM_64 - if (lldb::eByteOrderHost == lldb::eByteOrderLittle) + if (lldb::endian::InlHostByteOrder() == lldb::eByteOrderLittle) return lldb::eByteOrderBig; else return lldb::eByteOrderLittle; @@ -286,7 +286,7 @@ protected: assert (!"invalid header.magic value"); break; } - return lldb::eByteOrderHost; + return lldb::endian::InlHostByteOrder(); } const Segment * diff --git a/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp b/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp index 218bf0b0b16..fb73083afc4 100644 --- a/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp +++ b/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp @@ -288,7 +288,7 @@ ObjectContainerBSDArchive::CreateInstance bool ObjectContainerBSDArchive::MagicBytesMatch (DataBufferSP& dataSP) { - DataExtractor data(dataSP, eByteOrderHost, 4); + DataExtractor data(dataSP, lldb::endian::InlHostByteOrder(), 4); uint32_t offset = 0; const char* armag = (const char* )data.PeekData (offset, sizeof(ar_hdr)); if (armag && ::strncmp(armag, ARMAG, SARMAG) == 0) diff --git a/lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp b/lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp index e94e90b3145..9312cce977d 100644 --- a/lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp +++ b/lldb/source/Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.cpp @@ -73,7 +73,7 @@ ObjectContainerUniversalMachO::CreateInstance bool ObjectContainerUniversalMachO::MagicBytesMatch (DataBufferSP& dataSP) { - DataExtractor data(dataSP, eByteOrderHost, 4); + DataExtractor data(dataSP, lldb::endian::InlHostByteOrder(), 4); uint32_t offset = 0; uint32_t magic = data.GetU32(&offset); return magic == UniversalMagic || magic == UniversalMagicSwapped; diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp index 1d8ff3be1e1..444f95bea2a 100644 --- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp +++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp @@ -93,7 +93,7 @@ MachHeaderSizeFromMagic(uint32_t magic) bool ObjectFileMachO::MagicBytesMatch (DataBufferSP& dataSP) { - DataExtractor data(dataSP, eByteOrderHost, 4); + DataExtractor data(dataSP, lldb::endian::InlHostByteOrder(), 4); uint32_t offset = 0; uint32_t magic = data.GetU32(&offset); return MachHeaderSizeFromMagic(magic) != 0; @@ -123,31 +123,31 @@ ObjectFileMachO::ParseHeader () lldb_private::Mutex::Locker locker(m_mutex); bool can_parse = false; uint32_t offset = 0; - m_data.SetByteOrder (eByteOrderHost); + m_data.SetByteOrder (lldb::endian::InlHostByteOrder()); // Leave magic in the original byte order m_header.magic = m_data.GetU32(&offset); switch (m_header.magic) { case HeaderMagic32: - m_data.SetByteOrder (eByteOrderHost); + m_data.SetByteOrder (lldb::endian::InlHostByteOrder()); m_data.SetAddressByteSize(4); can_parse = true; break; case HeaderMagic64: - m_data.SetByteOrder (eByteOrderHost); + m_data.SetByteOrder (lldb::endian::InlHostByteOrder()); m_data.SetAddressByteSize(8); can_parse = true; break; case HeaderMagic32Swapped: - m_data.SetByteOrder(eByteOrderHost == eByteOrderBig ? eByteOrderLittle : eByteOrderBig); + m_data.SetByteOrder(lldb::endian::InlHostByteOrder() == eByteOrderBig ? eByteOrderLittle : eByteOrderBig); m_data.SetAddressByteSize(4); can_parse = true; break; case HeaderMagic64Swapped: - m_data.SetByteOrder(eByteOrderHost == eByteOrderBig ? eByteOrderLittle : eByteOrderBig); + m_data.SetByteOrder(lldb::endian::InlHostByteOrder() == eByteOrderBig ? eByteOrderLittle : eByteOrderBig); m_data.SetAddressByteSize(8); can_parse = true; break; @@ -652,7 +652,7 @@ ObjectFileMachO::ParseSymtab (bool minimize) assert (symtab_data_sp->GetByteSize()/nlist_size >= symtab_load_command.nsyms); - if (endian != eByteOrderHost) + if (endian != lldb::endian::InlHostByteOrder()) { // ... assert (!"UNIMPLEMENTED: Swap all nlist entries"); diff --git a/lldb/source/Plugins/Process/MacOSX-User/source/MacOSX/MachTask.cpp b/lldb/source/Plugins/Process/MacOSX-User/source/MacOSX/MachTask.cpp index a4f21eb5be4..feb3300d572 100644 --- a/lldb/source/Plugins/Process/MacOSX-User/source/MacOSX/MachTask.cpp +++ b/lldb/source/Plugins/Process/MacOSX-User/source/MacOSX/MachTask.cpp @@ -21,6 +21,7 @@ #endif +#include "lldb/Host/Endian.h" #include "lldb/Host/Host.h" #include "lldb/Core/DataExtractor.h" @@ -165,7 +166,7 @@ MachTask::ReadMemory (lldb::addr_t addr, void *buf, size_t size, Error& error) log->Printf ("MachTask::ReadMemory ( addr = 0x%16.16llx, size = %zu, buf = %8.8p) => %u bytes read", (uint64_t)addr, size, buf, n); if (log->GetMask().Test(PD_LOG_MEMORY_DATA_LONG) || (log->GetMask().Test(PD_LOG_MEMORY_DATA_SHORT) && size <= 8)) { - DataExtractor data((uint8_t*)buf, n, eByteOrderHost, 4); + DataExtractor data((uint8_t*)buf, n, lldb::endian::InlHostByteOrder(), 4); data.PutToLog(log.get(), 0, n, addr, 16, DataExtractor::TypeUInt8); } } @@ -191,7 +192,7 @@ MachTask::WriteMemory (lldb::addr_t addr, const void *buf, size_t size, Error& e log->Printf ("MachTask::WriteMemory ( addr = 0x%16.16llx, size = %zu, buf = %8.8p) => %u bytes written", (uint64_t)addr, size, buf, n); if (log->GetMask().Test(PD_LOG_MEMORY_DATA_LONG) || (log->GetMask().Test(PD_LOG_MEMORY_DATA_SHORT) && size <= 8)) { - DataExtractor data((uint8_t*)buf, n, eByteOrderHost, 4); + DataExtractor data((uint8_t*)buf, n, lldb::endian::InlHostByteOrder(), 4); data.PutToLog(log.get(), 0, n, addr, 16, DataExtractor::TypeUInt8); } } diff --git a/lldb/source/Plugins/Process/MacOSX-User/source/ProcessMacOSX.cpp b/lldb/source/Plugins/Process/MacOSX-User/source/ProcessMacOSX.cpp index 9aebc8fdec6..cfcd7f9fe2d 100644 --- a/lldb/source/Plugins/Process/MacOSX-User/source/ProcessMacOSX.cpp +++ b/lldb/source/Plugins/Process/MacOSX-User/source/ProcessMacOSX.cpp @@ -32,6 +32,7 @@ #include "lldb/Core/PluginManager.h" #include "lldb/Core/State.h" #include "lldb/Core/Timer.h" +#include "lldb/Host/Host.h" #include "lldb/Host/TimeValue.h" #include "lldb/Symbol/ObjectFile.h" #include "lldb/Target/DynamicLoader.h" @@ -48,7 +49,6 @@ #endif // #if defined (__arm__) // Project includes -#include "lldb/Host/Host.h" #include "ProcessMacOSX.h" #include "ProcessMacOSXLog.h" #include "ThreadMacOSX.h" diff --git a/lldb/source/Plugins/Process/MacOSX-User/source/RegisterContextMach_arm.cpp b/lldb/source/Plugins/Process/MacOSX-User/source/RegisterContextMach_arm.cpp index 55e5534a5d8..cac805ef560 100644 --- a/lldb/source/Plugins/Process/MacOSX-User/source/RegisterContextMach_arm.cpp +++ b/lldb/source/Plugins/Process/MacOSX-User/source/RegisterContextMach_arm.cpp @@ -18,6 +18,7 @@ #include "lldb/Core/DataBufferHeap.h" #include "lldb/Core/DataExtractor.h" #include "lldb/Core/Scalar.h" +#include "lldb/Host/Endian.h" // Project includes #include "ARM_GCC_Registers.h" @@ -837,7 +838,7 @@ RegisterContextMach_arm::ReadRegisterBytes (uint32_t reg, DataExtractor &data) case gpr_lr: case gpr_pc: case gpr_cpsr: - data.SetData(&gpr.r[reg - gpr_r0], reg_info->byte_size, eByteOrderHost); + data.SetData(&gpr.r[reg - gpr_r0], reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_s0: @@ -872,23 +873,23 @@ RegisterContextMach_arm::ReadRegisterBytes (uint32_t reg, DataExtractor &data) case fpu_s29: case fpu_s30: case fpu_s31: - data.SetData(&fpu.floats.s[reg - fpu_s0], reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.floats.s[reg - fpu_s0], reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_fpscr: - data.SetData(&fpu.fpscr, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.fpscr, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case exc_exception: - data.SetData(&exc.exception, reg_info->byte_size, eByteOrderHost); + data.SetData(&exc.exception, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case exc_fsr: - data.SetData(&exc.fsr, reg_info->byte_size, eByteOrderHost); + data.SetData(&exc.fsr, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case exc_far: - data.SetData(&exc.far, reg_info->byte_size, eByteOrderHost); + data.SetData(&exc.far, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; default: diff --git a/lldb/source/Plugins/Process/MacOSX-User/source/RegisterContextMach_i386.cpp b/lldb/source/Plugins/Process/MacOSX-User/source/RegisterContextMach_i386.cpp index 077a492bbf4..6bf4dec3691 100644 --- a/lldb/source/Plugins/Process/MacOSX-User/source/RegisterContextMach_i386.cpp +++ b/lldb/source/Plugins/Process/MacOSX-User/source/RegisterContextMach_i386.cpp @@ -16,6 +16,7 @@ #include "lldb/Core/DataBufferHeap.h" #include "lldb/Core/DataExtractor.h" #include "lldb/Core/Scalar.h" +#include "lldb/Host/Endian.h" // Project includes #include "RegisterContextMach_i386.h" @@ -817,47 +818,47 @@ RegisterContextMach_i386::ReadRegisterBytes (uint32_t reg, DataExtractor &data) case gpr_es: case gpr_fs: case gpr_gs: - data.SetData(&gpr.eax + reg - gpr_eax, reg_info->byte_size, eByteOrderHost); + data.SetData(&gpr.eax + reg - gpr_eax, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_fcw: - data.SetData(&fpu.fcw, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.fcw, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_fsw: - data.SetData(&fpu.fsw, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.fsw, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_ftw: - data.SetData(&fpu.ftw, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.ftw, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_fop: - data.SetData(&fpu.fop, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.fop, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_ip: - data.SetData(&fpu.ip, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.ip, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_cs: - data.SetData(&fpu.cs, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.cs, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_dp: - data.SetData(&fpu.dp, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.dp, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_ds: - data.SetData(&fpu.ds, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.ds, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_mxcsr: - data.SetData(&fpu.mxcsr, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.mxcsr, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_mxcsrmask: - data.SetData(&fpu.mxcsrmask, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.mxcsrmask, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_stmm0: @@ -868,7 +869,7 @@ RegisterContextMach_i386::ReadRegisterBytes (uint32_t reg, DataExtractor &data) case fpu_stmm5: case fpu_stmm6: case fpu_stmm7: - data.SetData(fpu.stmm[reg - fpu_stmm0].bytes, reg_info->byte_size, eByteOrderHost); + data.SetData(fpu.stmm[reg - fpu_stmm0].bytes, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_xmm0: @@ -879,19 +880,19 @@ RegisterContextMach_i386::ReadRegisterBytes (uint32_t reg, DataExtractor &data) case fpu_xmm5: case fpu_xmm6: case fpu_xmm7: - data.SetData(fpu.xmm[reg - fpu_xmm0].bytes, reg_info->byte_size, eByteOrderHost); + data.SetData(fpu.xmm[reg - fpu_xmm0].bytes, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case exc_trapno: - data.SetData(&exc.trapno, reg_info->byte_size, eByteOrderHost); + data.SetData(&exc.trapno, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case exc_err: - data.SetData(&exc.err, reg_info->byte_size, eByteOrderHost); + data.SetData(&exc.err, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case exc_faultvaddr: - data.SetData(&exc.faultvaddr, reg_info->byte_size, eByteOrderHost); + data.SetData(&exc.faultvaddr, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; default: diff --git a/lldb/source/Plugins/Process/MacOSX-User/source/RegisterContextMach_x86_64.cpp b/lldb/source/Plugins/Process/MacOSX-User/source/RegisterContextMach_x86_64.cpp index 8b1ed79d3c7..9995b0d2da0 100644 --- a/lldb/source/Plugins/Process/MacOSX-User/source/RegisterContextMach_x86_64.cpp +++ b/lldb/source/Plugins/Process/MacOSX-User/source/RegisterContextMach_x86_64.cpp @@ -16,6 +16,7 @@ #include "lldb/Core/DataBufferHeap.h" #include "lldb/Core/DataExtractor.h" #include "lldb/Core/Scalar.h" +#include "lldb/Host/Endian.h" // Project includes #include "RegisterContextMach_x86_64.h" @@ -895,47 +896,47 @@ RegisterContextMach_x86_64::ReadRegisterBytes (uint32_t reg, DataExtractor &data case gpr_cs: case gpr_fs: case gpr_gs: - data.SetData(&gpr.rax + reg - gpr_rax, reg_info->byte_size, eByteOrderHost); + data.SetData(&gpr.rax + reg - gpr_rax, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_fcw: - data.SetData(&fpu.fcw, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.fcw, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_fsw: - data.SetData(&fpu.fsw, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.fsw, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_ftw: - data.SetData(&fpu.ftw, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.ftw, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_fop: - data.SetData(&fpu.fop, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.fop, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_ip: - data.SetData(&fpu.ip, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.ip, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_cs: - data.SetData(&fpu.cs, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.cs, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_dp: - data.SetData(&fpu.dp, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.dp, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_ds: - data.SetData(&fpu.ds, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.ds, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_mxcsr: - data.SetData(&fpu.mxcsr, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.mxcsr, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_mxcsrmask: - data.SetData(&fpu.mxcsrmask, reg_info->byte_size, eByteOrderHost); + data.SetData(&fpu.mxcsrmask, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_stmm0: @@ -946,7 +947,7 @@ RegisterContextMach_x86_64::ReadRegisterBytes (uint32_t reg, DataExtractor &data case fpu_stmm5: case fpu_stmm6: case fpu_stmm7: - data.SetData(fpu.stmm[reg - fpu_stmm0].bytes, reg_info->byte_size, eByteOrderHost); + data.SetData(fpu.stmm[reg - fpu_stmm0].bytes, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case fpu_xmm0: @@ -965,19 +966,19 @@ RegisterContextMach_x86_64::ReadRegisterBytes (uint32_t reg, DataExtractor &data case fpu_xmm13: case fpu_xmm14: case fpu_xmm15: - data.SetData(fpu.xmm[reg - fpu_xmm0].bytes, reg_info->byte_size, eByteOrderHost); + data.SetData(fpu.xmm[reg - fpu_xmm0].bytes, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case exc_trapno: - data.SetData(&exc.trapno, reg_info->byte_size, eByteOrderHost); + data.SetData(&exc.trapno, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case exc_err: - data.SetData(&exc.err, reg_info->byte_size, eByteOrderHost); + data.SetData(&exc.err, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; case exc_faultvaddr: - data.SetData(&exc.faultvaddr, reg_info->byte_size, eByteOrderHost); + data.SetData(&exc.faultvaddr, reg_info->byte_size, lldb::endian::InlHostByteOrder()); break; default: diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp index c23c0b91aa5..c508b86a163 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp @@ -707,35 +707,35 @@ RegisterContextLLDB::ReadRegisterBytesFromRegisterLocation (uint32_t regnum, Reg if (regloc.type == eRegisterValueInferred) { - data.SetByteOrder (eByteOrderHost); + data.SetByteOrder (lldb::endian::InlHostByteOrder()); switch (reg_info->byte_size) { case 1: { uint8_t val = regloc.location.register_value; memcpy (data_sp->GetBytes(), &val, sizeof (val)); - data.SetByteOrder (eByteOrderHost); + data.SetByteOrder (lldb::endian::InlHostByteOrder()); return true; } case 2: { uint16_t val = regloc.location.register_value; memcpy (data_sp->GetBytes(), &val, sizeof (val)); - data.SetByteOrder (eByteOrderHost); + data.SetByteOrder (lldb::endian::InlHostByteOrder()); return true; } case 4: { uint32_t val = regloc.location.register_value; memcpy (data_sp->GetBytes(), &val, sizeof (val)); - data.SetByteOrder (eByteOrderHost); + data.SetByteOrder (lldb::endian::InlHostByteOrder()); return true; } case 8: { uint64_t val = regloc.location.register_value; memcpy (data_sp->GetBytes(), &val, sizeof (val)); - data.SetByteOrder (eByteOrderHost); + data.SetByteOrder (lldb::endian::InlHostByteOrder()); return true; } } diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp index 54382ff1240..e9b0117cb84 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp @@ -18,6 +18,7 @@ #include "lldb/Core/Log.h" #include "lldb/Core/State.h" #include "lldb/Core/StreamString.h" +#include "lldb/Host/Host.h" #include "lldb/Host/TimeValue.h" // Project includes @@ -48,7 +49,7 @@ GDBRemoteCommunication::GDBRemoteCommunication() : m_arch(), m_os(), m_vendor(), - m_byte_order(eByteOrderHost), + m_byte_order(lldb::endian::InlHostByteOrder()), m_pointer_byte_size(0) { m_rx_packet_listener.StartListeningForEvents(this, @@ -773,7 +774,7 @@ GDBRemoteCommunication::SendArgumentsPacket (char const *argv[], uint32_t timeou if (i > 0) packet.PutChar(','); packet.Printf("%i,%i,", arg_len * 2, i); - packet.PutBytesAsRawHex8(arg, arg_len, eByteOrderHost, eByteOrderHost); + packet.PutBytesAsRawHex8(arg, arg_len, lldb::endian::InlHostByteOrder(), lldb::endian::InlHostByteOrder()); } StringExtractorGDBRemote response; @@ -815,7 +816,7 @@ GDBRemoteCommunication::GetHostInfo (uint32_t timeout_seconds) m_arch.Clear(); m_os.Clear(); m_vendor.Clear(); - m_byte_order = eByteOrderHost; + m_byte_order = lldb::endian::InlHostByteOrder(); m_pointer_byte_size = 0; StringExtractorGDBRemote response; diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp index 2c00b9a8431..0e29f2f368f 100644 --- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp @@ -341,8 +341,8 @@ GDBRemoteRegisterContext::WriteRegisterBytes (uint32_t reg, DataExtractor &data, packet.PutBytesAsRawHex8 (m_reg_data.GetDataStart(), m_reg_data.GetByteSize(), - eByteOrderHost, - eByteOrderHost); + lldb::endian::InlHostByteOrder(), + lldb::endian::InlHostByteOrder()); if (thread_suffix_supported) packet.Printf (";thread:%4.4x;", m_thread.GetID()); @@ -369,8 +369,8 @@ GDBRemoteRegisterContext::WriteRegisterBytes (uint32_t reg, DataExtractor &data, packet.Printf ("P%x=", reg); packet.PutBytesAsRawHex8 (m_reg_data.PeekData(reg_info->byte_offset, reg_info->byte_size), reg_info->byte_size, - eByteOrderHost, - eByteOrderHost); + lldb::endian::InlHostByteOrder(), + lldb::endian::InlHostByteOrder()); if (thread_suffix_supported) packet.Printf (";thread:%4.4x;", m_thread.GetID()); diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp index d50c57a3fd2..2fd77223740 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp @@ -758,7 +758,7 @@ ProcessGDBRemote::DoAttachToProcessWithName (const char *process_name, bool wait else packet.PutCString("vAttachName"); packet.PutChar(';'); - packet.PutBytesAsRawHex8(process_name, strlen(process_name), eByteOrderHost, eByteOrderHost); + packet.PutBytesAsRawHex8(process_name, strlen(process_name), lldb::endian::InlHostByteOrder(), lldb::endian::InlHostByteOrder()); m_async_broadcaster.BroadcastEvent (eBroadcastBitAsyncContinue, new EventDataBytes (packet.GetData(), packet.GetSize())); @@ -1324,7 +1324,7 @@ ProcessGDBRemote::DoWriteMemory (addr_t addr, const void *buf, size_t size, Erro { StreamString packet; packet.Printf("M%llx,%zx:", addr, size); - packet.PutBytesAsRawHex8(buf, size, eByteOrderHost, eByteOrderHost); + packet.PutBytesAsRawHex8(buf, size, lldb::endian::InlHostByteOrder(), lldb::endian::InlHostByteOrder()); StringExtractorGDBRemote response; if (m_gdb_comm.SendPacketAndWaitForResponse(packet.GetData(), packet.GetSize(), response, 2, true)) { diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp index e443ba66292..658280c83e4 100644 --- a/lldb/source/Target/Process.cpp +++ b/lldb/source/Target/Process.cpp @@ -230,7 +230,7 @@ Process::Process(Target &target, Listener &listener) : m_dynamic_checkers_ap (), m_unix_signals (), m_target_triple (), - m_byte_order (eByteOrderHost), + m_byte_order (lldb::endian::InlHostByteOrder()), m_addr_byte_size (0), m_abi_sp (), m_process_input_reader (), diff --git a/lldb/source/Target/RegisterContext.cpp b/lldb/source/Target/RegisterContext.cpp index 814e5369d23..8e8986b9925 100644 --- a/lldb/source/Target/RegisterContext.cpp +++ b/lldb/source/Target/RegisterContext.cpp @@ -14,6 +14,7 @@ #include "lldb/Target/RegisterContext.h" #include "lldb/Core/DataExtractor.h" #include "lldb/Core/Scalar.h" +#include "lldb/Host/Endian.h" #include "lldb/Target/ExecutionContext.h" #include "lldb/Target/StackFrame.h" #include "lldb/Target/Process.h" @@ -315,7 +316,7 @@ RegisterContext::ReadRegisterValue (uint32_t reg, Scalar &value) case 1: { int8_t v; - if (data.ExtractBytes (0, sizeof (int8_t), eByteOrderHost, &v) != sizeof (int8_t)) + if (data.ExtractBytes (0, sizeof (int8_t), lldb::endian::InlHostByteOrder(), &v) != sizeof (int8_t)) return false; value = v; return true; @@ -323,7 +324,7 @@ RegisterContext::ReadRegisterValue (uint32_t reg, Scalar &value) case 2: { int16_t v; - if (data.ExtractBytes (0, sizeof (int16_t), eByteOrderHost, &v) != sizeof (int16_t)) + if (data.ExtractBytes (0, sizeof (int16_t), lldb::endian::InlHostByteOrder(), &v) != sizeof (int16_t)) return false; value = v; return true; @@ -331,7 +332,7 @@ RegisterContext::ReadRegisterValue (uint32_t reg, Scalar &value) case 4: { int32_t v; - if (data.ExtractBytes (0, sizeof (int32_t), eByteOrderHost, &v) != sizeof (int32_t)) + if (data.ExtractBytes (0, sizeof (int32_t), lldb::endian::InlHostByteOrder(), &v) != sizeof (int32_t)) return false; value = v; return true; @@ -339,7 +340,7 @@ RegisterContext::ReadRegisterValue (uint32_t reg, Scalar &value) case 8: { int64_t v; - if (data.ExtractBytes (0, sizeof (int64_t), eByteOrderHost, &v) != sizeof (int64_t)) + if (data.ExtractBytes (0, sizeof (int64_t), lldb::endian::InlHostByteOrder(), &v) != sizeof (int64_t)) return false; value = v; return true; @@ -352,7 +353,7 @@ RegisterContext::ReadRegisterValue (uint32_t reg, Scalar &value) case sizeof (float): { float v; - if (data.ExtractBytes (0, sizeof (float), eByteOrderHost, &v) != sizeof (float)) + if (data.ExtractBytes (0, sizeof (float), lldb::endian::InlHostByteOrder(), &v) != sizeof (float)) return false; value = v; return true; @@ -360,7 +361,7 @@ RegisterContext::ReadRegisterValue (uint32_t reg, Scalar &value) case sizeof (double): { double v; - if (data.ExtractBytes (0, sizeof (double), eByteOrderHost, &v) != sizeof (double)) + if (data.ExtractBytes (0, sizeof (double), lldb::endian::InlHostByteOrder(), &v) != sizeof (double)) return false; value = v; return true; @@ -368,7 +369,7 @@ RegisterContext::ReadRegisterValue (uint32_t reg, Scalar &value) case sizeof (long double): { double v; - if (data.ExtractBytes (0, sizeof (long double), eByteOrderHost, &v) != sizeof (long double)) + if (data.ExtractBytes (0, sizeof (long double), lldb::endian::InlHostByteOrder(), &v) != sizeof (long double)) return false; value = v; return true; diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp index 31293171ea3..de108acf708 100644 --- a/lldb/source/Target/Thread.cpp +++ b/lldb/source/Target/Thread.cpp @@ -14,7 +14,6 @@ #include "lldb/Core/Stream.h" #include "lldb/Core/StreamString.h" #include "lldb/Core/RegularExpression.h" -#include "lldb/Host/Host.h" #include "lldb/Target/DynamicLoader.h" #include "lldb/Target/ExecutionContext.h" #include "lldb/Target/ObjCLanguageRuntime.h" |