user.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  2. This file is part of the GNU C Library.
  3. The GNU C Library is free software; you can redistribute it and/or
  4. modify it under the terms of the GNU Lesser General Public
  5. License as published by the Free Software Foundation; either
  6. version 2.1 of the License, or (at your option) any later version.
  7. The GNU C Library is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  10. Lesser General Public License for more details.
  11. You should have received a copy of the GNU Lesser General Public
  12. License along with the GNU C Library; if not, write to the Free
  13. Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  14. 02111-1307 USA. */
  15. #ifndef _SYS_USER_H
  16. #define _SYS_USER_H 1
  17. /* The whole purpose of this file is for GDB and GDB only. Don't read
  18. too much into it. Don't use it for anything other than GDB unless
  19. you know what you are doing. */
  20. struct user_fpregs
  21. {
  22. struct fp_reg
  23. {
  24. unsigned int sign1:1;
  25. unsigned int unused:15;
  26. unsigned int sign2:1;
  27. unsigned int exponent:14;
  28. unsigned int j:1;
  29. unsigned int mantissa1:31;
  30. unsigned int mantissa0:32;
  31. } fpregs[8];
  32. unsigned int fpsr:32;
  33. unsigned int fpcr:32;
  34. unsigned char ftype[8];
  35. unsigned int init_flag;
  36. };
  37. struct user_regs
  38. {
  39. unsigned long int uregs[18];
  40. };
  41. struct user
  42. {
  43. struct user_regs regs; /* General registers */
  44. int u_fpvalid; /* True if math co-processor being used. */
  45. unsigned long int u_tsize; /* Text segment size (pages). */
  46. unsigned long int u_dsize; /* Data segment size (pages). */
  47. unsigned long int u_ssize; /* Stack segment size (pages). */
  48. unsigned long start_code; /* Starting virtual address of text. */
  49. unsigned long start_stack; /* Starting virtual address of stack. */
  50. long int signal; /* Signal that caused the core dump. */
  51. int reserved; /* No longer used */
  52. struct user_regs *u_ar0; /* help gdb to find the general registers. */
  53. unsigned long magic; /* uniquely identify a core file */
  54. char u_comm[32]; /* User command that was responsible */
  55. int u_debugreg[8];
  56. struct user_fpregs u_fp; /* Floating point registers */
  57. struct user_fpregs *u_fp0; /* help gdb to find the FP registers. */
  58. };
  59. #endif /* sys/user.h */