Lines Matching +full:in +full:- +full:application

1 .\" Copyright (c) 2006-2008,2011,2019 Joseph Koshy.  All rights reserved.
3 .\" Redistribution and use in source and binary forms, with or without
8 .\" 2. Redistributions in binary form must reproduce the above copyright
9 .\" notice, this list of conditions and the following disclaimer in the
15 .\" are disclaimed. in no event shall Joseph Koshy be liable
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
24 .\" $Id: elf.3 3743 2019-06-12 19:36:30Z jkoshy $
39 provides functions that allow an application to read and manipulate
43 The library allows the manipulation of ELF objects in a byte ordering
44 and word-size independent way, allowing an application to read and
45 create ELF objects for 32 and 64 bit architectures and for little-
46 and big-endian machines.
50 This manual page serves to provide an overview of the functionality in
52 Further information may found in the manual pages for individual
56 As described in
58 ELF files contain several data structures that are laid out in a
64 and optional data in the form of ELF
68 describes the content of the data in these sections.
85 for little-endian architectures and
87 for big-endian architectures.
101 An application would work with ELF data in its
104 by the processor the application is running on.
120 It also provides higher-level APIs
123 that retrieve and store data from the ELF object in a class-agnostic
127 application using the ELF library to manipulate ELF objects:
128 .Bl -bullet -compact -offset indent
130 The ELF version that the application was compiled against.
131 This version determines the ABI expected by the application.
134 application through the ELF library.
140 the ELF library requires the application to call the
142 function before invoking many of its operations, in order to inform
143 the library of the application's desired working version.
149 .Bl -tag -width "ELF_F_*"
151 Used for class-independent functions.
157 Used for class-independent data types.
159 Used for command values used in a few functions.
179 that can be present in an ELF object.
190 .Bl -tag -width ".Vt Elf_Data"
211 Given an ELF descriptor, the application may retrieve the ELF
212 object's class-dependent
242 application.
247 represented in memory.
248 It has the following application-visible members:
249 .Bl -tag -width ".Vt unsigned int d_version" -compact
251 The in-file alignment of the data buffer within its containing ELF section.
252 This value must be non-zero and a power of two.
254 A pointer to data in memory.
258 This field will be computed by the library unless the application
261 The number of bytes of data in this descriptor.
263 The ELF type (see below) of the data in this descriptor.
265 The operating version for the data in this buffer.
269 descriptors are usually used in conjunction with
274 descriptors represent sections in an ELF object.
275 These descriptors are opaque and contain no application modifiable
280 descriptor for a specific section in an ELF object can be
284 The sections contained in an ELF object can be traversed using the
303 representation of data in a section can be retrieved using the
310 .Bl -tag -width ".Dv ELF_T_SYMINFO" -compact
319 Records used in a section of type
324 GNU-style hash tables.
326 16-bit unsigned words.
346 Signed 32-bit words.
348 Signed 64-bit words.
358 Unsigned 32-bit words.
360 Unsigned 64-bit words.
368 defined in
371 .Bl -column ".Dv SHT_PREINIT_ARRAY" ".Dv ELF_T_SYMINFO"
380 .It Dv SHT_GNU_LIBLIST Ta Dv ELF_T_WORD Ta List of libraries to be pre-linked.
393 .It Dv SHT_PREINIT_ARRAY Ta Dv ELF_T_ADDR Ta Pre-initialization function pointers.
420 Section types in the range
428 Each function listed here is described further in its own manual page.
429 .Bl -tag -width indent
431 .Bl -tag -compact -width indent
448 .Bl -tag -compact -width indent
462 Iterate through the sections in an ELF object.
468 Retrieve the Executable Header in an ELF object.
470 Retrieve the Program Header Table in an ELF object.
476 Allocate an Executable Header in an ELF object.
478 Allocate or resize the Program Header Table in an ELF object.
481 .Bl -tag -compact -width indent
490 .Bl -tag -compact -width indent
497 .Bl -tag -compact -width indent
507 archive or ELF object present in a memory arena.
512 .Bl -tag -width ".Fn elf_setshstrndx" -compact
520 Mark the ELF Executable Header in an ELF descriptor as dirty.
522 Mark the ELF Program Header Table in an ELF descriptor as dirty.
536 .Bl -tag -width ".Fn elf_getshstrndx" -compact
542 Retrieve the number of program headers in an ELF object.
544 Retrieve the number of sections in an ELF object.
546 Retrieve the section index of the section name string table in
560 application.
562 However, if the application wishes to take complete charge of the
568 specified by the application when laying out the file.
569 Application control of file layout is described further in the
573 Gaps in between sections will be filled with the fill character
580 The application can check the
594 Thus the application must not call
600 As an example, an application may call
622 The current implementation of the API appeared in