1.\" $NetBSD: gelf_checksum.3,v 1.2 2014/03/09 16:58:04 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 189 2008-07-20 10:38:08Z jkoshy 27.\" 28.Dd August 29, 2006 29.Os 30.Dt GELF_CHECKSUM 3 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.Ar 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.Ar elf 60of class 61.Dv ELFCLASS32 . 62.Pp 63Function 64.Fn elf64_checksum 65returns a checksum for an ELF descriptor 66.Ar 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.Ar 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.Ar elf 84was NULL. 85.It Bq Er ELF_E_ARGUMENT 86Argument 87.Ar elf 88was not a descriptor for an ELF file. 89.It Bq Er ELF_E_ARGUMENT 90The ELF descriptor 91.Ar elf 92was not opened for reading or updating. 93.It Bq Er ELF_E_CLASS 94For functions 95.Fn elf32_checksum 96and 97.Fn elf64_checksum , 98ELF descriptor 99.Ar elf 100did not match the class of the called function. 101.It Bq Er ELF_E_HEADER 102The ELF object specified by argument 103.Ar elf 104had a malformed executable header. 105.It Bq Er ELF_E_RESOURCE 106An out of memory condition was detected during processing. 107.It Bq Er ELF_E_SECTION 108The ELF object specified by argument 109.Ar elf 110contained a section with a malformed section header. 111.It Bq Er ELF_E_VERSION 112The ELF object was of an unsupported version. 113.El 114.Sh SEE ALSO 115.Xr strip 1 , 116.Xr elf 3 , 117.Xr gelf 3 118