1 //===-- RegisterContextKDP_arm.cpp ------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "RegisterContextKDP_arm.h" 11 12 // C Includes 13 // C++ Includes 14 // Other libraries and framework includes 15 // Project includes 16 #include "ProcessKDP.h" 17 #include "ThreadKDP.h" 18 19 using namespace lldb; 20 using namespace lldb_private; 21 22 23 RegisterContextKDP_arm::RegisterContextKDP_arm (ThreadKDP &thread, uint32_t concrete_frame_idx) : 24 RegisterContextDarwin_arm (thread, concrete_frame_idx), 25 m_kdp_thread (thread) 26 { 27 } 28 29 RegisterContextKDP_arm::~RegisterContextKDP_arm() 30 { 31 } 32 33 int 34 RegisterContextKDP_arm::DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr) 35 { 36 ProcessSP process_sp (CalculateProcess()); 37 if (process_sp) 38 { 39 Error error; 40 if (static_cast<ProcessKDP *>(process_sp.get())->GetCommunication().SendRequestReadRegisters (tid, GPRRegSet, &gpr, sizeof(gpr), error)) 41 { 42 if (error.Success()) 43 return 0; 44 } 45 } 46 return -1; 47 } 48 49 int 50 RegisterContextKDP_arm::DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu) 51 { 52 ProcessSP process_sp (CalculateProcess()); 53 if (process_sp) 54 { 55 Error error; 56 if (static_cast<ProcessKDP *>(process_sp.get())->GetCommunication().SendRequestReadRegisters (tid, FPURegSet, &fpu, sizeof(fpu), error)) 57 { 58 if (error.Success()) 59 return 0; 60 } 61 } 62 return -1; 63 } 64 65 int 66 RegisterContextKDP_arm::DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc) 67 { 68 ProcessSP process_sp (CalculateProcess()); 69 if (process_sp) 70 { 71 Error error; 72 if (static_cast<ProcessKDP *>(process_sp.get())->GetCommunication().SendRequestReadRegisters (tid, EXCRegSet, &exc, sizeof(exc), error)) 73 { 74 if (error.Success()) 75 return 0; 76 } 77 } 78 return -1; 79 } 80 81 int 82 RegisterContextKDP_arm::DoReadDBG (lldb::tid_t tid, int flavor, DBG &dbg) 83 { 84 ProcessSP process_sp (CalculateProcess()); 85 if (process_sp) 86 { 87 Error error; 88 if (static_cast<ProcessKDP *>(process_sp.get())->GetCommunication().SendRequestReadRegisters (tid, DBGRegSet, &dbg, sizeof(dbg), error)) 89 { 90 if (error.Success()) 91 return 0; 92 } 93 } 94 return -1; 95 } 96 97 int 98 RegisterContextKDP_arm::DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr) 99 { 100 return -1; 101 } 102 103 int 104 RegisterContextKDP_arm::DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu) 105 { 106 return -1; 107 } 108 109 int 110 RegisterContextKDP_arm::DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc) 111 { 112 return -1; 113 } 114 115 int 116 RegisterContextKDP_arm::DoWriteDBG (lldb::tid_t tid, int flavor, const DBG &dbg) 117 { 118 return -1; 119 } 120 121 122