RegisterContextPOSIXProcessMonitor_powerpc.h revision 285101
1251881Speter//===-- RegisterContextPOSIXProcessMonitor_powerpc.h -------------*- C++ -*-===// 2251881Speter// 3251881Speter// The LLVM Compiler Infrastructure 4251881Speter// 5251881Speter// This file is distributed under the University of Illinois Open Source 6251881Speter// License. See LICENSE.TXT for details. 7251881Speter// 8251881Speter//===----------------------------------------------------------------------===// 9251881Speter 10251881Speter#ifndef liblldb_RegisterContextPOSIXProcessMonitor_powerpc_H_ 11251881Speter#define liblldb_RegisterContextPOSIXProcessMonitor_powerpc_H_ 12251881Speter 13251881Speter#include "Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h" 14251881Speter 15251881Speterclass RegisterContextPOSIXProcessMonitor_powerpc: 16251881Speter public RegisterContextPOSIX_powerpc, 17251881Speter public POSIXBreakpointProtocol 18251881Speter{ 19251881Speterpublic: 20251881Speter RegisterContextPOSIXProcessMonitor_powerpc(lldb_private::Thread &thread, 21251881Speter uint32_t concrete_frame_idx, 22251881Speter lldb_private::RegisterInfoInterface *register_info); 23251881Speter 24251881Speterprotected: 25251881Speter bool 26251881Speter IsVMX(); 27251881Speter 28251881Speter bool 29251881Speter ReadGPR(); 30251881Speter 31251881Speter bool 32251881Speter ReadFPR(); 33251881Speter 34251881Speter bool 35251881Speter ReadVMX(); 36251881Speter 37251881Speter bool 38251881Speter WriteGPR(); 39251881Speter 40289180Speter bool 41251881Speter WriteFPR(); 42251881Speter 43251881Speter bool 44251881Speter WriteVMX(); 45251881Speter 46251881Speter // lldb_private::RegisterContext 47251881Speter bool 48251881Speter ReadRegister(const unsigned reg, lldb_private::RegisterValue &value); 49251881Speter 50251881Speter bool 51251881Speter WriteRegister(const unsigned reg, const lldb_private::RegisterValue &value); 52251881Speter 53251881Speter bool 54251881Speter ReadRegister(const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value); 55 56 bool 57 WriteRegister(const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value); 58 59 bool 60 ReadAllRegisterValues(lldb::DataBufferSP &data_sp); 61 62 bool 63 WriteAllRegisterValues(const lldb::DataBufferSP &data_sp); 64 65 uint32_t 66 SetHardwareWatchpoint(lldb::addr_t addr, size_t size, bool read, bool write); 67 68 bool 69 ClearHardwareWatchpoint(uint32_t hw_index); 70 71 bool 72 HardwareSingleStep(bool enable); 73 74 // POSIXBreakpointProtocol 75 bool 76 UpdateAfterBreakpoint(); 77 78 unsigned 79 GetRegisterIndexFromOffset(unsigned offset); 80 81 bool 82 IsWatchpointHit(uint32_t hw_index); 83 84 bool 85 ClearWatchpointHits(); 86 87 lldb::addr_t 88 GetWatchpointAddress(uint32_t hw_index); 89 90 bool 91 IsWatchpointVacant(uint32_t hw_index); 92 93 bool 94 SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size, bool read, bool write, uint32_t hw_index); 95 96 uint32_t 97 NumSupportedHardwareWatchpoints(); 98 99private: 100 ProcessMonitor & 101 GetMonitor(); 102}; 103 104#endif 105