Hi Aaron,

On Wed, Aug 14, 2024 at 05:33:16PM -0400, Aaron Merey wrote:
> diff --git a/doc/elf32_getphdr.3 b/doc/elf32_getphdr.3
> new file mode 100644
> index 00000000..7245f81b
> --- /dev/null
> +++ b/doc/elf32_getphdr.3
> @@ -0,0 +1,45 @@
> +.TH ELF32_GETPHDR 3 2024-08-14 "Libelf" "Libelf Programmer's Manual"
> +
> +.SH NAME
> +elf32_getphdr \- retrieve the program header table for an ELF32 object file
> +
> +.SH SYNOPSIS
> +.B #include <libelf.h>
> +
> +.BI "Elf32_Phdr *elf32_getphdr(Elf *" elf ");"
> +
> +.SH DESCRIPTION
> +Retrieve the program header table for the given ELF descriptor
> +.I elf.

This should expain what the elements of the table are and how to know
how many elements it has. Calling elf_getphdrnum will give you the
number of elements. When changing an element you have to call
elf_flagphdr with ELF_C_SET ELF_F_DIRTY to write the (new) data out to
disk. To change the size of the table (or to delete it) one has to
call elf32_newphdr.

> +.SH PARAMETERS
> +.TP
> +.I elf
> +ELF descriptor from which to retrieve the program header table.
> +
> +.SH RETURN VALUE
> +On success, return a pointer to the program header table. On failure, return 
> NULL and set a libelf error code.

Note that NULL is also returned if there is no program header (or
would be zero size).

> +
> +.SH SEE ALSO
> +.BR elf_errno (3),
> +.BR elf64_getphdr (3),
> +.BR libelf (3),
> +.BR elf (5)

Add elf_getphdrnum and elf32_newphdr.

> +.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_getphdr ()
> +T}   Thread safety   MT-Safe
> +.TE
> +
> +.SH REPORTING BUGS
> +Report bugs to <elfutils-devel@sourceware.org> or 
> https://sourceware.org/bugzilla/.

Cheers,

Mark

Reply via email to