Back to index

glibc  2.9
user.h
Go to the documentation of this file.
00001 /* Copyright (C) 1999 Free Software Foundation, Inc.
00002    This file is part of the GNU C Library.
00003 
00004    The GNU C Library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Lesser General Public
00006    License as published by the Free Software Foundation; either
00007    version 2.1 of the License, or (at your option) any later version.
00008 
00009    The GNU C Library is distributed in the hope that it will be useful,
00010    but WITHOUT ANY WARRANTY; without even the implied warranty of
00011    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012    Lesser General Public License for more details.
00013 
00014    You should have received a copy of the GNU Lesser General Public
00015    License along with the GNU C Library; if not, write to the Free
00016    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00017    02111-1307 USA.  */
00018 
00019 #ifndef _SYS_USER_H
00020 #define _SYS_USER_H  1
00021 
00022 /* The whole purpose of this file is for gdb/strace and gdb/strace
00023    only. Don't read too much into it. Don't use it for anything other
00024    than gdb/strace unless you know what you are doing. */
00025 
00026 #include <asm/page.h>
00027 #include <asm/reg.h>
00028 
00029 struct user
00030 {
00031   unsigned long      int regs[EF_SIZE / 8 + 32]; /* integer and fp regs */
00032   size_t u_tsize;                         /* text size (pages) */
00033   size_t u_dsize;                         /* data size (pages) */
00034   size_t u_ssize;                         /* stack size (pages) */
00035   unsigned long      int start_code;                    /* text starting address */
00036   unsigned long      int start_data;                    /* data starting address */
00037   unsigned long      int start_stack;            /* stack starting address */
00038   long int signal;                        /* signal causing core dump */
00039   struct regs *u_ar0;                            /* help gdb find registers */
00040   unsigned long      int magic;                  /* identifies a core file */
00041   char u_comm[32];                        /* user command name */
00042 };
00043 
00044 #define NBPG                PAGE_SIZE
00045 #define UPAGES                     1
00046 #define HOST_TEXT_START_ADDR       (u.start_code)
00047 #define HOST_DATA_START_ADDR       (u.start_data)
00048 #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
00049 
00050 #endif /* sys/user.h */