brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 631ad30 Raw
66 lines · c
1//===-- RegisterContextDummy.h ----------------------------------------*- C++2//-*-===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTDUMMY_H11#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTDUMMY_H12 13#include <vector>14 15#include "lldb/Symbol/SymbolContext.h"16#include "lldb/Target/RegisterContext.h"17#include "lldb/lldb-private.h"18 19namespace lldb_private {20 21class RegisterContextDummy : public lldb_private::RegisterContext {22public:23  typedef std::shared_ptr<RegisterContextDummy> SharedPtr;24 25  RegisterContextDummy(Thread &thread, uint32_t concrete_frame_idx,26                       uint32_t address_byte_size);27 28  ~RegisterContextDummy() override;29 30  void InvalidateAllRegisters() override;31 32  size_t GetRegisterCount() override;33 34  const lldb_private::RegisterInfo *GetRegisterInfoAtIndex(size_t reg) override;35 36  size_t GetRegisterSetCount() override;37 38  const lldb_private::RegisterSet *GetRegisterSet(size_t reg_set) override;39 40  bool ReadRegister(const lldb_private::RegisterInfo *reg_info,41                    lldb_private::RegisterValue &value) override;42 43  bool WriteRegister(const lldb_private::RegisterInfo *reg_info,44                     const lldb_private::RegisterValue &value) override;45 46  bool ReadAllRegisterValues(lldb::WritableDataBufferSP &data_sp) override;47 48  bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;49 50  uint32_t ConvertRegisterKindToRegisterNumber(lldb::RegisterKind kind,51                                               uint32_t num) override;52 53private:54  // For RegisterContextLLDB only55 56  lldb_private::RegisterSet m_reg_set0; // register set 0 (PC only)57  lldb_private::RegisterInfo m_pc_reg_info;58 59  RegisterContextDummy(const RegisterContextDummy &) = delete;60  const RegisterContextDummy &operator=(const RegisterContextDummy &) = delete;61};62 63} // namespace lldb_private64 65#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTDUMMY_H66