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