2001-08-09 H.J. Lu <hjl@gnu.org>
* bfd-in.h (bfd_sprintf_vma): New prototype. (bfd_fprintf_vma): Likewise. (bfd_elf_sprintf_vma): Likewise. (bfd_elf_fprintf_vma): Likewise. (bfd_printf_vma): New. Defined with bfd_fprintf_vma. * bfd-in2.h: Regenerated. * bfd.c (bfd_sprintf_vma): New. Defined. (bfd_fprintf_vma): Likewise. * elf.c (bfd_elf_sprintf_vma): New. Defined. (bfd_elf_fprintf_vma): Likewise.
This commit is contained in:
parent
5789ecea4c
commit
ae4221d7c2
5 changed files with 100 additions and 0 deletions
|
@ -1,3 +1,18 @@
|
|||
2001-08-09 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* bfd-in.h (bfd_sprintf_vma): New prototype.
|
||||
(bfd_fprintf_vma): Likewise.
|
||||
(bfd_elf_sprintf_vma): Likewise.
|
||||
(bfd_elf_fprintf_vma): Likewise.
|
||||
(bfd_printf_vma): New. Defined with bfd_fprintf_vma.
|
||||
* bfd-in2.h: Regenerated.
|
||||
|
||||
* bfd.c (bfd_sprintf_vma): New. Defined.
|
||||
(bfd_fprintf_vma): Likewise.
|
||||
|
||||
* elf.c (bfd_elf_sprintf_vma): New. Defined.
|
||||
(bfd_elf_fprintf_vma): Likewise.
|
||||
|
||||
2001-08-09 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* coff-rs6000.c: Add missing prototypes.
|
||||
|
|
|
@ -183,7 +183,13 @@ typedef unsigned long bfd_size_type;
|
|||
|
||||
#endif /* not BFD64 */
|
||||
|
||||
extern void bfd_sprintf_vma PARAMS ((bfd *, char *, bfd_vma));
|
||||
extern void bfd_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma));
|
||||
extern void bfd_elf_sprintf_vma PARAMS ((bfd *, char *, bfd_vma));
|
||||
extern void bfd_elf_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma));
|
||||
|
||||
#define printf_vma(x) fprintf_vma(stdout,x)
|
||||
#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
|
||||
|
||||
typedef unsigned int flagword; /* 32 bits of flags */
|
||||
typedef unsigned char bfd_byte;
|
||||
|
|
|
@ -183,7 +183,13 @@ typedef unsigned long bfd_size_type;
|
|||
|
||||
#endif /* not BFD64 */
|
||||
|
||||
extern void bfd_sprintf_vma PARAMS ((bfd *, char *, bfd_vma));
|
||||
extern void bfd_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma));
|
||||
extern void bfd_elf_sprintf_vma PARAMS ((bfd *, char *, bfd_vma));
|
||||
extern void bfd_elf_fprintf_vma PARAMS ((bfd *, PTR, bfd_vma));
|
||||
|
||||
#define printf_vma(x) fprintf_vma(stdout,x)
|
||||
#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
|
||||
|
||||
typedef unsigned int flagword; /* 32 bits of flags */
|
||||
typedef unsigned char bfd_byte;
|
||||
|
|
22
bfd/bfd.c
22
bfd/bfd.c
|
@ -1262,3 +1262,25 @@ bfd_record_phdr (abfd, type, flags_valid, flags, at_valid, at,
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
bfd_sprintf_vma (abfd, buf, value)
|
||||
bfd *abfd;
|
||||
char *buf;
|
||||
bfd_vma value;
|
||||
{
|
||||
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
|
||||
return bfd_elf_sprintf_vma (abfd, buf, value);
|
||||
sprintf_vma (buf, value);
|
||||
}
|
||||
|
||||
void
|
||||
bfd_fprintf_vma (abfd, stream, value)
|
||||
bfd *abfd;
|
||||
PTR stream;
|
||||
bfd_vma value;
|
||||
{
|
||||
if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
|
||||
return bfd_elf_fprintf_vma (abfd, stream, value);
|
||||
fprintf_vma ((FILE *) stream, value);
|
||||
}
|
||||
|
|
51
bfd/elf.c
51
bfd/elf.c
|
@ -5994,3 +5994,54 @@ bfd_get_elf_phdrs (abfd, phdrs)
|
|||
|
||||
return num_phdrs;
|
||||
}
|
||||
|
||||
void
|
||||
bfd_elf_sprintf_vma (abfd, buf, value)
|
||||
bfd *abfd;
|
||||
char *buf;
|
||||
bfd_vma value;
|
||||
{
|
||||
Elf_Internal_Ehdr *i_ehdrp; /* Elf file header, internal form */
|
||||
|
||||
i_ehdrp = elf_elfheader (abfd);
|
||||
if (i_ehdrp == NULL)
|
||||
sprintf_vma (buf, value);
|
||||
else
|
||||
{
|
||||
if (i_ehdrp->e_ident[EI_CLASS] == ELFCLASS64)
|
||||
#if BFD_HOST_64BIT_LONG
|
||||
sprintf (buf, "%016lx", value);
|
||||
#else
|
||||
sprintf (buf, "%08lx%08lx", _bfd_int64_high (value),
|
||||
_bfd_int64_low (value));
|
||||
#endif
|
||||
else
|
||||
sprintf (buf, "%08lx", (unsigned long) (value & 0xffffffff));
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
bfd_elf_fprintf_vma (abfd, stream, value)
|
||||
bfd *abfd;
|
||||
PTR stream;
|
||||
bfd_vma value;
|
||||
{
|
||||
Elf_Internal_Ehdr *i_ehdrp; /* Elf file header, internal form */
|
||||
|
||||
i_ehdrp = elf_elfheader (abfd);
|
||||
if (i_ehdrp == NULL)
|
||||
fprintf_vma ((FILE *) stream, value);
|
||||
else
|
||||
{
|
||||
if (i_ehdrp->e_ident[EI_CLASS] == ELFCLASS64)
|
||||
#if BFD_HOST_64BIT_LONG
|
||||
fprintf ((FILE *) stream, "%016lx", value);
|
||||
#else
|
||||
fprintf ((FILE *) stream, "%08lx%08lx",
|
||||
_bfd_int64_high (value), _bfd_int64_low (value));
|
||||
#endif
|
||||
else
|
||||
fprintf ((FILE *) stream, "%08lx",
|
||||
(unsigned long) (value & 0xffffffff));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue