diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/sparc/sys/procfs.h')
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sys/procfs.h | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/procfs.h b/sysdeps/unix/sysv/linux/sparc/sys/procfs.h index d7d990ce8a..9a9db8a5b4 100644 --- a/sysdeps/unix/sysv/linux/sparc/sys/procfs.h +++ b/sysdeps/unix/sysv/linux/sparc/sys/procfs.h @@ -29,11 +29,46 @@ #include <sys/types.h> #include <sys/ucontext.h> #include <sys/user.h> -#include <asm/elf.h> #include <bits/wordsize.h> __BEGIN_DECLS +#if __WORDSIZE == 64 + +#define ELF_NGREG 20 + +typedef struct + { + unsigned long pr_regs[32]; + unsigned long pr_fsr; + unsigned long pr_gsr; + unsigned long pr_fprs; + } elf_fpregset_t; + +#else /* sparc32 */ + +#define ELF_NGREG 38 + +typedef struct + { + union + { + unsigned long pr_regs[32]; + double pr_dregs[16]; + } pr_fr; + unsigned long __unused; + unsigned long pr_fsr; + unsigned char pr_qcnt; + unsigned char pr_q_entrysize; + unsigned char pr_en; + unsigned int pr_q[64]; + } elf_fpregset_t; + +#endif /* sparc32 */ + +typedef unsigned long elf_greg_t; +typedef elf_greg_t elf_gregset_t[ELF_NGREG]; + struct elf_siginfo { int si_signo; /* Signal number. */ @@ -93,11 +128,11 @@ struct elf_prpsinfo typedef void *psaddr_t; /* Register sets. Linux has different names. */ -typedef gregset_t prgregset_t; -typedef fpregset_t prfpregset_t; +typedef elf_gregset_t prgregset_t; +typedef elf_fpregset_t prfpregset_t; /* We don't have any differences between processes and threads, - therefore habe only ine PID type. */ + therefore have only one PID type. */ typedef __pid_t lwpid_t; |