summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Sionneau <ysionneau@kalray.eu>2023-09-14 16:55:22 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2023-09-14 17:25:01 +0200
commitb49013485476dd508ae82e6143e1e73795e4c348 (patch)
treef00fffb0fa0b23b9d86e3b3405ad1c18a50f2895
parent1a912c255f0def201615985bfd30827a234cdc67 (diff)
kvx: align specification of user regs
Align the specification of the ptrace interface with how it is specified on RISC-V. Signed-off-by: Yann Sionneau <ysionneau@kalray.eu>
-rw-r--r--libc/sysdeps/linux/kvx/sys/procfs.h13
-rw-r--r--libc/sysdeps/linux/kvx/sys/ucontext.h5
-rw-r--r--libc/sysdeps/linux/kvx/sys/user.h28
3 files changed, 7 insertions, 39 deletions
diff --git a/libc/sysdeps/linux/kvx/sys/procfs.h b/libc/sysdeps/linux/kvx/sys/procfs.h
index bbbfb838e..b72322888 100644
--- a/libc/sysdeps/linux/kvx/sys/procfs.h
+++ b/libc/sysdeps/linux/kvx/sys/procfs.h
@@ -31,20 +31,15 @@
#include <sys/time.h>
#include <sys/types.h>
#include <sys/user.h>
+#include <sys/ucontext.h>
-__BEGIN_DECLS
+#define ELF_NGREG NGREG
-/* Type for a general-purpose register. */
typedef unsigned long elf_greg_t;
-/* No FP registers for kvx. */
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
typedef struct {} elf_fpregset_t;
-/* And the whole bunch of them. We could have used `struct
- pt_regs' directly in the typedef, but tradition says that
- the register set is an array, which does have some peculiar
- semantics, so leave it that way. */
-#define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
-typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+__BEGIN_DECLS
/* Signal info. */
struct elf_siginfo
diff --git a/libc/sysdeps/linux/kvx/sys/ucontext.h b/libc/sysdeps/linux/kvx/sys/ucontext.h
index 548892389..a97b83cad 100644
--- a/libc/sysdeps/linux/kvx/sys/ucontext.h
+++ b/libc/sysdeps/linux/kvx/sys/ucontext.h
@@ -12,12 +12,11 @@
#include <signal.h>
#include <bits/sigcontext.h>
+#define NGREG 70
+
/* Type for general register. */
typedef unsigned long greg_t;
-/* Number of general registers. */
-#define NGREG 64
-
typedef struct ucontext {
unsigned long uc_flags;
struct ucontext *uc_link;
diff --git a/libc/sysdeps/linux/kvx/sys/user.h b/libc/sysdeps/linux/kvx/sys/user.h
index 2e228ff19..c871f1a03 100644
--- a/libc/sysdeps/linux/kvx/sys/user.h
+++ b/libc/sysdeps/linux/kvx/sys/user.h
@@ -1,27 +1 @@
-/*
- * This file is subject to the terms and conditions of the LGPL V2.1
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2019 Kalray Inc.
- */
-
-#ifndef _SYS_USER_H
-#define _SYS_USER_H 1
-
-struct user_regs_struct
-{
- /* GPR */
- unsigned long long gpr_regs[64];
-
- /* SFR */
- unsigned long lc;
- unsigned long le;
- unsigned long ls;
- unsigned long ra;
-
- unsigned long cs;
- unsigned long spc;
-};
-
-#endif
+/* This file is not needed, but in practice gdb might try to include it. */