1139790Simp//===-- RegisterContextPOSIXProcessMonitor_mips64.h -------------*- C++ -*-===// 21543Srgrimes// 31543Srgrimes// The LLVM Compiler Infrastructure 41543Srgrimes// 51543Srgrimes// This file is distributed under the University of Illinois Open Source 61543Srgrimes// License. See LICENSE.TXT for details. 71543Srgrimes// 81543Srgrimes//===----------------------------------------------------------------------===// 91543Srgrimes 101543Srgrimes#ifndef liblldb_RegisterContextPOSIXProcessMonitor_mips64_H_ 111543Srgrimes#define liblldb_RegisterContextPOSIXProcessMonitor_mips64_H_ 121543Srgrimes 131543Srgrimes#include "Plugins/Process/POSIX/RegisterContextPOSIX_mips64.h" 141543Srgrimes 151543Srgrimesclass RegisterContextPOSIXProcessMonitor_mips64: 161543Srgrimes public RegisterContextPOSIX_mips64, 171543Srgrimes public POSIXBreakpointProtocol 181543Srgrimes{ 191543Srgrimespublic: 201543Srgrimes RegisterContextPOSIXProcessMonitor_mips64(lldb_private::Thread &thread, 211543Srgrimes uint32_t concrete_frame_idx, 221543Srgrimes RegisterInfoInterface *register_info); 231543Srgrimes 241543Srgrimesprotected: 251543Srgrimes bool 261543Srgrimes ReadGPR(); 271543Srgrimes 281543Srgrimes bool 291543Srgrimes ReadFPR(); 3050477Speter 311543Srgrimes bool 321543Srgrimes WriteGPR(); 3313107Sbde 3413107Sbde bool 352166Spaul WriteFPR(); 36143063Sjoerg 37143063Sjoerg // lldb_private::RegisterContext 38143063Sjoerg bool 39143063Sjoerg ReadRegister(const unsigned reg, lldb_private::RegisterValue &value); 4055205Speter 4137542Sbde bool 4213157Sbde WriteRegister(const unsigned reg, const lldb_private::RegisterValue &value); 4322639Sbde 4422639Sbde bool 4522639Sbde ReadRegister(const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value); 4622639Sbde 4722639Sbde bool 4822639Sbde WriteRegister(const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value); 4913157Sbde 5013157Sbde bool 5113157Sbde ReadAllRegisterValues(lldb::DataBufferSP &data_sp); 5213157Sbde 5313157Sbde bool 5413157Sbde WriteAllRegisterValues(const lldb::DataBufferSP &data_sp); 551543Srgrimes 5617879Sbde uint32_t 5717879Sbde SetHardwareWatchpoint(lldb::addr_t addr, size_t size, bool read, bool write); 5817879Sbde 5917879Sbde bool 60143063Sjoerg ClearHardwareWatchpoint(uint32_t hw_index); 61129498Sbde 62129498Sbde bool 63129498Sbde HardwareSingleStep(bool enable); 64163729Sbde 65129498Sbde // POSIXBreakpointProtocol 66129498Sbde bool 67129498Sbde UpdateAfterBreakpoint(); 68129498Sbde 69129498Sbde unsigned 70129498Sbde GetRegisterIndexFromOffset(unsigned offset); 71129498Sbde 72129498Sbde bool 73129498Sbde IsWatchpointHit(uint32_t hw_index); 74129498Sbde 75129498Sbde bool 7617879Sbde ClearWatchpointHits(); 77129498Sbde 78143063Sjoerg lldb::addr_t 79129498Sbde GetWatchpointAddress(uint32_t hw_index); 80214346Sjhb 8128921Sfsmp bool 8290024Sbde IsWatchpointVacant(uint32_t hw_index); 83214346Sjhb 8479734Sjhb bool 8578908Sjhb SetHardwareWatchpointWithIndex(lldb::addr_t addr, size_t size, bool read, bool write, uint32_t hw_index); 8678908Sjhb 87214346Sjhb uint32_t 8828921Sfsmp NumSupportedHardwareWatchpoints(); 89214346Sjhb 90214346Sjhbprivate: 9128921Sfsmp ProcessMonitor & 9217879Sbde GetMonitor(); 9317879Sbde}; 94134398Smarcel 95134398Smarcel#endif 96134398Smarcel