Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lldb/source/Plugins/Process/AIX/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
add_lldb_library(lldbPluginProcessAIX
NativeProcessAIX.cpp
NativeThreadAIX.cpp
NativeRegisterContextAIX.cpp

LINK_COMPONENTS
Support
Expand Down
66 changes: 66 additions & 0 deletions lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
//===-- NativeRegisterContextAIX.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 "NativeRegisterContextAIX.h"
#include "Plugins/Process/AIX/NativeProcessAIX.h"

using namespace lldb_private;
using namespace lldb_private::process_aix;

lldb::ByteOrder NativeRegisterContextAIX::GetByteOrder() const {
return m_thread.GetProcess().GetByteOrder();
}

Status NativeRegisterContextAIX::ReadRegisterRaw(uint32_t reg_index,
RegisterValue &reg_value) {
return Status("unimplemented");
}

Status
NativeRegisterContextAIX::WriteRegisterRaw(uint32_t reg_index,
const RegisterValue &reg_value) {
return Status("unimplemented");
}

Status NativeRegisterContextAIX::ReadGPR() { return Status("unimplemented"); }

Status NativeRegisterContextAIX::WriteGPR() { return Status("unimplemented"); }

Status NativeRegisterContextAIX::ReadFPR() { return Status("unimplemented"); }

Status NativeRegisterContextAIX::WriteFPR() { return Status("unimplemented"); }

Status NativeRegisterContextAIX::ReadVMX() { return Status("unimplemented"); }

Status NativeRegisterContextAIX::WriteVMX() { return Status("unimplemented"); }

Status NativeRegisterContextAIX::ReadVSX() { return Status("unimplemented"); }

Status NativeRegisterContextAIX::WriteVSX() { return Status("unimplemented"); }

Status NativeRegisterContextAIX::ReadRegisterSet(void *buf, size_t buf_size,
unsigned int regset) {
return Status("unimplemented");
}

Status NativeRegisterContextAIX::WriteRegisterSet(void *buf, size_t buf_size,
unsigned int regset) {
return Status("unimplemented");
}

Status NativeRegisterContextAIX::DoReadRegisterValue(uint32_t offset,
const char *reg_name,
uint32_t size,
RegisterValue &value) {
return Status("unimplemented");
}

Status NativeRegisterContextAIX::DoWriteRegisterValue(
uint32_t offset, const char *reg_name, const RegisterValue &value) {
return Status("unimplemented");
}
74 changes: 74 additions & 0 deletions lldb/source/Plugins/Process/AIX/NativeRegisterContextAIX.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
//===-- NativeRegisterContextAIX.h ----------------------------*- C++ -*-===//
//
// 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
//
//===----------------------------------------------------------------------===//

#ifndef lldb_NativeRegisterContextAIX_h
#define lldb_NativeRegisterContextAIX_h

#include "Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h"

namespace lldb_private {
namespace process_aix {

class NativeThreadAIX;

class NativeRegisterContextAIX
: public virtual NativeRegisterContextRegisterInfo {
protected:
NativeRegisterContextAIX(NativeThreadProtocol &thread)
: NativeRegisterContextRegisterInfo(thread, nullptr) {}

lldb::ByteOrder GetByteOrder() const;

virtual Status ReadRegisterRaw(uint32_t reg_index, RegisterValue &reg_value);

virtual Status WriteRegisterRaw(uint32_t reg_index,
const RegisterValue &reg_value);

virtual Status ReadRegisterSet(void *buf, size_t buf_size,
unsigned int regset);

virtual Status WriteRegisterSet(void *buf, size_t buf_size,
unsigned int regset);

virtual Status ReadGPR();

virtual Status WriteGPR();

virtual Status ReadFPR();

virtual Status WriteFPR();

virtual Status ReadVMX();

virtual Status WriteVMX();

virtual Status ReadVSX();

virtual Status WriteVSX();

virtual void *GetGPRBuffer() = 0;

virtual size_t GetGPRSize() = 0;

virtual void *GetFPRBuffer() = 0;

virtual size_t GetFPRSize() = 0;

// The Do*** functions are executed on the privileged thread and can perform
// ptrace operations directly.
virtual Status DoReadRegisterValue(uint32_t offset, const char *reg_name,
uint32_t size, RegisterValue &value);

virtual Status DoWriteRegisterValue(uint32_t offset, const char *reg_name,
const RegisterValue &value);
};

} // namespace process_aix
} // namespace lldb_private

#endif // #ifndef lldb_NativeRegisterContextAIX_h
Loading