Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* $Id: user.h,v 1.5 1998/02/23 01:49:22 rth Exp $ |
| 2 | * asm-sparc/user.h: Core file definitions for the Sparc. |
| 3 | * |
| 4 | * Keep in sync with reg.h. Actually, we could get rid of this |
| 5 | * one, since we won't a.out core dump that much anyways - miguel. |
| 6 | * Copyright (C) 1995 (davem@caip.rutgers.edu) |
| 7 | */ |
| 8 | #ifndef _SPARC_USER_H |
| 9 | #define _SPARC_USER_H |
| 10 | |
| 11 | #include <asm/a.out.h> |
| 12 | struct sunos_regs { |
| 13 | unsigned long psr, pc, npc, y; |
| 14 | unsigned long regs[15]; |
| 15 | }; |
| 16 | |
| 17 | struct sunos_fpqueue { |
| 18 | unsigned long *addr; |
| 19 | unsigned long inst; |
| 20 | }; |
| 21 | |
| 22 | struct sunos_fp { |
| 23 | union { |
| 24 | unsigned long regs[32]; |
| 25 | double reg_dbls[16]; |
| 26 | } fregs; |
| 27 | unsigned long fsr; |
| 28 | unsigned long flags; |
| 29 | unsigned long extra; |
| 30 | unsigned long fpq_count; |
| 31 | struct sunos_fpqueue fpq[16]; |
| 32 | }; |
| 33 | |
| 34 | struct sunos_fpu { |
| 35 | struct sunos_fp fpstatus; |
| 36 | }; |
| 37 | |
| 38 | /* The SunOS core file header layout. */ |
| 39 | struct user { |
| 40 | unsigned long magic; |
| 41 | unsigned long len; |
| 42 | struct sunos_regs regs; |
| 43 | struct exec uexec; |
| 44 | int signal; |
| 45 | size_t u_tsize; /* all of these in bytes! */ |
| 46 | size_t u_dsize; |
| 47 | size_t u_ssize; |
| 48 | char u_comm[17]; |
| 49 | struct sunos_fpu fpu; |
| 50 | unsigned long sigcode; /* Special sigcontext subcode, if any */ |
| 51 | }; |
| 52 | |
| 53 | #define NBPG 0x2000 |
| 54 | #define UPAGES 1 |
| 55 | #define HOST_TEXT_START_ADDR (u.start_code) |
| 56 | #define HOST_DATA_START_ADDR (u.uexec.a_data) |
| 57 | #define HOST_STACK_END_ADDR (- u.u_ssize * NBPG) |
| 58 | #define SUNOS_CORE_MAGIC 0x080456 |
| 59 | |
| 60 | #endif /* !(_SPARC_USER_H) */ |