1 //===-- RegisterContextKDP_i386.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 11 // C Includes 12 // C++ Includes 13 // Other libraries and framework includes 14 // Project includes 15 #include "RegisterContextKDP_i386.h" 16 #include "ProcessKDP.h" 17 #include "ThreadKDP.h" 18 19 using namespace lldb; 20 using namespace lldb_private; 21 22 23 RegisterContextKDP_i386::RegisterContextKDP_i386 (ThreadKDP &thread, uint32_t concrete_frame_idx) : 24 RegisterContextDarwin_i386 (thread, concrete_frame_idx), 25 m_kdp_thread (thread) 26 { 27 } 28 29 RegisterContextKDP_i386::~RegisterContextKDP_i386() 30 { 31 } 32 33 int 34 RegisterContextKDP_i386::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_i386::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_i386::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_i386::DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr) 83 { 84 return -1; 85 } 86 87 int 88 RegisterContextKDP_i386::DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu) 89 { 90 return -1; 91 } 92 93 int 94 RegisterContextKDP_i386::DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc) 95 { 96 return -1; 97 } 98 99 100