1 /* Copyright (C) 1999-2021 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 /* The whole purpose of this file is for gdb/strace and gdb/strace 22 only. Don't read too much into it. Don't use it for anything other 23 than gdb/strace unless you know what you are doing. */ 24 25 #include <asm/reg.h> 26 #include <stddef.h> 27 28 struct user 29 { 30 unsigned long int regs[EF_SIZE / 8 + 32]; /* integer and fp regs */ 31 size_t u_tsize; /* text size (pages) */ 32 size_t u_dsize; /* data size (pages) */ 33 size_t u_ssize; /* stack size (pages) */ 34 unsigned long int start_code; /* text starting address */ 35 unsigned long int start_data; /* data starting address */ 36 unsigned long int start_stack; /* stack starting address */ 37 long int signal; /* signal causing core dump */ 38 struct regs *u_ar0; /* help gdb find registers */ 39 unsigned long int magic; /* identifies a core file */ 40 char u_comm[32]; /* user command name */ 41 }; 42 43 #define PAGE_SHIFT 13 44 #define PAGE_SIZE (1UL << PAGE_SHIFT) 45 #define PAGE_MASK (~(PAGE_SIZE-1)) 46 #define NBPG PAGE_SIZE 47 #define UPAGES 1 48 #define HOST_TEXT_START_ADDR (u.start_code) 49 #define HOST_DATA_START_ADDR (u.start_data) 50 #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) 51 52 #endif /* sys/user.h */ 53