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