/ external / libelf / gelf_update_ehdr.3
gelf_update_ehdr.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 27, 2006
 27  .Os
 28  .Dt GELF_UPDATE_EHDR 3
 29  .Sh NAME
 30  .Nm gelf_update_ehdr ,
 31  .Nm gelf_update_phdr ,
 32  .Nm gelf_update_shdr
 33  .Nd update underlying ELF data structures
 34  .Sh LIBRARY
 35  .Lb libelf
 36  .Sh SYNOPSIS
 37  .In gelf.h
 38  .Ft int
 39  .Fn gelf_update_ehdr "Elf *elf" "GElf_Ehdr *ehdr"
 40  .Ft int
 41  .Fn gelf_update_phdr "Elf *elf" "int ndx" "GElf_Phdr *phdr"
 42  .Ft int
 43  .Fn gelf_update_shdr "Elf_Scn *scn" "GElf_Shdr *shdr"
 44  .Sh DESCRIPTION
 45  These functions are used to update ELF data structures on the underlying
 46  ELF descriptor.
 47  Class-dependent data structures in the underlying ELF descriptor
 48  are updated using the data in the class-independent GElf descriptors
 49  and the underlying ELF data structures are marked
 50  .Dq dirty .
 51  The conversion process signals an error if the values being copied
 52  to the target ELF data structure would exceed representation
 53  limits.
 54  GElf descriptors are described in
 55  .Xr gelf 3 .
 56  .Pp
 57  Function
 58  .Fn gelf_update_ehdr
 59  updates the ELF Executable Header with the values in the
 60  class-independent executable header
 61  .Ar ehdr .
 62  .Pp
 63  Function
 64  .Fn gelf_update_phdr
 65  updates the ELF Program Header structure at index
 66  .Ar ndx
 67  with the values in the class-independent program header
 68  .Ar phdr .
 69  .Pp
 70  Function
 71  .Fn gelf_update_shdr
 72  updates the ELF Section Header structure associated with section
 73  descriptor
 74  .Ar scn
 75  with the values in argument
 76  .Ar shdr .
 77  .Sh RETURN VALUES
 78  These functions return a non-zero integer on success, or zero in case
 79  of an error.
 80  .Sh ERRORS
 81  These functions may fail with the following errors:
 82  .Bl -tag -width "[ELF_E_RESOURCE]"
 83  .It Bq Er ELF_E_ARGUMENT
 84  Arguments
 85  .Ar elf ,
 86  .Ar ehdr ,
 87  .Ar phdr ,
 88  .Ar scn ,
 89  or
 90  .Ar shdr
 91  were NULL.
 92  .It Bq Er ELF_E_ARGUMENT
 93  Argument
 94  .Ar elf
 95  was not a descriptor for an ELF object.
 96  .It Bq Er ELF_E_ARGUMENT
 97  Argument
 98  .Ar elf
 99  had an unsupported ELF class.
100  .It Bq Er ELF_E_ARGUMENT
101  Argument
102  .Ar ndx
103  exceeded the number of entries in the program header table.
104  .It Bq Er ELF_E_ARGUMENT
105  Section descriptor
106  .Ar scn
107  was not associated with an ELF descriptor.
108  .It Bq Er ELF_E_MODE
109  ELF descriptor
110  .Ar elf
111  was not opened for writing or updating.
112  .It Bq Er ELF_E_RESOURCE
113  An out of memory condition was detected.
114  .El
115  .Sh SEE ALSO
116  .Xr elf 3 ,
117  .Xr elf_flagelf 3 ,
118  .Xr elf_flagphdr 3 ,
119  .Xr elf_flagshdr 3 ,
120  .Xr gelf 3 ,
121  .Xr gelf_getehdr 3 ,
122  .Xr gelf_getphdr 3 ,
123  .Xr gelf_getshdr 3