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;
41 Status ReadAllRegisterValues(lldb::WritableDataBufferSP &data_sp)
override;
43 Status WriteAllRegisterValues(
const lldb::DataBufferSP &data_sp)
override;
50 Status IsWatchpointVacant(
uint32_t wp_index,
bool &is_vacant)
override;
52 bool ClearHardwareWatchpoint(
uint32_t wp_index)
override;
54 Status ClearAllHardwareWatchpoints()
override;
61 uint32_t NumSupportedHardwareWatchpoints()
override;
65 uint32_t size, RegisterValue &value)
override;
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); }
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;
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.