diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-03-21 21:07:30 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-03-21 21:07:30 +0000 |
commit | 5402148732d74b9deeade21ba1828f10ad574ef7 (patch) | |
tree | 33b9f5b85e94309daaa65f449a30d540856ffd49 /sysdeps/unix | |
parent | 8542e5f038cec88f2b64a324681a277cf86196af (diff) | |
download | glibc-5402148732d74b9deeade21ba1828f10ad574ef7.tar.gz glibc-5402148732d74b9deeade21ba1828f10ad574ef7.tar.xz glibc-5402148732d74b9deeade21ba1828f10ad574ef7.zip |
Update.
2000-03-21 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h: Clean up namespace. Lay out struct sigcontext according to what really gets passed on the stack. * sysdeps/unix/sysv/linux/sparc/sys/procfs.h: Don't include asm/elf.h. (elf_gregset_t, elf_greg_t, elf_fpregset_t, ELF_NGREG): Define. (prgregset_t, prfpregset_t): Define to elf_* types. * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h (PTRACE_WRITEDATA): Define to correct value. * sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h: Use struct sigcontext. * sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h: Likewise.
Diffstat (limited to 'sysdeps/unix')
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sys/procfs.h | 43 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sys/ptrace.h | 13 |
4 files changed, 49 insertions, 11 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h b/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h index 4937725ddf..39c2a0698b 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h @@ -20,7 +20,7 @@ #include <signal.h> void -profil_counter (int signo, __siginfo_t *si) +profil_counter (int signo, struct sigcontext *si) { profil_count ((void *) si->si_regs.pc); } diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h b/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h index d808b8c49e..9c6b924319 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/sigcontextinfo.h @@ -17,7 +17,7 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#define SIGCONTEXT __siginfo_t * +#define SIGCONTEXT struct sigcontext * #define SIGCONTEXT_EXTRA_ARGS #define GET_PC(__ctx) ((void *) ((__ctx)->si_regs.pc)) #define ADVANCE_STACK_FRAME(__next) \ 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; diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h index b980e93ae0..c64d433f9e 100644 --- a/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h +++ b/sysdeps/unix/sysv/linux/sparc/sys/ptrace.h @@ -1,5 +1,5 @@ /* `ptrace' debugger support interface. Linux/SPARC version. - Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -120,15 +120,18 @@ enum __ptrace_request PTRACE_ATTACH = 16, #define PT_ATTACH PTRACE_ATTACH + /* Write several bytes at a time. */ + PTRACE_WRITEDATA = 17, +#define PTRACE_WRITEDATA PTRACE_WRITEDATA + /* Read several bytes at a time. */ PTRACE_READTEXT = 18, - #define PTRACE_READTEXT PTRACE_READTEXT - #define PTRACE_READDATA PTRACE_READTEXT +#define PTRACE_READTEXT PTRACE_READTEXT +#define PTRACE_READDATA PTRACE_READTEXT /* Write several bytes at a time. */ PTRACE_WRITETEXT = 19, - #define PTRACE_WRITETEXT PTRACE_WRITETEXT - #define PTRACE_WRITEDATA PTRACE_WRITETEXT +#define PTRACE_WRITETEXT PTRACE_WRITETEXT #if __WORDSIZE == 64 |