1 //===-- RegisterContextFreeBSDKernel_i386.h ---------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_REGISTERCONTEXTFREEBSDKERNEL_I386_H 10 #define LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_REGISTERCONTEXTFREEBSDKERNEL_I386_H 11 12 #include "Plugins/Process/Utility/RegisterContextPOSIX_x86.h" 13 #include "Plugins/Process/elf-core/RegisterUtilities.h" 14 15 class RegisterContextFreeBSDKernel_i386 : public RegisterContextPOSIX_x86 { 16 public: 17 RegisterContextFreeBSDKernel_i386( 18 lldb_private::Thread &thread, 19 lldb_private::RegisterInfoInterface *register_info, 20 lldb::addr_t pcb_addr); 21 22 bool ReadRegister(const lldb_private::RegisterInfo *reg_info, 23 lldb_private::RegisterValue &value) override; 24 25 bool WriteRegister(const lldb_private::RegisterInfo *reg_info, 26 const lldb_private::RegisterValue &value) override; 27 28 protected: 29 bool ReadGPR() override; 30 31 bool ReadFPR() override; 32 33 bool WriteGPR() override; 34 35 bool WriteFPR() override; 36 37 private: 38 lldb::addr_t m_pcb_addr; 39 }; 40 41 #endif // LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_REGISTERCONTEXTFREEBSDKERNEL_I386_H 42