1 //===-- RegisterContextPOSIXProcessMonitor_powerpc.h -------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_RegisterContextPOSIXProcessMonitor_powerpc_H_
11 #define liblldb_RegisterContextPOSIXProcessMonitor_powerpc_H_
13 #include "RegisterContextPOSIX.h"
14 #include "Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h"
16 class RegisterContextPOSIXProcessMonitor_powerpc:
17 public RegisterContextPOSIX_powerpc,
18 public POSIXBreakpointProtocol
21 RegisterContextPOSIXProcessMonitor_powerpc(lldb_private::Thread &thread,
22 uint32_t concrete_frame_idx,
23 lldb_private::RegisterInfoInterface *register_info);
47 // lldb_private::RegisterContext
49 ReadRegister(const unsigned reg, lldb_private::RegisterValue &value);
52 WriteRegister(const unsigned reg, const lldb_private::RegisterValue &value);
55 ReadRegister(const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value);
58 WriteRegister(const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value);
61 ReadAllRegisterValues(lldb::DataBufferSP &data_sp);
64 WriteAllRegisterValues(const lldb::DataBufferSP &data_sp);
67 SetHardwareWatchpoint(lldb::addr_t addr, size_t size, bool read, bool write);
70 ClearHardwareWatchpoint(uint32_t hw_index);
73 HardwareSingleStep(bool enable);
75 // POSIXBreakpointProtocol
77 UpdateAfterBreakpoint();
80 GetRegisterIndexFromOffset(unsigned offset);
83 IsWatchpointHit(uint32_t hw_index);
86 ClearWatchpointHits();
89 GetWatchpointAddress(uint32_t hw_index);
92 IsWatchpointVacant(uint32_t hw_index);
95 SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size, bool read, bool write, uint32_t hw_index);
98 NumSupportedHardwareWatchpoints();