1 /* Copyright (C) 1998-2022 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3 
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8 
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13 
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, see
16    <https://www.gnu.org/licenses/>.  */
17 
18 #ifndef _SYS_USER_H
19 #define _SYS_USER_H	1
20 
21 #include <asm/ptrace.h>
22 #include <stddef.h>
23 
24 /* asm/ptrace.h polutes the namespace.  */
25 #undef PTRACE_GETREGS
26 #undef PTRACE_SETREGS
27 #undef PTRACE_GETFPREGS
28 #undef PTRACE_SETFPREGS
29 #undef PTRACE_GETFDPIC
30 #undef PTRACE_GETFDPIC_EXEC
31 #undef PTRACE_GETFDPIC_INTERP
32 #undef	PTRACE_GETDSPREGS
33 #undef	PTRACE_SETDSPREGS
34 
35 typedef unsigned long elf_greg_t;
36 
37 #define ELF_NGREG (sizeof (struct pt_regs) / sizeof (elf_greg_t))
38 typedef elf_greg_t elf_gregset_t[ELF_NGREG];
39 
40 struct user_fpu_struct
41   {
42     unsigned long fp_regs[16];
43     unsigned long xfp_regs[16];
44     unsigned long fpscr;
45     unsigned long fpul;
46   };
47 typedef struct user_fpu_struct elf_fpregset_t;
48 
49 struct user
50   {
51     struct pt_regs regs;
52     struct user_fpu_struct fpu;
53     int u_fpvalid;
54     size_t u_tsize;
55     size_t u_dsize;
56     size_t u_ssize;
57     unsigned long start_code;
58     unsigned long start_data;
59     unsigned long start_stack;
60     long int signal;
61     unsigned long u_ar0;
62     struct user_fpu_struct *u_fpstate;
63     unsigned long magic;
64     char u_comm[32];
65   };
66 
67 #endif  /* sys/user.h */
68