1 //===-- RegisterContextWindows_x86.h ----------------------------*- 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 #ifndef liblldb_RegisterContextWindows_x86_H_ 11 #define liblldb_RegisterContextWindows_x86_H_ 12 13 #include "RegisterContextWindows.h" 14 #include "lldb/lldb-forward.h" 15 16 namespace lldb_private { 17 18 class Thread; 19 20 class RegisterContextWindows_x86 : public RegisterContextWindows { 21 public: 22 //------------------------------------------------------------------ 23 // Constructors and Destructors 24 //------------------------------------------------------------------ 25 RegisterContextWindows_x86(Thread &thread, uint32_t concrete_frame_idx); 26 27 virtual ~RegisterContextWindows_x86(); 28 29 //------------------------------------------------------------------ 30 // Subclasses must override these functions 31 //------------------------------------------------------------------ 32 size_t GetRegisterCount() override; 33 34 const RegisterInfo *GetRegisterInfoAtIndex(size_t reg) override; 35 36 size_t GetRegisterSetCount() override; 37 38 const RegisterSet *GetRegisterSet(size_t reg_set) override; 39 40 bool ReadRegister(const RegisterInfo *reg_info, 41 RegisterValue ®_value) override; 42 43 bool WriteRegister(const RegisterInfo *reg_info, 44 const RegisterValue ®_value) override; 45 46 private: 47 bool ReadRegisterHelper(DWORD flags_required, const char *reg_name, 48 DWORD value, RegisterValue ®_value) const; 49 }; 50 } 51 52 #endif // #ifndef liblldb_RegisterContextWindows_x86_H_ 53