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