Update copyright year range in all GDB files.
[deliverable/binutils-gdb.git] / gdb / nat / aarch64-sve-linux-ptrace.h
index 5a7186b7aa7687d74f65486225dc97a0a2a9017a..2a511bb026e4cd9bc95f1675ef9850eb53f8302b 100644 (file)
@@ -1,6 +1,6 @@
 /* Common target dependent for AArch64 systems.
 
-   Copyright (C) 2018 Free Software Foundation, Inc.
+   Copyright (C) 2018-2020 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef AARCH64_SVE_LINUX_PTRACE_H
-#define AARCH64_SVE_LINUX_PTRACE_H
+#ifndef NAT_AARCH64_SVE_LINUX_PTRACE_H
+#define NAT_AARCH64_SVE_LINUX_PTRACE_H
 
-#include <asm/sigcontext.h>
+#include <signal.h>
 #include <sys/utsname.h>
 #include <sys/ptrace.h>
 #include <asm/ptrace.h>
 /* Indicates whether a SVE ptrace header is followed by SVE registers or a
    fpsimd structure.  */
 
-#define HAS_SVE_STATE(header) ((header).flags && SVE_PT_REGS_SVE)
+#define HAS_SVE_STATE(header) ((header).flags & SVE_PT_REGS_SVE)
 
 /* Read VQ for the given tid using ptrace.  If SVE is not supported then zero
    is returned (on a system that supports SVE, then VQ cannot be zero).  */
 
 uint64_t aarch64_sve_get_vq (int tid);
 
+/* Set VQ in the kernel for the given tid, using either the value VQ or
+   reading from the register VG in the register buffer.  */
+
+bool aarch64_sve_set_vq (int tid, uint64_t vq);
+bool aarch64_sve_set_vq (int tid, struct reg_buffer_common *reg_buf);
+
 /* Read the current SVE register set using ptrace, allocating space as
    required.  */
 
 extern std::unique_ptr<gdb_byte[]> aarch64_sve_get_sveregs (int tid);
 
-/* Put the registers from linux structure buf into register buffer.  */
+/* Put the registers from linux structure buf into register buffer.  Assumes the
+   vector lengths in the register buffer match the size in the kernel.  */
 
 extern void aarch64_sve_regs_copy_to_reg_buf (struct reg_buffer_common *reg_buf,
                                              const void *buf);
 
-/* Put the registers from register buffer into linux structure buf.  */
+/* Put the registers from register buffer into linux structure buf.  Assumes the
+   vector lengths in the register buffer match the size in the kernel.  */
 
 extern void
 aarch64_sve_regs_copy_from_reg_buf (const struct reg_buffer_common *reg_buf,
                                    void *buf);
 
-#endif /* aarch64-sve-linux-ptrace.h */
+#endif /* NAT_AARCH64_SVE_LINUX_PTRACE_H */
This page took 0.025184 seconds and 4 git commands to generate.