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.
This commit is contained in:
Ulrich Drepper 2000-03-21 21:07:30 +00:00
parent 8542e5f038
commit 5402148732
5 changed files with 63 additions and 11 deletions

View File

@ -1,3 +1,17 @@
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.
2000-03-21 Roland McGrath <roland@baalperazim.frob.com>
* scripts/firstversions.awk: Allow multiple version sets in the

View File

@ -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);
}

View File

@ -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) \

View File

@ -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;

View File

@ -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,6 +120,10 @@ 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
@ -128,7 +132,6 @@ enum __ptrace_request
/* Write several bytes at a time. */
PTRACE_WRITETEXT = 19,
#define PTRACE_WRITETEXT PTRACE_WRITETEXT
#define PTRACE_WRITEDATA PTRACE_WRITETEXT
#if __WORDSIZE == 64