gelf_getsym.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_GETSYM 3 29 .Sh NAME 30 .Nm gelf_getsym , 31 .Nm gelf_update_sym 32 .Nd read and update symbol information 33 .Sh LIBRARY 34 .Lb libelf 35 .Sh SYNOPSIS 36 .In gelf.h 37 .Ft "GElf_Sym *" 38 .Fn gelf_getsym "Elf_Data *data" "int ndx" "GElf_Sym *sym" 39 .Ft int 40 .Fn gelf_update_sym "Elf_Data *data" "int ndx" "GElf_Sym *sym" 41 .Sh DESCRIPTION 42 These convenience functions are used to retrieve and update class-dependent 43 .Vt Elf32_Sym 44 and 45 .Vt Elf64_Sym 46 structures in an ELF object. 47 .Pp 48 Argument 49 .Ar data 50 is an 51 .Vt Elf_Data 52 descriptor associated with a section of type 53 .Dv SHT_SYMTAB , 54 .Dv SHT_DYNSYM 55 or 56 .Dv SHT_GNU_versym . 57 Argument 58 .Ar ndx 59 is the index of the symbol being retrieved or updated. 60 The class-independent 61 .Vt GElf_Sym 62 structure is described in 63 .Xr gelf 3 . 64 .Pp 65 Function 66 .Fn gelf_getsym 67 retrieves class-dependent symbol information at index 68 .Ar ndx 69 in data buffer 70 .Ar data 71 and copies it to the destination pointed to by argument 72 .Ar sym 73 after translation to class-independent form. 74 .Pp 75 Function 76 .Fn gelf_update_sym 77 converts the class-independent symbol information pointed to 78 by argument 79 .Ar sym 80 to class-dependent form, and writes it to the symbol entry at index 81 .Ar ndx 82 in the data buffer described by argument 83 .Ar data . 84 Function 85 .Fn gelf_update_sym 86 signals an error if any of the values in the class-independent 87 representation exceeds the representable limits of the target 88 type. 89 .Sh RETURN VALUES 90 Function 91 .Fn gelf_getsym 92 returns the value of argument 93 .Ar sym 94 if successful, or NULL in case of an error. 95 Function 96 .Fn gelf_update_sym 97 returns a non-zero value if successful, or zero in case of an error. 98 .Sh ERRORS 99 These functions may fail with the following errors: 100 .Bl -tag -width "[ELF_E_RESOURCE]" 101 .It Bq Er ELF_E_ARGUMENT 102 Arguments 103 .Ar data 104 or 105 .Ar sym 106 were NULL. 107 .It Bq Er ELF_E_ARGUMENT 108 Argument 109 .Ar ndx 110 was less than zero or larger than the number of symbols in the data 111 descriptor. 112 .It Bq Er ELF_E_ARGUMENT 113 Data descriptor 114 .Ar data 115 was not associated with a section containing symbol information. 116 .It Bq Er ELF_E_RANGE 117 A value was not representable in the target type. 118 .El 119 .Sh SEE ALSO 120 .Xr elf 3 , 121 .Xr elf_getdata 3 , 122 .Xr elf_getscn 3 , 123 .Xr gelf 3 , 124 .Xr gelf_getsyminfo 3 , 125 .Xr gelf_update_syminfo 3