9#if defined(__s390x__) && defined(__linux__)
11#ifndef lldb_NativeRegisterContextLinux_s390x_h
12#define lldb_NativeRegisterContextLinux_s390x_h
17#include <asm/ptrace.h>
20namespace process_linux {
22class NativeProcessLinux;
24class NativeRegisterContextLinux_s390x :
public NativeRegisterContextLinux {
26 NativeRegisterContextLinux_s390x(
const ArchSpec &target_arch,
27 NativeThreadProtocol &native_thread);
29 uint32_t GetRegisterSetCount()
const override;
31 const RegisterSet *GetRegisterSet(uint32_t set_index)
const override;
33 uint32_t GetUserRegisterCount()
const override;
35 Status ReadRegister(
const RegisterInfo *reg_info,
36 RegisterValue ®_value)
override;
38 Status WriteRegister(
const RegisterInfo *reg_info,
39 const RegisterValue ®_value)
override;
45 Status IsWatchpointHit(uint32_t wp_index,
bool &is_hit)
override;
47 Status GetWatchpointHitIndex(uint32_t &wp_index,
50 Status IsWatchpointVacant(uint32_t wp_index,
bool &is_vacant)
override;
52 bool ClearHardwareWatchpoint(uint32_t wp_index)
override;
54 Status ClearAllHardwareWatchpoints()
override;
56 uint32_t SetHardwareWatchpoint(
lldb::addr_t addr,
size_t size,
57 uint32_t watch_flags)
override;
59 lldb::addr_t GetWatchpointAddress(uint32_t wp_index)
override;
61 uint32_t NumSupportedHardwareWatchpoints()
override;
64 Status DoReadRegisterValue(uint32_t offset,
const char *reg_name,
65 uint32_t size, RegisterValue &value)
override;
67 Status DoWriteRegisterValue(uint32_t offset,
const char *reg_name,
68 const RegisterValue &value)
override;
72 Status WriteGPR()
override;
76 Status WriteFPR()
override;
78 void *GetGPRBuffer()
override {
return &m_regs; }
79 size_t GetGPRSize()
const override {
return sizeof(m_regs); }
80 void *GetFPRBuffer()
override {
return &m_fp_regs; }
81 size_t GetFPRSize()
override {
return sizeof(m_fp_regs); }
86 uint32_t num_registers;
87 uint32_t num_gpr_registers;
88 uint32_t num_fpr_registers;
100 s390_fp_regs m_fp_regs;
103 bool IsRegisterSetAvailable(uint32_t set_index)
const;
105 bool IsGPR(uint32_t reg_index)
const;
107 bool IsFPR(uint32_t reg_index)
const;
109 Status PeekUserArea(uint32_t offset,
void *buf,
size_t buf_size);
111 Status PokeUserArea(uint32_t offset,
const void *buf,
size_t buf_size);
113 Status DoReadRegisterSet(uint32_t regset,
void *buf,
size_t buf_size);
115 Status DoWriteRegisterSet(uint32_t regset,
const void *buf,
size_t buf_size);
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::DataBuffer > DataBufferSP
std::shared_ptr< lldb_private::WritableDataBuffer > WritableDataBufferSP