[2/9] doc: Add elf32_fsize.3 and elf64_fsize.3
Commit Message
Signed-off-by: Aaron Merey <amerey@redhat.com>
---
doc/elf32_fsize.3 | 59 +++++++++++++++++++++++++++++++++++++++++++++++
doc/elf64_fsize.3 | 59 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 118 insertions(+)
create mode 100644 doc/elf32_fsize.3
create mode 100644 doc/elf64_fsize.3
Comments
Hi Aaron,
On Wed, 2024-08-14 at 17:33 -0400, Aaron Merey wrote:
> Signed-off-by: Aaron Merey <amerey@redhat.com>
> ---
> doc/elf32_fsize.3 | 59 +++++++++++++++++++++++++++++++++++++++++++++++
> doc/elf64_fsize.3 | 59 +++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 118 insertions(+)
> create mode 100644 doc/elf32_fsize.3
> create mode 100644 doc/elf64_fsize.3
>
> diff --git a/doc/elf32_fsize.3 b/doc/elf32_fsize.3
> new file mode 100644
> index 00000000..ea86157f
> --- /dev/null
> +++ b/doc/elf32_fsize.3
> @@ -0,0 +1,59 @@
> +.TH ELF32_FSIZE 3 2024-08-14 "Libelf" "Libelf Programmer's Manual"
> +
> +.SH NAME
> +elf32_fsize \- calculate the file size of various ELF32 data structures
> +
> +.SH SYNOPSIS
> +.B #include <libelf.h>
> +
> +.BI "size_t elf32_fsize(Elf_Type " type ", size_t " count ", unsigned int " version ");"
> +
> +.SH DESCRIPTION
> +Calculate the file size in bytes of various ELF32 data structures,
> +given their type and count.
Maybe try rewording not using the exact names in the function
declaration?
"Given an Elf_Type representation of core Elf structures and the number
of items (and the ELF version) returns the number of bytes needed for
the on-disk representation in a 32-bit ELF file."?
Also you should probably note that this libelf implementation relies on
the in-memory representation being the same size as the on-disk
representation.
Maybe give at least some examples of Elf_Type and which data structure
they represent? ELF_T_ADDR (32 bit address), ELF_T_EHDR (Elf32_Ehdr),
etc.
And mention that elf_getdata will set the Elf_Data d_type to the
Elf_Type of the section?
> +.SH PARAMETERS
> +.TP
> +.I type
> +The ELF32 data structure type for which the file size is to be calculated. See
> +.BR libelf.h
> +for a list of valid
> +.BR Elf_Type
Should we have a libelf man page instead that describes these data
structures?
> +values.
> +
> +.TP
> +.I count
> +The number of elements of the specified type.
> +
> +.TP
> +.I version
> +The ELF version. This should be set to
> +.B EV_CURRENT.
Yeah, maybe explicitly say that this is the only valid value.
> +.SH RETURN VALUE
> +The size in bytes of the specified count and type of data structure. If an error occurs,
> +return 0 and set a libelf error code.
Maybe explicitly say what an error is?
version != EV_CURRENT or type isn't a valid Elf_Type.
I also note that the result will overflow if
count > SIZE_MAX / elf32_fsize(type, 1, 1)
But doesn't produce an error (should it?)
> +.SH SEE ALSO
> +.BR elf_errno (3),
> +.BR elf64_fsize (3),
> +.BR libelf (3),
Aha, you are already referencing it. But it doesn't exist yet?
> +.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_fsize ()
> +T} Thread safety MT-Safe
> +.TE
> +
> +.SH REPORTING BUGS
> +Report bugs to <elfutils-devel@sourceware.org> or https://sourceware.org/bugzilla/.
Cheers,
Mark
new file mode 100644
@@ -0,0 +1,59 @@
+.TH ELF32_FSIZE 3 2024-08-14 "Libelf" "Libelf Programmer's Manual"
+
+.SH NAME
+elf32_fsize \- calculate the file size of various ELF32 data structures
+
+.SH SYNOPSIS
+.B #include <libelf.h>
+
+.BI "size_t elf32_fsize(Elf_Type " type ", size_t " count ", unsigned int " version ");"
+
+.SH DESCRIPTION
+Calculate the file size in bytes of various ELF32 data structures,
+given their type and count.
+
+.SH PARAMETERS
+.TP
+.I type
+The ELF32 data structure type for which the file size is to be calculated. See
+.BR libelf.h
+for a list of valid
+.BR Elf_Type
+values.
+
+.TP
+.I count
+The number of elements of the specified type.
+
+.TP
+.I version
+The ELF version. This should be set to
+.B EV_CURRENT.
+
+.SH RETURN VALUE
+The size in bytes of the specified count and type of data structure. If an error occurs,
+return 0 and set a libelf error code.
+
+.SH SEE ALSO
+.BR elf_errno (3),
+.BR elf64_fsize (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_fsize ()
+T} Thread safety MT-Safe
+.TE
+
+.SH REPORTING BUGS
+Report bugs to <elfutils-devel@sourceware.org> or https://sourceware.org/bugzilla/.
new file mode 100644
@@ -0,0 +1,59 @@
+.TH ELF64_FSIZE 3 2024-08-14 "Libelf" "Libelf Programmer's Manual"
+
+.SH NAME
+elf64_fsize \- calculate the file size of various ELF64 data structures
+
+.SH SYNOPSIS
+.B #include <libelf.h>
+
+.BI "size_t elf64_fsize(Elf_Type " type ", size_t " count ", unsigned int " version ");"
+
+.SH DESCRIPTION
+Calculate the file size in bytes of various ELF64 data structures,
+given their type and count.
+
+.SH PARAMETERS
+.TP
+.I type
+The ELF64 data structure type for which the file size is to be calculated. See
+.BR libelf.h
+for a list of valid
+.BR Elf_Type
+values.
+
+.TP
+.I count
+The number of elements of the specified type.
+
+.TP
+.I version
+The ELF version. This should be set to
+.B EV_CURRENT.
+
+.SH RETURN VALUE
+The size in bytes of the specified count and type of data structure. If an error occurs,
+return 0 and set a libelf error code.
+
+.SH SEE ALSO
+.BR elf_errno (3),
+.BR elf32_fsize (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 elf64_fsize ()
+T} Thread safety MT-Safe
+.TE
+
+.SH REPORTING BUGS
+Report bugs to <elfutils-devel@sourceware.org> or https://sourceware.org/bugzilla/.