diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/aarch64/sys')
-rw-r--r-- | sysdeps/unix/sysv/linux/aarch64/sys/elf.h | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/aarch64/sys/procfs.h | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h | 85 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h | 44 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/aarch64/sys/user.h | 2 |
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. |