LLDB mainline
NativeRegisterContextAIX.h
Go to the documentation of this file.
1//===---- NativeRegisterContextAIX.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_AIX_NATIVEREGISTERCONTEXTAIX_H
10#define LLDB_SOURCE_PLUGINS_PROCESS_AIX_NATIVEREGISTERCONTEXTAIX_H
11
13
15
16class NativeThreadAIX;
17
19 : public virtual NativeRegisterContextRegisterInfo {
20public:
21 // This function is implemented in the NativeRegisterContextAIX_ppc64
22 // subclasses to create a new instance (for both 32-bit or 64-bit) of the host
23 // specific NativeRegisterContextAIX.
24 // The appropriate implementation is selected at runtime based on the
25 // target process architecture, so only the relevant code path is used.
26 static std::unique_ptr<NativeRegisterContextAIX>
28 NativeThreadAIX &native_thread);
29
30protected:
33
35
36 virtual Status ReadRegisterRaw(uint32_t reg_index, RegisterValue &reg_value);
37
38 virtual Status WriteRegisterRaw(uint32_t reg_index,
39 const RegisterValue &reg_value);
40
41 virtual Status ReadRegisterSet(void *buf, size_t buf_size,
42 unsigned int regset);
43
44 virtual Status WriteRegisterSet(void *buf, size_t buf_size,
45 unsigned int regset);
46
47 virtual Status ReadGPR();
48
49 virtual Status WriteGPR();
50
51 virtual Status ReadFPR();
52
53 virtual Status WriteFPR();
54
55 virtual Status ReadVMX();
56
57 virtual Status WriteVMX();
58
59 virtual Status ReadVSX();
60
61 virtual Status WriteVSX();
62
63 virtual void *GetGPRBuffer() = 0;
64
65 virtual size_t GetGPRSize() const {
67 }
68
69 virtual void *GetFPRBuffer() = 0;
70
71 virtual size_t GetFPRSize() = 0;
72};
73
74} // namespace lldb_private::process_aix
75
76#endif // #ifndef LLDB_SOURCE_PLUGINS_PROCESS_AIX_NATIVEREGISTERCONTEXTAIX_H
An architecture specification class.
Definition ArchSpec.h:32
NativeRegisterContextRegisterInfo(NativeThreadProtocol &thread, RegisterInfoInterface *register_info_interface)
Construct a NativeRegisterContextRegisterInfo, taking ownership of the register_info_interface pointe...
virtual size_t GetGPRSize() const =0
An error handling class.
Definition Status.h:118
virtual Status ReadRegisterRaw(uint32_t reg_index, RegisterValue &reg_value)
virtual Status WriteRegisterSet(void *buf, size_t buf_size, unsigned int regset)
virtual Status WriteRegisterRaw(uint32_t reg_index, const RegisterValue &reg_value)
static std::unique_ptr< NativeRegisterContextAIX > CreateHostNativeRegisterContextAIX(const ArchSpec &target_arch, NativeThreadAIX &native_thread)
virtual Status ReadRegisterSet(void *buf, size_t buf_size, unsigned int regset)
ByteOrder
Byte ordering definitions.