gelf_checksum.3
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$ 25 .\" 26 .Dd August 29, 2006 27 .Os 28 .Dt GELF_CHECKSUM 3 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 46 These functions return a simple checksum of the ELF object described 47 by their argument 48 .Ar elf . 49 The checksum is computed in way that allows its value to remain 50 unchanged in presence of modifications to the ELF object by utilities 51 like 52 .Xr strip 1 . 53 .Pp 54 Function 55 .Fn elf32_checksum 56 returns a checksum for an ELF descriptor 57 .Ar elf 58 of class 59 .Dv ELFCLASS32 . 60 .Pp 61 Function 62 .Fn elf64_checksum 63 returns a checksum for an ELF descriptor 64 .Ar elf 65 of class 66 .Dv ELFCLASS64 . 67 .Pp 68 Function 69 .Fn gelf_checksum 70 provides a class-independent way retrieving the checksum 71 for ELF object 72 .Ar elf . 73 .Sh RETURN VALUES 74 These functions return the checksum of the ELF object, or zero in case 75 an error was encountered. 76 .Sh ERRORS 77 These functions may fail with the following errors: 78 .Bl -tag -width "[ELF_E_RESOURCE]" 79 .It Bq Er ELF_E_ARGUMENT 80 Argument 81 .Ar elf 82 was NULL. 83 .It Bq Er ELF_E_ARGUMENT 84 Argument 85 .Ar elf 86 was not a descriptor for an ELF file. 87 .It Bq Er ELF_E_ARGUMENT 88 The ELF descriptor 89 .Ar elf 90 was not opened for reading or updating. 91 .It Bq Er ELF_E_CLASS 92 For functions 93 .Fn elf32_checksum 94 and 95 .Fn elf64_checksum , 96 ELF descriptor 97 .Ar elf 98 did not match the class of the called function. 99 .It Bq Er ELF_E_HEADER 100 The ELF object specified by argument 101 .Ar elf 102 had a malformed executable header. 103 .It Bq Er ELF_E_RESOURCE 104 An out of memory condition was detected during processing. 105 .It Bq Er ELF_E_SECTION 106 The ELF object specified by argument 107 .Ar elf 108 contained a section with a malformed section header. 109 .It Bq Er ELF_E_VERSION 110 The 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