Skip to content

Commit 7ca9b58

Browse files
committed
Remove Linux sysroot dependencies of SVE PT macros
Summary: SVE elf note data requires SVE PT macros for reading writing data. Same macros are used by Linux ptrace SVE register access. This patch makes necessary changes to lldb/source/Plugins/Process/Linux/LinuxPTraceDefines_arm64sve.h in order to make them sysroot independent. Reviewers: labath, rengolin Reviewed By: labath Subscribers: tschuett, lldb-commits, kristof.beyls Differential Revision: https://reviews.llvm.org/D83541
1 parent 4923dca commit 7ca9b58

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

lldb/source/Plugins/Process/Linux/LinuxPTraceDefines_arm64sve.h renamed to lldb/source/Plugins/Process/Utility/LinuxPTraceDefines_arm64sve.h

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,22 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
#ifndef lldb_LinuxPTraceDefines_arm64sve_h
10-
#define lldb_LinuxPTraceDefines_arm64sve_h
9+
#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LINUXPTRACEDEFINES_ARM64SVE_H
10+
#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LINUXPTRACEDEFINES_ARM64SVE_H
11+
12+
#include <stdint.h>
13+
14+
struct _aarch64_context {
15+
uint16_t magic;
16+
uint16_t size;
17+
};
1118

1219
#define SVE_MAGIC 0x53564501
1320

1421
struct sve_context {
15-
struct _aarch64_ctx head;
16-
__u16 vl;
17-
__u16 __reserved[3];
22+
struct _aarch64_context head;
23+
uint16_t vl;
24+
uint16_t __reserved[3];
1825
};
1926

2027
/*
@@ -92,8 +99,8 @@ struct sve_context {
9299
* Additional data might be appended in the future.
93100
*/
94101

95-
#define SVE_SIG_ZREG_SIZE(vq) ((__u32)(vq)*SVE_VQ_BYTES)
96-
#define SVE_SIG_PREG_SIZE(vq) ((__u32)(vq) * (SVE_VQ_BYTES / 8))
102+
#define SVE_SIG_ZREG_SIZE(vq) ((uint32_t)(vq)*SVE_VQ_BYTES)
103+
#define SVE_SIG_PREG_SIZE(vq) ((uint32_t)(vq) * (SVE_VQ_BYTES / 8))
97104
#define SVE_SIG_FFR_SIZE(vq) SVE_SIG_PREG_SIZE(vq)
98105

99106
#define SVE_SIG_REGS_OFFSET \
@@ -123,12 +130,12 @@ struct sve_context {
123130
/* SVE/FP/SIMD state (NT_ARM_SVE) */
124131

125132
struct user_sve_header {
126-
__u32 size; /* total meaningful regset content in bytes */
127-
__u32 max_size; /* maxmium possible size for this thread */
128-
__u16 vl; /* current vector length */
129-
__u16 max_vl; /* maximum possible vector length */
130-
__u16 flags;
131-
__u16 __reserved;
133+
uint32_t size; /* total meaningful regset content in bytes */
134+
uint32_t max_size; /* maxmium possible size for this thread */
135+
uint16_t vl; /* current vector length */
136+
uint16_t max_vl; /* maximum possible vector length */
137+
uint16_t flags;
138+
uint16_t __reserved;
132139
};
133140

134141
/* Definitions for user_sve_header.flags: */
@@ -206,8 +213,8 @@ struct user_sve_header {
206213
#define SVE_PT_SVE_ZREG_SIZE(vq) SVE_SIG_ZREG_SIZE(vq)
207214
#define SVE_PT_SVE_PREG_SIZE(vq) SVE_SIG_PREG_SIZE(vq)
208215
#define SVE_PT_SVE_FFR_SIZE(vq) SVE_SIG_FFR_SIZE(vq)
209-
#define SVE_PT_SVE_FPSR_SIZE sizeof(__u32)
210-
#define SVE_PT_SVE_FPCR_SIZE sizeof(__u32)
216+
#define SVE_PT_SVE_FPSR_SIZE sizeof(uint32_t)
217+
#define SVE_PT_SVE_FPCR_SIZE sizeof(uint32_t)
211218

212219
#define __SVE_SIG_TO_PT(offset) \
213220
((offset)-SVE_SIG_REGS_OFFSET + SVE_PT_REGS_OFFSET)
@@ -250,4 +257,4 @@ struct user_sve_header {
250257
? SVE_PT_SVE_OFFSET + SVE_PT_SVE_SIZE(vq, flags) \
251258
: SVE_PT_FPSIMD_OFFSET + SVE_PT_FPSIMD_SIZE(vq, flags))
252259

253-
#endif
260+
#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_LINUXPTRACEDEFINES_ARM64SVE_H

0 commit comments

Comments
 (0)