xref: /netbsd-src/external/bsd/elftoolchain/dist/libelf/gelf_checksum.3 (revision 5ac3bc719ce6e70593039505b491894133237d12)
1.\"	$NetBSD: gelf_checksum.3,v 1.6 2024/03/03 17:37:33 christos Exp $
2.\"
3.\" Copyright (c) 2006,2008 Joseph Koshy.  All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\"    notice, this list of conditions and the following disclaimer.
10.\" 2. Redistributions in binary form must reproduce the above copyright
11.\"    notice, this list of conditions and the following disclaimer in the
12.\"    documentation and/or other materials provided with the distribution.
13.\"
14.\" This software is provided by Joseph Koshy ``as is'' and
15.\" any express or implied warranties, including, but not limited to, the
16.\" implied warranties of merchantability and fitness for a particular purpose
17.\" are disclaimed.  in no event shall Joseph Koshy be liable
18.\" for any direct, indirect, incidental, special, exemplary, or consequential
19.\" damages (including, but not limited to, procurement of substitute goods
20.\" or services; loss of use, data, or profits; or business interruption)
21.\" however caused and on any theory of liability, whether in contract, strict
22.\" liability, or tort (including negligence or otherwise) arising in any way
23.\" out of the use of this software, even if advised of the possibility of
24.\" such damage.
25.\"
26.\" Id: gelf_checksum.3 3958 2022-03-12 14:31:32Z jkoshy
27.\"
28.Dd August 29, 2006
29.Dt GELF_CHECKSUM 3
30.Os
31.Sh NAME
32.Nm elf32_checksum ,
33.Nm elf64_checksum ,
34.Nm gelf_checksum
35.Nd return the checksum of an ELF object
36.Sh LIBRARY
37.Lb libelf
38.Sh SYNOPSIS
39.In libelf.h
40.Ft long
41.Fn elf32_checksum "Elf *elf"
42.Ft long
43.Fn elf64_checksum "Elf *elf"
44.In gelf.h
45.Ft long
46.Fn gelf_checksum "Elf *elf"
47.Sh DESCRIPTION
48These functions return a simple checksum of the ELF object described
49by their argument
50.Fa elf .
51The checksum is computed in way that allows its value to remain
52unchanged in presence of modifications to the ELF object by utilities
53like
54.Xr strip 1 .
55.Pp
56Function
57.Fn elf32_checksum
58returns a checksum for an ELF descriptor
59.Fa elf
60of class
61.Dv ELFCLASS32 .
62.Pp
63Function
64.Fn elf64_checksum
65returns a checksum for an ELF descriptor
66.Fa elf
67of class
68.Dv ELFCLASS64 .
69.Pp
70Function
71.Fn gelf_checksum
72provides a class-independent way retrieving the checksum
73for ELF object
74.Fa elf .
75.Sh RETURN VALUES
76These functions return the checksum of the ELF object, or zero in case
77an error was encountered.
78.Sh ERRORS
79These functions may fail with the following errors:
80.Bl -tag -width "[ELF_E_RESOURCE]"
81.It Bq Er ELF_E_ARGUMENT
82Argument
83.Fa elf
84was
85.Dv NULL .
86.It Bq Er ELF_E_ARGUMENT
87Argument
88.Fa elf
89was not a descriptor for an ELF file.
90.It Bq Er ELF_E_ARGUMENT
91The ELF descriptor
92.Fa elf
93was not opened for reading or updating.
94.It Bq Er ELF_E_CLASS
95For functions
96.Fn elf32_checksum
97and
98.Fn elf64_checksum ,
99ELF descriptor
100.Fa elf
101did not match the class of the called function.
102.It Bq Er ELF_E_HEADER
103The ELF object specified by argument
104.Fa elf
105had a malformed executable header.
106.It Bq Er ELF_E_RESOURCE
107An out of memory condition was detected during processing.
108.It Bq Er ELF_E_SECTION
109The ELF object specified by argument
110.Fa elf
111contained a section with a malformed section header.
112.It Bq Er ELF_E_VERSION
113The ELF object was of an unsupported version.
114.El
115.Sh SEE ALSO
116.Xr strip 1 ,
117.Xr elf 3 ,
118.Xr gelf 3
119