2002-02-11 Michael Snyder <msnyder@redhat.com>
* elf-bfd.h (elfcore_write_lwpstatus): Add prototype. * elf.c (elfcore_grok_pstatus): Add prototype. (elfcore_grok_lwpstatus): Add prototype. (elfcore_write_lwpstatus): New function. (elfcore_write_pstatus): Fix typo, eliminate unnecessary memcpy.
This commit is contained in:
parent
1e4d76e7d5
commit
51316059cc
@ -32,6 +32,14 @@
|
||||
DT_PPC64_OPD and DT_PPC64_OPDSZ tags.
|
||||
(ppc64_elf_finish_dynamic_sections): Set values for them.
|
||||
|
||||
2002-02-11 Michael Snyder <msnyder@redhat.com>
|
||||
|
||||
* elf-bfd.h (elfcore_write_lwpstatus): Add prototype.
|
||||
* elf.c (elfcore_grok_pstatus): Add prototype.
|
||||
(elfcore_grok_lwpstatus): Add prototype.
|
||||
(elfcore_write_lwpstatus): New function.
|
||||
(elfcore_write_pstatus): Fix typo, eliminate unnecessary memcpy.
|
||||
|
||||
2002-02-11 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* elf32-sh.c: Added missing prototypes.
|
||||
|
@ -1531,6 +1531,8 @@ extern char *elfcore_write_prfpreg
|
||||
PARAMS ((bfd *, char *, int *, void *, int));
|
||||
extern char *elfcore_write_prxfpreg
|
||||
PARAMS ((bfd *, char *, int *, void *, int));
|
||||
extern char *elfcore_write_lwpstatus
|
||||
PARAMS ((bfd*, char*, int*, long, int, void*));
|
||||
|
||||
/* MIPS ELF specific routines. */
|
||||
|
||||
|
46
bfd/elf.c
46
bfd/elf.c
@ -6153,6 +6153,8 @@ elfcore_grok_psinfo (abfd, note)
|
||||
#endif /* defined (HAVE_PRPSINFO_T) || defined (HAVE_PSINFO_T) */
|
||||
|
||||
#if defined (HAVE_PSTATUS_T)
|
||||
static boolean elfcore_grok_pstatus PARAMS ((bfd *, Elf_Internal_Note *));
|
||||
|
||||
static boolean
|
||||
elfcore_grok_pstatus (abfd, note)
|
||||
bfd *abfd;
|
||||
@ -6190,6 +6192,8 @@ elfcore_grok_pstatus (abfd, note)
|
||||
#endif /* defined (HAVE_PSTATUS_T) */
|
||||
|
||||
#if defined (HAVE_LWPSTATUS_T)
|
||||
static boolean elfcore_grok_lwpstatus PARAMS ((bfd *, Elf_Internal_Note *));
|
||||
|
||||
static boolean
|
||||
elfcore_grok_lwpstatus (abfd, note)
|
||||
bfd *abfd;
|
||||
@ -6603,6 +6607,38 @@ elfcore_write_prstatus (abfd, buf, bufsiz, pid, cursig, gregs)
|
||||
}
|
||||
#endif /* HAVE_PRSTATUS_T */
|
||||
|
||||
#if defined (HAVE_LWPSTATUS_T)
|
||||
char *
|
||||
elfcore_write_lwpstatus (abfd, buf, bufsiz, pid, cursig, gregs)
|
||||
bfd *abfd;
|
||||
char *buf;
|
||||
int *bufsiz;
|
||||
long pid;
|
||||
int cursig;
|
||||
void *gregs;
|
||||
{
|
||||
lwpstatus_t lwpstat;
|
||||
char *note_name = "CORE";
|
||||
|
||||
memset (&lwpstat, 0, sizeof (lwpstat));
|
||||
lwpstat.pr_lwpid = pid >> 16;
|
||||
lwpstat.pr_cursig = cursig;
|
||||
#if defined (HAVE_LWPSTATUS_T_PR_REG)
|
||||
memcpy (lwpstat.pr_reg, gregs, sizeof (lwpstat.pr_reg));
|
||||
#elif defined (HAVE_LWPSTATUS_T_PR_CONTEXT)
|
||||
#if !defined(gregs)
|
||||
memcpy (lwpstat.pr_context.uc_mcontext.gregs,
|
||||
gregs, sizeof (lwpstat.pr_context.uc_mcontext.gregs));
|
||||
#else
|
||||
memcpy (lwpstat.pr_context.uc_mcontext.__gregs,
|
||||
gregs, sizeof (lwpstat.pr_context.uc_mcontext.__gregs));
|
||||
#endif
|
||||
#endif
|
||||
return elfcore_write_note (abfd, buf, bufsiz, note_name,
|
||||
NT_LWPSTATUS, &lwpstat, sizeof (lwpstat));
|
||||
}
|
||||
#endif /* HAVE_LWPSTATUS_T */
|
||||
|
||||
#if defined (HAVE_PSTATUS_T)
|
||||
char *
|
||||
elfcore_write_pstatus (abfd, buf, bufsiz, pid, cursig, gregs)
|
||||
@ -6616,11 +6652,11 @@ elfcore_write_pstatus (abfd, buf, bufsiz, pid, cursig, gregs)
|
||||
pstatus_t pstat;
|
||||
char *note_name = "CORE";
|
||||
|
||||
memset (&pstat, 0, sizeof (prstat));
|
||||
pstat.pr_pid = pid;
|
||||
memcpy (pstat.pr_reg, gregs, sizeof (pstat.pr_reg));
|
||||
return elfcore_write_note (abfd, buf, bufsiz,
|
||||
note_name, NT_PSTATUS, &pstat, sizeof (pstat));
|
||||
memset (&pstat, 0, sizeof (pstat));
|
||||
pstat.pr_pid = pid & 0xffff;
|
||||
buf = elfcore_write_note (abfd, buf, bufsiz, note_name,
|
||||
NT_PSTATUS, &pstat, sizeof (pstat));
|
||||
return buf;
|
||||
}
|
||||
#endif /* HAVE_PSTATUS_T */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user