* elf.c (elfcore_grok_ppc_vmx): New function.

(elfcore_grok_note): Handle NT_PPC_VMX.
	(elfcore_write_ppc_vmx): New function.
	* elf-bfd.h (elfcore_write_ppc_vmx): Declare.
This commit is contained in:
Alan Modra 2007-10-25 00:40:34 +00:00
parent 9b6a91fac0
commit 97753bd5d7
3 changed files with 35 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2007-10-25 Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
* elf.c (elfcore_grok_ppc_vmx): New function.
(elfcore_grok_note): Handle NT_PPC_VMX.
(elfcore_write_ppc_vmx): New function.
* elf-bfd.h (elfcore_write_ppc_vmx): Declare.
2007-10-24 Alan Modra <amodra@bigpond.net.au>
* Makefile.am: Run "make dep-am".

View File

@ -2009,6 +2009,8 @@ extern char *elfcore_write_prfpreg
(bfd *, char *, int *, const void *, int);
extern char *elfcore_write_prxfpreg
(bfd *, char *, int *, const void *, int);
extern char *elfcore_write_ppc_vmx
(bfd *, char *, int *, const void *, int);
extern char *elfcore_write_lwpstatus
(bfd *, char *, int *, long, int, const void *);

View File

@ -7449,6 +7449,13 @@ elfcore_grok_prxfpreg (bfd *abfd, Elf_Internal_Note *note)
return elfcore_make_note_pseudosection (abfd, ".reg-xfp", note);
}
static bfd_boolean
elfcore_grok_ppc_vmx (bfd *abfd, Elf_Internal_Note *note)
{
return elfcore_make_note_pseudosection (abfd, ".reg-ppc-vmx", note);
}
#if defined (HAVE_PRPSINFO_T)
typedef prpsinfo_t elfcore_psinfo_t;
#if defined (HAVE_PRPSINFO32_T) /* Sparc64 cross Sparc32 */
@ -7796,6 +7803,13 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note *note)
else
return TRUE;
case NT_PPC_VMX:
if (note->namesz == 6
&& strcmp (note->namedata, "LINUX") == 0)
return elfcore_grok_ppc_vmx (abfd, note);
else
return TRUE;
case NT_PRPSINFO:
case NT_PSINFO:
if (bed->elf_backend_grok_psinfo)
@ -8350,6 +8364,18 @@ elfcore_write_prxfpreg (bfd *abfd,
note_name, NT_PRXFPREG, xfpregs, size);
}
char *
elfcore_write_ppc_vmx (bfd *abfd,
char *buf,
int *bufsiz,
const void *ppc_vmx,
int size)
{
char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
note_name, NT_PPC_VMX, ppc_vmx, size);
}
static bfd_boolean
elf_parse_notes (bfd *abfd, char *buf, size_t size, file_ptr offset)
{