summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/aarch64/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/aarch64/sys')
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/elf.h2
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/procfs.h4
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h85
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h44
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/user.h2
5 files changed, 51 insertions, 86 deletions
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/elf.h b/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
index 7a2b01bfd2..1e87fd9665 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2016 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h b/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
index 7e408c3f89..d48ba39551 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/procfs.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996-2016 Free Software Foundation, Inc.
+/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -36,7 +36,7 @@
__BEGIN_DECLS
/* Type for a general-purpose register. */
-typedef unsigned long elf_greg_t;
+typedef __uint64_t elf_greg_t;
/* And the whole bunch of them. We could have used `struct
pt_regs' directly in the typedef, but tradition says that
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
index 506ecceee3..93e373c3ad 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h
@@ -1,5 +1,5 @@
-/* `ptrace' debugger support interface. Linux version.
- Copyright (C) 1996-2016 Free Software Foundation, Inc.
+/* `ptrace' debugger support interface. Linux/AArch64 version.
+ Copyright (C) 1996-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -66,7 +66,7 @@ enum __ptrace_request
PTRACE_KILL = 8,
#define PT_KILL PTRACE_KILL
- /* Single step the process. */
+ /* Single step the process. */
PTRACE_SINGLESTEP = 9,
#define PT_STEP PTRACE_SINGLESTEP
@@ -78,18 +78,10 @@ enum __ptrace_request
PTRACE_DETACH = 17,
#define PT_DETACH PTRACE_DETACH
- PTRACE_GET_THREAD_AREA = 22,
-
- /* Continue and stop at the next (return from) syscall. */
+ /* Continue and stop at the next entry to or return from syscall. */
PTRACE_SYSCALL = 24,
#define PT_SYSCALL PTRACE_SYSCALL
- /* Get all hardware breakpoint registers. */
- PTRACE_GETHBPREGS = 29,
-
- /* Set all hardware breakpoint registers. */
- PTRACE_SETHBPREGS = 30,
-
/* Set ptrace filter options. */
PTRACE_SETOPTIONS = 0x4200,
#define PT_SETOPTIONS PTRACE_SETOPTIONS
@@ -119,7 +111,7 @@ enum __ptrace_request
PTRACE_SEIZE = 0x4206,
#define PTRACE_SEIZE PTRACE_SEIZE
- /* Trap seized trace. */
+ /* Trap seized tracee. */
PTRACE_INTERRUPT = 0x4207,
#define PTRACE_INTERRUPT PTRACE_INTERRUPT
@@ -127,78 +119,29 @@ enum __ptrace_request
PTRACE_LISTEN = 0x4208,
#define PTRACE_LISTEN PTRACE_LISTEN
+ /* Retrieve siginfo_t structures without removing signals from a queue. */
PTRACE_PEEKSIGINFO = 0x4209,
#define PTRACE_PEEKSIGINFO PTRACE_PEEKSIGINFO
+ /* Get the mask of blocked signals. */
PTRACE_GETSIGMASK = 0x420a,
#define PTRACE_GETSIGMASK PTRACE_GETSIGMASK
+ /* Change the mask of blocked signals. */
PTRACE_SETSIGMASK = 0x420b,
#define PTRACE_SETSIGMASK PTRACE_SETSIGMASK
- PTRACE_SECCOMP_GET_FILTER = 0x420c
+ /* Get seccomp BPF filters. */
+ PTRACE_SECCOMP_GET_FILTER = 0x420c,
#define PTRACE_SECCOMP_GET_FILTER PTRACE_SECCOMP_GET_FILTER
-};
-
-
-/* Flag for PTRACE_LISTEN. */
-enum __ptrace_flags
-{
- PTRACE_SEIZE_DEVEL = 0x80000000
-};
-
-/* Options set using PTRACE_SETOPTIONS. */
-enum __ptrace_setoptions
-{
- PTRACE_O_TRACESYSGOOD = 0x00000001,
- PTRACE_O_TRACEFORK = 0x00000002,
- PTRACE_O_TRACEVFORK = 0x00000004,
- PTRACE_O_TRACECLONE = 0x00000008,
- PTRACE_O_TRACEEXEC = 0x00000010,
- PTRACE_O_TRACEVFORKDONE = 0x00000020,
- PTRACE_O_TRACEEXIT = 0x00000040,
- PTRACE_O_TRACESECCOMP = 0x00000080,
- PTRACE_O_EXITKILL = 0x00100000,
- PTRACE_O_SUSPEND_SECCOMP = 0x00200000,
- PTRACE_O_MASK = 0x003000ff
-};
-
-/* Wait extended result codes for the above trace options. */
-enum __ptrace_eventcodes
-{
- PTRACE_EVENT_FORK = 1,
- PTRACE_EVENT_VFORK = 2,
- PTRACE_EVENT_CLONE = 3,
- PTRACE_EVENT_EXEC = 4,
- PTRACE_EVENT_VFORK_DONE = 5,
- PTRACE_EVENT_EXIT = 6,
- PTRACE_EVENT_SECCOMP = 7
-};
-/* Arguments for PTRACE_PEEKSIGINFO. */
-struct __ptrace_peeksiginfo_args
-{
- __uint64_t off; /* From which siginfo to start. */
- __uint32_t flags; /* Flags for peeksiginfo. */
- __int32_t nr; /* How many siginfos to take. */
-};
-
-enum __ptrace_peeksiginfo_flags
-{
- /* Read signals from a shared (process wide) queue. */
- PTRACE_PEEKSIGINFO_SHARED = (1 << 0)
+ /* Get seccomp BPF filter metadata. */
+ PTRACE_SECCOMP_GET_METADATA = 0x420d
+#define PTRACE_SECCOMP_GET_METADATA PTRACE_SECCOMP_GET_METADATA
};
-/* Perform process tracing functions. REQUEST is one of the values
- above, and determines the action to be taken.
- For all requests except PTRACE_TRACEME, PID specifies the process to be
- traced.
- PID and the other arguments described above for the various requests should
- appear (those that are used for the particular request) as:
- pid_t PID, void *ADDR, int DATA, void *ADDR2
- after REQUEST. */
-extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
+#include <bits/ptrace-shared.h>
__END_DECLS
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
index 01da3ca858..f1b3ab59e2 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-2016 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -22,12 +22,19 @@
#define _SYS_UCONTEXT_H 1
#include <features.h>
-#include <signal.h>
-#include <sys/procfs.h>
-/* We need the signal context definitions even if they are not used
- included in <signal.h>. */
-#include <bits/sigcontext.h>
+#include <bits/types/sigset_t.h>
+#include <bits/types/stack_t.h>
+
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
+#ifdef __USE_MISC
+# include <sys/procfs.h>
+
typedef elf_greg_t greg_t;
@@ -36,21 +43,36 @@ typedef elf_gregset_t gregset_t;
/* Structure to describe FPU registers. */
typedef elf_fpregset_t fpregset_t;
+#endif
/* Context to describe whole processor state. This only describes
the core registers; coprocessor registers get saved elsewhere
(e.g. in uc_regspace, or somewhere unspecified on the stack
during non-RT signal handlers). */
-typedef struct sigcontext mcontext_t;
+typedef struct
+ {
+ unsigned long long int __ctx(fault_address);
+ unsigned long long int __ctx(regs)[31];
+ unsigned long long int __ctx(sp);
+ unsigned long long int __ctx(pc);
+ unsigned long long int __ctx(pstate);
+ /* This field contains extension records for additional processor
+ state such as the FP/SIMD state. It has to match the definition
+ of the corresponding field in the sigcontext struct, see the
+ arch/arm64/include/uapi/asm/sigcontext.h linux header for details. */
+ unsigned char __reserved[4096] __attribute__ ((__aligned__ (16)));
+ } mcontext_t;
/* Userlevel context. */
-typedef struct ucontext
+typedef struct ucontext_t
{
- unsigned long uc_flags;
- struct ucontext *uc_link;
+ unsigned long __ctx(uc_flags);
+ struct ucontext_t *uc_link;
stack_t uc_stack;
- __sigset_t uc_sigmask;
+ sigset_t uc_sigmask;
mcontext_t uc_mcontext;
} ucontext_t;
+#undef __ctx
+
#endif /* sys/ucontext.h */
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/user.h b/sysdeps/unix/sysv/linux/aarch64/sys/user.h
index f6fc361e81..14993c9c85 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/user.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/user.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2016 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.