Back to index

glibc  2.9
user.h
Go to the documentation of this file.
00001 /* Copyright (C) 1998, 1999, 2000, 2001 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 and GDB only.  Don't read
00023    too much into it.  Don't use it for anything other than GDB unless
00024    you know what you are doing.  */
00025 
00026 struct user_fpregs
00027 {
00028   struct fp_reg
00029   {
00030     unsigned int sign1:1;
00031     unsigned int unused:15;
00032     unsigned int sign2:1;
00033     unsigned int exponent:14;
00034     unsigned int j:1;
00035     unsigned int mantissa1:31;
00036     unsigned int mantissa0:32;
00037   } fpregs[8];
00038   unsigned int fpsr:32;
00039   unsigned int fpcr:32;
00040   unsigned char ftype[8];
00041   unsigned int init_flag;
00042 };
00043 
00044 struct user_regs
00045 {
00046   unsigned long int uregs[18];
00047 };
00048 
00049 struct user
00050 {
00051   struct user_regs regs;    /* General registers */
00052   int u_fpvalid;            /* True if math co-processor being used. */
00053 
00054   unsigned long int u_tsize;       /* Text segment size (pages). */
00055   unsigned long int u_dsize;       /* Data segment size (pages). */
00056   unsigned long int u_ssize;       /* Stack segment size (pages). */
00057 
00058   unsigned long start_code; /* Starting virtual address of text. */
00059   unsigned long start_stack;       /* Starting virtual address of stack. */
00060 
00061   long int signal;                 /* Signal that caused the core dump. */
00062   int reserved;                    /* No longer used */
00063   struct user_regs *u_ar0;  /* help gdb to find the general registers. */
00064 
00065   unsigned long magic;             /* uniquely identify a core file */
00066   char u_comm[32];          /* User command that was responsible */
00067   int u_debugreg[8];
00068   struct user_fpregs u_fp;  /* Floating point registers */
00069   struct user_fpregs *u_fp0;       /* help gdb to find the FP registers. */
00070 };
00071 
00072 #endif  /* sys/user.h */