Signed-off-by: Aaron Merey <ame...@redhat.com> --- v2 changes: Merge xlatetof and xlatetom man pages.
Added additional details suggested in Mark's review https://sourceware.org/pipermail/elfutils-devel/2024q3/007377.html doc/elf32_xlatetof.3 | 1 + doc/elf32_xlatetom.3 | 130 +++++++++++++++++++++++++++++++++++++++++++ doc/elf64_xlatetof.3 | 1 + doc/elf64_xlatetom.3 | 1 + 4 files changed, 133 insertions(+) create mode 100644 doc/elf32_xlatetof.3 create mode 100644 doc/elf32_xlatetom.3 create mode 100644 doc/elf64_xlatetof.3 create mode 100644 doc/elf64_xlatetom.3 diff --git a/doc/elf32_xlatetof.3 b/doc/elf32_xlatetof.3 new file mode 100644 index 00000000..47ecda27 --- /dev/null +++ b/doc/elf32_xlatetof.3 @@ -0,0 +1 @@ +.so man3/elf32_xlatetom.3 diff --git a/doc/elf32_xlatetom.3 b/doc/elf32_xlatetom.3 new file mode 100644 index 00000000..ec2024fd --- /dev/null +++ b/doc/elf32_xlatetom.3 @@ -0,0 +1,130 @@ +.TH ELF32_XLATETOM 3 2024-08-14 "Libelf" "Libelf Programmer's Manual" + +.SH NAME +.nf +elf32_xlatetom, elf64_xlatetom \- translate 32-bit or 64-bit ELF data from file +representation to memory representation + +elf32_xlatetof, elf64_xlatetof \- translate 32-bit or 64-bit ELF data from memory +representation to file representation + +.SH SYNOPSIS +.nf +.B #include <libelf.h> + +.BI "int elf32_xlatetom(Elf_Data *" dst ", const Elf_Data *" src ", unsigned int " encoding ");" +.BI "int elf64_xlatetom(Elf_Data *" dst ", const Elf_Data *" src ", unsigned int " encoding ");" + +.BI "int elf32_xlatetof(Elf_Data *" dst ", const Elf_Data *" src ", unsigned int " encoding ");" +.BI "int elf64_xlatetof(Elf_Data *" dst ", const Elf_Data *" src ", unsigned int " encoding ");" + +.SH DESCRIPTION +Translate ELF data from file representation to memory representation or +vice versa. File and memory representations of ELF data can differ in +terms of endianness. Data in file representation normally comes from +.B elf_rawdata +while data in memory representation normally comes from +.BR elf_getdata . +When there is no difference between file and memory representations, +these functions simply copy the ELF data from +.I src +to +.IR dst . +Otherwise the encoding with swap between +.B ELFDATA2LSB +(two's complement little-endian) and +.B ELFDATA2MSB +(two's complement big-endian). The encoding of an ELF file is specified +in the +.B Elf32_Ehdr +or +.B Elf64_Ehdr e_ident[EI_DATA] +member. To know the memory encoding for a program you can +.B #include <endian.h> +and check BYTE_ORDER == LITTLE_ENDIAN (corresponding to +.BR ELFDATA2LSB ) +or BYTE_ORDER == BIG_ENDIAN (corresponding to +.BR ELFDATA2MSB ). + +.SH PARAMETERS +.TP +.I dst +Destination where the translated data will be stored. +The +.B d_size +of +.I dst +should be at least as big as the +.B d_size +of +.IR src . + +.TP +.I src +Source data. For the +.B xlatetom +functions, the source data should be in file representation. +For the +.B xlatetof +functions, the source data should be in memory representation. + +.TP +.I encoding +Specifies an encoding. Can be either +.B ELFDATA2LSB +(two's complement little-endian) or +.B ELFDATA2MSB +(two's complement big-endian). For the +.B xlatetom +functions, this specifies the encoding of +.IR src . +For the +.B xlatetof +functions, this specifies the encoding of +.IR dst . + +.SH RETURN VALUE +On success, return +.IR dst , +which will contain the translated data. If there is no difference +between the file and memory representations, +.I dst +will contain a copy of the source data. The +.B d_type +and +.B d_size +of +.I dst +will be set to those of +.IR src . + + If an error occurs, return +NULL and set a libelf error code. + +.SH SEE ALSO +.BR elf_errno (3), +.BR elf_getdata (3), +.BR elf_rawdata (3), +.BR libelf (3), +.BR elf (5) + +.SH ATTRIBUTES +For an explanation of the terms used in this section, see +.BR attributes (7). +.TS +allbox; +lbx lb lb +l l l. +Interface Attribute Value +T{ +.na +.nh +.BR elf32_xlatetom (), +.BR elf64_xlatetom (), +.BR elf32_xlatetof (), +.BR elf64_xlatetof () +T} Thread safety MT-Safe +.TE + +.SH REPORTING BUGS +Report bugs to <elfutils-devel@sourceware.org> or https://sourceware.org/bugzilla/. diff --git a/doc/elf64_xlatetof.3 b/doc/elf64_xlatetof.3 new file mode 100644 index 00000000..47ecda27 --- /dev/null +++ b/doc/elf64_xlatetof.3 @@ -0,0 +1 @@ +.so man3/elf32_xlatetom.3 diff --git a/doc/elf64_xlatetom.3 b/doc/elf64_xlatetom.3 new file mode 100644 index 00000000..47ecda27 --- /dev/null +++ b/doc/elf64_xlatetom.3 @@ -0,0 +1 @@ +.so man3/elf32_xlatetom.3 -- 2.46.2