| 1 |
|
| 2 | #ifndef __ASM_SH_USER_H
|
| 3 | #define __ASM_SH_USER_H
|
| 4 |
|
| 5 | #include <asm/ptrace.h>
|
| 6 | #include <asm/page.h>
|
| 7 |
|
| 8 | |
| 9 | * Core file format: The core file is written in such a way that gdb
|
| 10 | * can understand it and provide useful information to the user (under
|
| 11 | * linux we use the `trad-core' bfd). The file contents are as follows:
|
| 12 | *
|
| 13 | * upage: 1 page consisting of a user struct that tells gdb
|
| 14 | * what is present in the file. Directly after this is a
|
| 15 | * copy of the task_struct, which is currently not used by gdb,
|
| 16 | * but it may come in handy at some point. All of the registers
|
| 17 | * are stored as part of the upage. The upage should always be
|
| 18 | * only one page long.
|
| 19 | * data: The data segment follows next. We use current->end_text to
|
| 20 | * current->brk to pick up all of the user variables, plus any memory
|
| 21 | * that may have been sbrk'ed. No attempt is made to determine if a
|
| 22 | * page is demand-zero or if a page is totally unused, we just cover
|
| 23 | * the entire range. All of the addresses are rounded in such a way
|
| 24 | * that an integral number of pages is written.
|
| 25 | * stack: We need the stack information in order to get a meaningful
|
| 26 | * backtrace. We need to write the data from usp to
|
| 27 | * current->start_stack, so we round each of these in order to be able
|
| 28 | * to write an integer number of pages.
|
| 29 |
|
| 30 |
|
| 31 | struct user_fpu_struct {
|
| 32 | unsigned long fp_regs[16];
|
| 33 | unsigned long xfp_regs[16];
|
| 34 | unsigned long fpscr;
|
| 35 | unsigned long fpul;
|
| 36 | };
|
| 37 |
|
| 38 | struct user {
|
| 39 | struct pt_regs regs;
|
| 40 | struct user_fpu_struct fpu;
|
| 41 | int u_fpvalid;
|
| 42 | size_t u_tsize;
|
| 43 | size_t u_dsize;
|
| 44 | size_t u_ssize;
|
| 45 | unsigned long start_code;
|
| 46 | unsigned long start_data;
|
| 47 | unsigned long start_stack;
|
| 48 | long int signal;
|
| 49 | unsigned long u_ar0;
|
| 50 | struct user_fpu_struct* u_fpstate;
|
| 51 | unsigned long magic;
|
| 52 | char u_comm[32];
|
| 53 | };
|
| 54 |
|
| 55 | #endif
|