Signed-off-by: Aaron Merey <ame...@redhat.com> --- v2: Mention elf arg may be NULL.
On Wed, Apr 30, 2025 at 1:18 PM Mark Wielaard <m...@klomp.org> wrote: > > So we do have a tiny elf_begin.3 man page, but it doesn't really > describe anything. The above seems a technically correct description of > ELF descriptor internal reference counting, but I am not sure it makes > sense without a full description of elf_begin. I'll post a patch updating elf_begin.3. Aaron doc/Makefile.am | 1 + doc/elf_end.3 | 71 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 doc/elf_end.3 diff --git a/doc/Makefile.am b/doc/Makefile.am index b75711ca..dee77214 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -51,6 +51,7 @@ notrans_dist_man3_MANS= elf32_checksum.3 \ elf64_xlatetom.3 \ elf_begin.3 \ elf_clone.3 \ + elf_end.3 \ elf_errmsg.3 \ elf_errno.3 \ elf_getdata.3 \ diff --git a/doc/elf_end.3 b/doc/elf_end.3 new file mode 100644 index 00000000..48900edc --- /dev/null +++ b/doc/elf_end.3 @@ -0,0 +1,71 @@ +.TH ELF_END 3 2025-03-31 "Libelf" "Libelf Programmer's Manual" + +.SH NAME +elf_end \- Release resources associated with an ELF descriptor. + +.SH SYNOPSIS +.nf +#include <libelf.h> + +.BI "int elf_end(Elf *" elf ");" + +.SH DESCRIPTION +The +.B elf_end +function releases resources associated with an ELF descriptor previously +returned by +.BR elf_begin . +It decrements the ELF descriptor’s internal reference count by one. When +this count reaches zero, the resources associated with the descriptor are +freed and the descriptor is invalidated. If +.I elf +is not an archive member with ELF kind +.BR ELF_K_AR , +the internal reference count is increased by one each time +.I elf +is passed to +.B elf_begin +as the +.I ref +argument. + +An ELF descriptor whose reference count reaches zero is invalidated. +Further operations on the descriptor will result in undefined behavior. + +.SH PARAMETERS +.TP +.I elf +The ELF descriptor (may be NULL). + +.SH RETURN VALUE +Return the ELF descriptor's current internal reference count after +decrementing. A return value of zero indicates the ELF descriptor is now +invalidated. If +.I elf +is NULL, then +.B elf_end +also returns 0. + +.SH SEE ALSO +.BR elf_begin (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 elf_end () +T} Thread safety MT-Safe +.TE + +.SH REPORTING BUGS +Report bugs to <elfutils-devel@sourceware.org> or https://sourceware.org/bugzilla/. + -- 2.49.0