Signed-off-by: Aaron Merey <ame...@redhat.com>
---
 doc/Makefile.am    |  1 +
 doc/elf_getident.3 | 89 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 90 insertions(+)
 create mode 100644 doc/elf_getident.3

diff --git a/doc/Makefile.am b/doc/Makefile.am
index 8afda0bd..d3fd9a49 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -67,6 +67,7 @@ notrans_dist_man3_MANS= elf32_checksum.3 \
                        elf_getbase.3 \
                        elf_getdata.3 \
                        elf_getdata_rawchunk.3 \
+                       elf_getident.3 \
                        elf_getscn.3 \
                        elf_hash.3 \
                        elf_kind.3 \
diff --git a/doc/elf_getident.3 b/doc/elf_getident.3
new file mode 100644
index 00000000..07f70b80
--- /dev/null
+++ b/doc/elf_getident.3
@@ -0,0 +1,89 @@
+.TH ELF_GETIDENT 3 2025-06-30 "Libelf" "Libelf Programmer's Manual"
+
+.SH NAME
+elf_getident \- return the ELF identification bytes
+.SH SYNOPSIS
+.nf
+#include <libelf.h>
+
+.B char * elf_getident("Elf *elf", "size_t *ptr");
+.fi
+.SH DESCRIPTION
+The
+.BR elf_getident ()
+function returns a pointer to the 16-byte ELF identification array
+from the ELF header of the given descriptor
+.IR elf .
+
+This identification data begins with the magic number `\fB\\177ELF\fR`
+and includes the class, data encoding, ELF version, OS ABI, and ABI
+version fields. It corresponds to the first
+.B EI_NIDENT
+bytes of the ELF header, typically accessed via the
+.B e_ident
+field of either
+.B Elf32_Ehdr
+or
+.B Elf64_Ehdr .
+
+If
+.I elf
+is a valid descriptor for an ELF object, the function returns a pointer to
+the internal buffer containing the header's identification bytes. The buffer
+is owned by the library and must not be modified or freed by the caller.
+
+If
+.I ptr
+is not NULL, the function sets
+.*ptr
+to
+.B EI_NIDENT
+(16), the length in bytes of the returned identifier.
+
+.SH PARAMETERS
+.TP
+.I elf
+Pointer to an
+.B Elf
+descriptor referring to a valid ELF object.  If the descriptor does not
+represent an ELF file (e.g., is an archive), NULL is returned.
+
+.TP
+.I ptr
+Optional pointer to a
+.B size_t
+variable. If non-NULL, it will be set to the length of the returned buffer
+(always EI_NIDENT on success, 0 on failure).
+
+.SH RETURN VALUE
+Returns a pointer to the internal 16-byte
+.B e_ident
+buffer on success.
+
+This buffer is indexed using the
+.B EI_*
+macros found in elf.h.  See elf.h for a complete list of indexing macros.
+
+Returns NULL if
+.I elf
+is NULL or does not refer to an ELF object.
+
+.SH SEE ALSO
+.BR libelf (3),
+.BR elf (5)
+
+.SH ATTRIBUTES
+.TS
+allbox;
+lbx lb lb
+l l l.
+Interface      Attribute       Value
+T{
+.na
+.nh
+.BR elf_getident ()
+T}     Thread safety   MT-Safe
+.TE
+
+.SH REPORTING BUGS
+Report bugs to <elfutils-devel@sourceware.org> or 
https://sourceware.org/bugzilla/.
-- 
2.49.0

Reply via email to