<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>rpm: file/src/readelf.h Source File</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.4.7 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li id="current"><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul></div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul></div> <h1>file/src/readelf.h</h1><a href="readelf_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span> <a name="l00002"></a>00002 <span class="comment"> * Copyright (c) Christos Zoulas 2003.</span> <a name="l00003"></a>00003 <span class="comment"> * All Rights Reserved.</span> <a name="l00004"></a>00004 <span class="comment"> * </span> <a name="l00005"></a>00005 <span class="comment"> * Redistribution and use in source and binary forms, with or without</span> <a name="l00006"></a>00006 <span class="comment"> * modification, are permitted provided that the following conditions</span> <a name="l00007"></a>00007 <span class="comment"> * are met:</span> <a name="l00008"></a>00008 <span class="comment"> * 1. Redistributions of source code must retain the above copyright</span> <a name="l00009"></a>00009 <span class="comment"> * notice immediately at the beginning of the file, without modification,</span> <a name="l00010"></a>00010 <span class="comment"> * this list of conditions, and the following disclaimer.</span> <a name="l00011"></a>00011 <span class="comment"> * 2. Redistributions in binary form must reproduce the above copyright</span> <a name="l00012"></a>00012 <span class="comment"> * notice, this list of conditions and the following disclaimer in the</span> <a name="l00013"></a>00013 <span class="comment"> * documentation and/or other materials provided with the distribution.</span> <a name="l00014"></a>00014 <span class="comment"> * </span> <a name="l00015"></a>00015 <span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND</span> <a name="l00016"></a>00016 <span class="comment"> * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE</span> <a name="l00017"></a>00017 <span class="comment"> * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE</span> <a name="l00018"></a>00018 <span class="comment"> * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR</span> <a name="l00019"></a>00019 <span class="comment"> * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL</span> <a name="l00020"></a>00020 <span class="comment"> * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS</span> <a name="l00021"></a>00021 <span class="comment"> * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)</span> <a name="l00022"></a>00022 <span class="comment"> * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT</span> <a name="l00023"></a>00023 <span class="comment"> * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY</span> <a name="l00024"></a>00024 <span class="comment"> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF</span> <a name="l00025"></a>00025 <span class="comment"> * SUCH DAMAGE.</span> <a name="l00026"></a>00026 <span class="comment"> */</span> <a name="l00027"></a>00027 <span class="comment">/*</span> <a name="l00028"></a>00028 <span class="comment"> * @(#)Id: readelf.h,v 1.9 2002/05/16 18:45:56 christos Exp</span> <a name="l00029"></a>00029 <span class="comment"> *</span> <a name="l00030"></a>00030 <span class="comment"> * Provide elf data structures for non-elf machines, allowing file</span> <a name="l00031"></a>00031 <span class="comment"> * non-elf hosts to determine if an elf binary is stripped.</span> <a name="l00032"></a>00032 <span class="comment"> * Note: cobbled from the linux header file, with modifications</span> <a name="l00033"></a>00033 <span class="comment"> */</span> <a name="l00034"></a>00034 <span class="preprocessor">#ifndef __fake_elf_h__</span> <a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#define __fake_elf_h__</span> <a name="l00036"></a>00036 <span class="preprocessor"></span> <a name="l00037"></a>00037 <span class="preprocessor">#if HAVE_STDINT_H</span> <a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#include <stdint.h></span> <a name="l00039"></a>00039 <span class="preprocessor">#endif</span> <a name="l00040"></a>00040 <span class="preprocessor"></span> <a name="l00041"></a><a class="code" href="readelf_8h.html#40c6d4571e6001f443cc6a6474620158">00041</a> <span class="keyword">typedef</span> uint32_t <a class="code" href="readelf_8h.html#40c6d4571e6001f443cc6a6474620158">Elf32_Addr</a>; <a name="l00042"></a><a class="code" href="readelf_8h.html#655751f9b317369b93c581ea8ed84516">00042</a> <span class="keyword">typedef</span> uint32_t <a class="code" href="readelf_8h.html#655751f9b317369b93c581ea8ed84516">Elf32_Off</a>; <a name="l00043"></a><a class="code" href="readelf_8h.html#2ff0787d7d1bae0f251192806a2974ca">00043</a> <span class="keyword">typedef</span> uint16_t <a class="code" href="readelf_8h.html#2ff0787d7d1bae0f251192806a2974ca">Elf32_Half</a>; <a name="l00044"></a><a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">00044</a> <span class="keyword">typedef</span> uint32_t <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a>; <a name="l00045"></a><a class="code" href="readelf_8h.html#ee09eccb7276a11b03033cd00c31e3d3">00045</a> <span class="keyword">typedef</span> uint8_t <a class="code" href="readelf_8h.html#ee09eccb7276a11b03033cd00c31e3d3">Elf32_Char</a>; <a name="l00046"></a>00046 <a name="l00047"></a>00047 <span class="preprocessor">#if SIZEOF_UINT64_T != 8</span> <a name="l00048"></a><a class="code" href="readelf_8h.html#67a982aa647d031eebeacbe6ecb719db">00048</a> <span class="preprocessor"></span><span class="preprocessor">#define USE_ARRAY_FOR_64BIT_TYPES</span> <a name="l00049"></a><a class="code" href="readelf_8h.html#1cbe0e18c022213c90aa7cb250485b5c">00049</a> <span class="preprocessor"></span><span class="keyword">typedef</span> uint32_t <a class="code" href="readelf_8h.html#1cbe0e18c022213c90aa7cb250485b5c">Elf64_Addr</a>[2]; <a name="l00050"></a><a class="code" href="readelf_8h.html#c4c2cb64a7675424d6ccc874aee57e57">00050</a> <span class="keyword">typedef</span> uint32_t <a class="code" href="readelf_8h.html#c4c2cb64a7675424d6ccc874aee57e57">Elf64_Off</a>[2]; <a name="l00051"></a><a class="code" href="readelf_8h.html#65ed514990297c551ce366174c9f59e4">00051</a> <span class="keyword">typedef</span> uint32_t <a class="code" href="readelf_8h.html#65ed514990297c551ce366174c9f59e4">Elf64_Xword</a>[2]; <a name="l00052"></a>00052 <span class="preprocessor">#else</span> <a name="l00053"></a>00053 <span class="preprocessor"></span><span class="keyword">typedef</span> uint64_t <a class="code" href="readelf_8h.html#1cbe0e18c022213c90aa7cb250485b5c">Elf64_Addr</a>; <a name="l00054"></a>00054 <span class="keyword">typedef</span> uint64_t <a class="code" href="readelf_8h.html#c4c2cb64a7675424d6ccc874aee57e57">Elf64_Off</a>; <a name="l00055"></a>00055 <span class="keyword">typedef</span> uint64_t <a class="code" href="readelf_8h.html#65ed514990297c551ce366174c9f59e4">Elf64_Xword</a>; <a name="l00056"></a>00056 <span class="preprocessor">#endif</span> <a name="l00057"></a><a class="code" href="readelf_8h.html#db6a5584018b431da3472e7c6a7fd731">00057</a> <span class="preprocessor"></span><span class="keyword">typedef</span> uint16_t <a class="code" href="readelf_8h.html#db6a5584018b431da3472e7c6a7fd731">Elf64_Half</a>; <a name="l00058"></a><a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">00058</a> <span class="keyword">typedef</span> uint32_t <a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">Elf64_Word</a>; <a name="l00059"></a><a class="code" href="readelf_8h.html#c0db0313579cf868fd3434b877b780bd">00059</a> <span class="keyword">typedef</span> uint8_t <a class="code" href="readelf_8h.html#c0db0313579cf868fd3434b877b780bd">Elf64_Char</a>; <a name="l00060"></a>00060 <a name="l00061"></a><a class="code" href="readelf_8h.html#e407130db14180c6737390604ba7c1fe">00061</a> <span class="preprocessor">#define EI_NIDENT 16</span> <a name="l00062"></a>00062 <span class="preprocessor"></span> <a name="l00063"></a><a class="code" href="structElf32__Ehdr.html">00063</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <a name="l00064"></a><a class="code" href="structElf32__Ehdr.html#3875073e3635a01d81e19888937a9c84">00064</a> <a class="code" href="readelf_8h.html#ee09eccb7276a11b03033cd00c31e3d3">Elf32_Char</a> e_ident[<a class="code" href="readelf_8h.html#e407130db14180c6737390604ba7c1fe">EI_NIDENT</a>]; <a name="l00065"></a><a class="code" href="structElf32__Ehdr.html#49e40a791813c06e3b6ebcb53aef1bb8">00065</a> <a class="code" href="readelf_8h.html#2ff0787d7d1bae0f251192806a2974ca">Elf32_Half</a> e_type; <a name="l00066"></a><a class="code" href="structElf32__Ehdr.html#19bca7faba9e5573814643efc3574c7b">00066</a> <a class="code" href="readelf_8h.html#2ff0787d7d1bae0f251192806a2974ca">Elf32_Half</a> e_machine; <a name="l00067"></a><a class="code" href="structElf32__Ehdr.html#a27627bda53281221325df4dd782e800">00067</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> e_version; <a name="l00068"></a><a class="code" href="structElf32__Ehdr.html#b8a982696048d807017919b7d0145482">00068</a> <a class="code" href="readelf_8h.html#40c6d4571e6001f443cc6a6474620158">Elf32_Addr</a> e_entry; <span class="comment">/* Entry point */</span> <a name="l00069"></a><a class="code" href="structElf32__Ehdr.html#25c36fc010284a928604aae005b67ad1">00069</a> <a class="code" href="readelf_8h.html#655751f9b317369b93c581ea8ed84516">Elf32_Off</a> e_phoff; <a name="l00070"></a><a class="code" href="structElf32__Ehdr.html#00601af5187a1b3f8babfe9cddd95c15">00070</a> <a class="code" href="readelf_8h.html#655751f9b317369b93c581ea8ed84516">Elf32_Off</a> e_shoff; <a name="l00071"></a><a class="code" href="structElf32__Ehdr.html#87cf481be7917fafde0c4ecf78c8e574">00071</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> e_flags; <a name="l00072"></a><a class="code" href="structElf32__Ehdr.html#04c658023e50479eed64f6d1b00a2504">00072</a> <a class="code" href="readelf_8h.html#2ff0787d7d1bae0f251192806a2974ca">Elf32_Half</a> e_ehsize; <a name="l00073"></a><a class="code" href="structElf32__Ehdr.html#fa2289f96d86fcc568a3b1f40cc8953e">00073</a> <a class="code" href="readelf_8h.html#2ff0787d7d1bae0f251192806a2974ca">Elf32_Half</a> e_phentsize; <a name="l00074"></a><a class="code" href="structElf32__Ehdr.html#360898812db1655f8cb8258780d9df5b">00074</a> <a class="code" href="readelf_8h.html#2ff0787d7d1bae0f251192806a2974ca">Elf32_Half</a> e_phnum; <a name="l00075"></a><a class="code" href="structElf32__Ehdr.html#b53c709a841960e499da68e2316ed428">00075</a> <a class="code" href="readelf_8h.html#2ff0787d7d1bae0f251192806a2974ca">Elf32_Half</a> e_shentsize; <a name="l00076"></a><a class="code" href="structElf32__Ehdr.html#11249bd7e61642742a68a3e7f69ac721">00076</a> <a class="code" href="readelf_8h.html#2ff0787d7d1bae0f251192806a2974ca">Elf32_Half</a> e_shnum; <a name="l00077"></a><a class="code" href="structElf32__Ehdr.html#3b3070ccd7d971e8cb6ea58d4c6fab09">00077</a> <a class="code" href="readelf_8h.html#2ff0787d7d1bae0f251192806a2974ca">Elf32_Half</a> e_shstrndx; <a name="l00078"></a>00078 } <a class="code" href="structElf32__Ehdr.html">Elf32_Ehdr</a>; <a name="l00079"></a>00079 <a name="l00080"></a><a class="code" href="structElf64__Ehdr.html">00080</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <a name="l00081"></a><a class="code" href="structElf64__Ehdr.html#995470d13a836ccfdfe8e2e9bbff3463">00081</a> <a class="code" href="readelf_8h.html#c0db0313579cf868fd3434b877b780bd">Elf64_Char</a> e_ident[<a class="code" href="readelf_8h.html#e407130db14180c6737390604ba7c1fe">EI_NIDENT</a>]; <a name="l00082"></a><a class="code" href="structElf64__Ehdr.html#031210e6571dad798c4ed66b85631d58">00082</a> <a class="code" href="readelf_8h.html#db6a5584018b431da3472e7c6a7fd731">Elf64_Half</a> e_type; <a name="l00083"></a><a class="code" href="structElf64__Ehdr.html#decc8b3641e23794f39c78f15ab8c809">00083</a> <a class="code" href="readelf_8h.html#db6a5584018b431da3472e7c6a7fd731">Elf64_Half</a> e_machine; <a name="l00084"></a><a class="code" href="structElf64__Ehdr.html#3855471cf08a9e4cd4b898e9a1e11fa4">00084</a> <a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">Elf64_Word</a> e_version; <a name="l00085"></a><a class="code" href="structElf64__Ehdr.html#943c7d038a3cc3c1115e84b4cd19966d">00085</a> <a class="code" href="readelf_8h.html#1cbe0e18c022213c90aa7cb250485b5c">Elf64_Addr</a> e_entry; <span class="comment">/* Entry point */</span> <a name="l00086"></a><a class="code" href="structElf64__Ehdr.html#dc7d13d5c0e0eb4b62f0f898f03b2e66">00086</a> <a class="code" href="readelf_8h.html#c4c2cb64a7675424d6ccc874aee57e57">Elf64_Off</a> e_phoff; <a name="l00087"></a><a class="code" href="structElf64__Ehdr.html#63fca3f9b273e5fd4d190d9cb7fba9b0">00087</a> <a class="code" href="readelf_8h.html#c4c2cb64a7675424d6ccc874aee57e57">Elf64_Off</a> e_shoff; <a name="l00088"></a><a class="code" href="structElf64__Ehdr.html#e6ea9e821472d35e7d2c446fa79bdc3a">00088</a> <a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">Elf64_Word</a> e_flags; <a name="l00089"></a><a class="code" href="structElf64__Ehdr.html#404b7e3566d912b0382cacea17475e92">00089</a> <a class="code" href="readelf_8h.html#db6a5584018b431da3472e7c6a7fd731">Elf64_Half</a> e_ehsize; <a name="l00090"></a><a class="code" href="structElf64__Ehdr.html#b5aefb7a14b9cf2eafcbaf0664852369">00090</a> <a class="code" href="readelf_8h.html#db6a5584018b431da3472e7c6a7fd731">Elf64_Half</a> e_phentsize; <a name="l00091"></a><a class="code" href="structElf64__Ehdr.html#f13bac5685d725c2ba9930c1176f3082">00091</a> <a class="code" href="readelf_8h.html#db6a5584018b431da3472e7c6a7fd731">Elf64_Half</a> e_phnum; <a name="l00092"></a><a class="code" href="structElf64__Ehdr.html#078af1eaf7681f9d85ff545b6c7aa9c5">00092</a> <a class="code" href="readelf_8h.html#db6a5584018b431da3472e7c6a7fd731">Elf64_Half</a> e_shentsize; <a name="l00093"></a><a class="code" href="structElf64__Ehdr.html#317679f1ef5e41e0717e95670c6a1d24">00093</a> <a class="code" href="readelf_8h.html#db6a5584018b431da3472e7c6a7fd731">Elf64_Half</a> e_shnum; <a name="l00094"></a><a class="code" href="structElf64__Ehdr.html#e8289d7705794be744876f6246242b9b">00094</a> <a class="code" href="readelf_8h.html#db6a5584018b431da3472e7c6a7fd731">Elf64_Half</a> e_shstrndx; <a name="l00095"></a>00095 } <a class="code" href="structElf64__Ehdr.html">Elf64_Ehdr</a>; <a name="l00096"></a>00096 <a name="l00097"></a>00097 <span class="comment">/* e_type */</span> <a name="l00098"></a><a class="code" href="readelf_8h.html#942478985eb016311380dee473cc8c3e">00098</a> <span class="preprocessor">#define ET_EXEC 2</span> <a name="l00099"></a><a class="code" href="readelf_8h.html#2b9430d26ba60f7a9d65c8d43e54f213">00099</a> <span class="preprocessor"></span><span class="preprocessor">#define ET_CORE 4</span> <a name="l00100"></a>00100 <span class="preprocessor"></span> <a name="l00101"></a>00101 <span class="comment">/* sh_type */</span> <a name="l00102"></a><a class="code" href="readelf_8h.html#4add7784e43ec3d3b9c09d3ffc476a81">00102</a> <span class="preprocessor">#define SHT_SYMTAB 2</span> <a name="l00103"></a><a class="code" href="readelf_8h.html#65506a79f0e972c851851af7b1008d94">00103</a> <span class="preprocessor"></span><span class="preprocessor">#define SHT_NOTE 7</span> <a name="l00104"></a><a class="code" href="readelf_8h.html#a9949aedf49107f6a07e618d5d791d40">00104</a> <span class="preprocessor"></span><span class="preprocessor">#define SHT_DYNSYM 11</span> <a name="l00105"></a>00105 <span class="preprocessor"></span> <a name="l00106"></a>00106 <span class="comment">/* elf type */</span> <a name="l00107"></a><a class="code" href="readelf_8h.html#d25f21c9d99ad7f440811610bfc57ff6">00107</a> <span class="preprocessor">#define ELFDATANONE 0 </span><span class="comment">/* e_ident[EI_DATA] */</span> <a name="l00108"></a><a class="code" href="readelf_8h.html#f66303c799da18c8aec282ea8592e7e7">00108</a> <span class="preprocessor">#define ELFDATA2LSB 1</span> <a name="l00109"></a><a class="code" href="readelf_8h.html#06385c3e5f0a3b62fae7f5e224e10f89">00109</a> <span class="preprocessor"></span><span class="preprocessor">#define ELFDATA2MSB 2</span> <a name="l00110"></a>00110 <span class="preprocessor"></span> <a name="l00111"></a>00111 <span class="comment">/* elf class */</span> <a name="l00112"></a><a class="code" href="readelf_8h.html#ab8a7e71c15cccd3f1d721420cd3c2ee">00112</a> <span class="preprocessor">#define ELFCLASSNONE 0</span> <a name="l00113"></a><a class="code" href="readelf_8h.html#5f84b1bf6e07374d6289eab3d8c57f1c">00113</a> <span class="preprocessor"></span><span class="preprocessor">#define ELFCLASS32 1</span> <a name="l00114"></a><a class="code" href="readelf_8h.html#9ee66b59be5c78ea1f1eea8a36f2c291">00114</a> <span class="preprocessor"></span><span class="preprocessor">#define ELFCLASS64 2</span> <a name="l00115"></a>00115 <span class="preprocessor"></span> <a name="l00116"></a>00116 <span class="comment">/* magic number */</span> <a name="l00117"></a><a class="code" href="readelf_8h.html#ba717f40a418b0d99c2efd4cdab4f54f">00117</a> <span class="preprocessor">#define EI_MAG0 0 </span><span class="comment">/* e_ident[] indexes */</span> <a name="l00118"></a><a class="code" href="readelf_8h.html#2cae3878d982911632b418680718d53b">00118</a> <span class="preprocessor">#define EI_MAG1 1</span> <a name="l00119"></a><a class="code" href="readelf_8h.html#2884a339ef7aefee59d160ed3fbb1739">00119</a> <span class="preprocessor"></span><span class="preprocessor">#define EI_MAG2 2</span> <a name="l00120"></a><a class="code" href="readelf_8h.html#ce03d4c5e8952e27b8505581432c3b84">00120</a> <span class="preprocessor"></span><span class="preprocessor">#define EI_MAG3 3</span> <a name="l00121"></a><a class="code" href="readelf_8h.html#5b508cacf6662e4bc0e98ffe1eb61636">00121</a> <span class="preprocessor"></span><span class="preprocessor">#define EI_CLASS 4</span> <a name="l00122"></a><a class="code" href="readelf_8h.html#79c714b4bf89638ff576e163d7d2144f">00122</a> <span class="preprocessor"></span><span class="preprocessor">#define EI_DATA 5</span> <a name="l00123"></a><a class="code" href="readelf_8h.html#ac8694b14e6500d9dc5047ef62518845">00123</a> <span class="preprocessor"></span><span class="preprocessor">#define EI_VERSION 6</span> <a name="l00124"></a><a class="code" href="readelf_8h.html#ed24a379d553d0e36853949dd6ddd6c1">00124</a> <span class="preprocessor"></span><span class="preprocessor">#define EI_PAD 7</span> <a name="l00125"></a>00125 <span class="preprocessor"></span> <a name="l00126"></a><a class="code" href="readelf_8h.html#2ae7ae1a6df04e0ed6be07b94590686e">00126</a> <span class="preprocessor">#define ELFMAG0 0x7f </span><span class="comment">/* EI_MAG */</span> <a name="l00127"></a><a class="code" href="readelf_8h.html#6237b3c20ffd799df7b9a91ab3bbdff4">00127</a> <span class="preprocessor">#define ELFMAG1 'E'</span> <a name="l00128"></a><a class="code" href="readelf_8h.html#8ac1b98d78e30ca49e1d3f287939a18f">00128</a> <span class="preprocessor"></span><span class="preprocessor">#define ELFMAG2 'L'</span> <a name="l00129"></a><a class="code" href="readelf_8h.html#2beeae5974769f72da5f63dcbcc325fe">00129</a> <span class="preprocessor"></span><span class="preprocessor">#define ELFMAG3 'F'</span> <a name="l00130"></a><a class="code" href="readelf_8h.html#ea846861578445a1e832cd6613cc049d">00130</a> <span class="preprocessor"></span><span class="preprocessor">#define ELFMAG "\177ELF"</span> <a name="l00131"></a>00131 <span class="preprocessor"></span> <a name="l00132"></a><a class="code" href="readelf_8h.html#08de437aabdeaa742e9ccb588f3184ff">00132</a> <span class="preprocessor">#define OLFMAG1 'O'</span> <a name="l00133"></a><a class="code" href="readelf_8h.html#ff3fb46af1c7cba401232415eaf6aeec">00133</a> <span class="preprocessor"></span><span class="preprocessor">#define OLFMAG "\177OLF"</span> <a name="l00134"></a>00134 <span class="preprocessor"></span> <a name="l00135"></a><a class="code" href="structElf32__Phdr.html">00135</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <a name="l00136"></a><a class="code" href="structElf32__Phdr.html#8b1d2942ddb9abcb85db1429b5116923">00136</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> p_type; <a name="l00137"></a><a class="code" href="structElf32__Phdr.html#c590d4c4b26104216e53058b5b03eef0">00137</a> <a class="code" href="readelf_8h.html#655751f9b317369b93c581ea8ed84516">Elf32_Off</a> p_offset; <a name="l00138"></a><a class="code" href="structElf32__Phdr.html#01a298ebc899bcf9c23211a7bf1155a6">00138</a> <a class="code" href="readelf_8h.html#40c6d4571e6001f443cc6a6474620158">Elf32_Addr</a> p_vaddr; <a name="l00139"></a><a class="code" href="structElf32__Phdr.html#f18f0a179a5fca09e3c04bcdce3fac2f">00139</a> <a class="code" href="readelf_8h.html#40c6d4571e6001f443cc6a6474620158">Elf32_Addr</a> p_paddr; <a name="l00140"></a><a class="code" href="structElf32__Phdr.html#c9151f2e11001284bf1c7d2d2659555c">00140</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> p_filesz; <a name="l00141"></a><a class="code" href="structElf32__Phdr.html#da1cdd3d6ccb79a17bed0e3c21379c84">00141</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> p_memsz; <a name="l00142"></a><a class="code" href="structElf32__Phdr.html#35c457e6828894b7b275730593802050">00142</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> p_flags; <a name="l00143"></a><a class="code" href="structElf32__Phdr.html#fd09d9e4297b13fc94fd57d09f2a9f70">00143</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> p_align; <a name="l00144"></a>00144 } <a class="code" href="structElf32__Phdr.html">Elf32_Phdr</a>; <a name="l00145"></a>00145 <a name="l00146"></a><a class="code" href="structElf64__Phdr.html">00146</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <a name="l00147"></a><a class="code" href="structElf64__Phdr.html#ee6ec430eaaf8b8faf82ae6397282cb3">00147</a> <a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">Elf64_Word</a> p_type; <a name="l00148"></a><a class="code" href="structElf64__Phdr.html#b96e7784733c2192a76d5a42897cb38b">00148</a> <a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">Elf64_Word</a> p_flags; <a name="l00149"></a><a class="code" href="structElf64__Phdr.html#a2d51fb4517ded0c74903f8d0c9abea7">00149</a> <a class="code" href="readelf_8h.html#c4c2cb64a7675424d6ccc874aee57e57">Elf64_Off</a> p_offset; <a name="l00150"></a><a class="code" href="structElf64__Phdr.html#5c69879e1229b175020ff011af46fcb9">00150</a> <a class="code" href="readelf_8h.html#1cbe0e18c022213c90aa7cb250485b5c">Elf64_Addr</a> p_vaddr; <a name="l00151"></a><a class="code" href="structElf64__Phdr.html#83f4adb032fc307f5af79bdee5ef692d">00151</a> <a class="code" href="readelf_8h.html#1cbe0e18c022213c90aa7cb250485b5c">Elf64_Addr</a> p_paddr; <a name="l00152"></a><a class="code" href="structElf64__Phdr.html#f50e5756da2acda5ccb02ebaa3367092">00152</a> <a class="code" href="readelf_8h.html#65ed514990297c551ce366174c9f59e4">Elf64_Xword</a> p_filesz; <a name="l00153"></a><a class="code" href="structElf64__Phdr.html#55fae01175fc4e3f1c23e52b14459235">00153</a> <a class="code" href="readelf_8h.html#65ed514990297c551ce366174c9f59e4">Elf64_Xword</a> p_memsz; <a name="l00154"></a><a class="code" href="structElf64__Phdr.html#a89a4b1835998c8866e821d777a2f879">00154</a> <a class="code" href="readelf_8h.html#65ed514990297c551ce366174c9f59e4">Elf64_Xword</a> p_align; <a name="l00155"></a>00155 } <a class="code" href="structElf64__Phdr.html">Elf64_Phdr</a>; <a name="l00156"></a>00156 <a name="l00157"></a><a class="code" href="readelf_8h.html#854729c1dc4623abeaeb765a1b745012">00157</a> <span class="preprocessor">#define PT_NULL 0 </span><span class="comment">/* p_type */</span> <a name="l00158"></a><a class="code" href="readelf_8h.html#84d7768fd6c6ece599d297090900cf92">00158</a> <span class="preprocessor">#define PT_LOAD 1</span> <a name="l00159"></a><a class="code" href="readelf_8h.html#2121a2f01c51e8462bfd4d47725649d8">00159</a> <span class="preprocessor"></span><span class="preprocessor">#define PT_DYNAMIC 2</span> <a name="l00160"></a><a class="code" href="readelf_8h.html#bcd3aa15bc567949c1ab6b1abc137710">00160</a> <span class="preprocessor"></span><span class="preprocessor">#define PT_INTERP 3</span> <a name="l00161"></a><a class="code" href="readelf_8h.html#72baf87d62607c7fdccd3b8010d4ce30">00161</a> <span class="preprocessor"></span><span class="preprocessor">#define PT_NOTE 4</span> <a name="l00162"></a><a class="code" href="readelf_8h.html#bff9f38fd394e09e60f5640550a23e46">00162</a> <span class="preprocessor"></span><span class="preprocessor">#define PT_SHLIB 5</span> <a name="l00163"></a><a class="code" href="readelf_8h.html#58ff00be749ca4000074f9b9066a1056">00163</a> <span class="preprocessor"></span><span class="preprocessor">#define PT_PHDR 6</span> <a name="l00164"></a><a class="code" href="readelf_8h.html#693ee3011634418bc797f402f4642e07">00164</a> <span class="preprocessor"></span><span class="preprocessor">#define PT_NUM 7</span> <a name="l00165"></a>00165 <span class="preprocessor"></span> <a name="l00166"></a><a class="code" href="structElf32__Shdr.html">00166</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <a name="l00167"></a><a class="code" href="structElf32__Shdr.html#6e8fd300ca473a31d0f65817ce371dfd">00167</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> sh_name; <a name="l00168"></a><a class="code" href="structElf32__Shdr.html#ab6c221dbd7e16987df41280fb915408">00168</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> sh_type; <a name="l00169"></a><a class="code" href="structElf32__Shdr.html#27e003d8da37de3038a0065577a7743d">00169</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> sh_flags; <a name="l00170"></a><a class="code" href="structElf32__Shdr.html#7e668a62cee74a2f9c6edabb5f45635a">00170</a> <a class="code" href="readelf_8h.html#40c6d4571e6001f443cc6a6474620158">Elf32_Addr</a> sh_addr; <a name="l00171"></a><a class="code" href="structElf32__Shdr.html#6e37227a5777cddc0a9dbbb3c2598ec1">00171</a> <a class="code" href="readelf_8h.html#655751f9b317369b93c581ea8ed84516">Elf32_Off</a> sh_offset; <a name="l00172"></a><a class="code" href="structElf32__Shdr.html#84dc67bb0ab65880bbcd74fbee722ff1">00172</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> sh_size; <a name="l00173"></a><a class="code" href="structElf32__Shdr.html#d759308388eb14c5c6e4d636c38999da">00173</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> sh_link; <a name="l00174"></a><a class="code" href="structElf32__Shdr.html#ef63fe62c2c9927f374c4f987954c6e5">00174</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> sh_info; <a name="l00175"></a><a class="code" href="structElf32__Shdr.html#399f50b3591e6286d4ad819f790979ed">00175</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> sh_addralign; <a name="l00176"></a><a class="code" href="structElf32__Shdr.html#10c59cecc928aae27930601fe545d3ca">00176</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> sh_entsize; <a name="l00177"></a>00177 } <a class="code" href="structElf32__Shdr.html">Elf32_Shdr</a>; <a name="l00178"></a>00178 <a name="l00179"></a><a class="code" href="structElf64__Shdr.html">00179</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <a name="l00180"></a><a class="code" href="structElf64__Shdr.html#18f4475eeec871316099323b512d999d">00180</a> <a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">Elf64_Word</a> sh_name; <a name="l00181"></a><a class="code" href="structElf64__Shdr.html#6379cd77214969499ae99e6e8a46405c">00181</a> <a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">Elf64_Word</a> sh_type; <a name="l00182"></a><a class="code" href="structElf64__Shdr.html#9ca1db026c9b157be9230b2eacfc46db">00182</a> <a class="code" href="readelf_8h.html#c4c2cb64a7675424d6ccc874aee57e57">Elf64_Off</a> sh_flags; <a name="l00183"></a><a class="code" href="structElf64__Shdr.html#c4ee2ceaec74ab5704ebba226e83b200">00183</a> <a class="code" href="readelf_8h.html#1cbe0e18c022213c90aa7cb250485b5c">Elf64_Addr</a> sh_addr; <a name="l00184"></a><a class="code" href="structElf64__Shdr.html#fd5e899b00b6527bbecf9cd4bda50112">00184</a> <a class="code" href="readelf_8h.html#c4c2cb64a7675424d6ccc874aee57e57">Elf64_Off</a> sh_offset; <a name="l00185"></a><a class="code" href="structElf64__Shdr.html#2271621e33c0aafacc253fea5620ffda">00185</a> <a class="code" href="readelf_8h.html#c4c2cb64a7675424d6ccc874aee57e57">Elf64_Off</a> sh_size; <a name="l00186"></a><a class="code" href="structElf64__Shdr.html#29812c42d9310eb3ad17dcd68ec25536">00186</a> <a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">Elf64_Word</a> sh_link; <a name="l00187"></a><a class="code" href="structElf64__Shdr.html#72dd754689db27582817c0691f7d0c77">00187</a> <a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">Elf64_Word</a> sh_info; <a name="l00188"></a><a class="code" href="structElf64__Shdr.html#bd143e22d926b0300acc09654b45c26e">00188</a> <a class="code" href="readelf_8h.html#c4c2cb64a7675424d6ccc874aee57e57">Elf64_Off</a> sh_addralign; <a name="l00189"></a><a class="code" href="structElf64__Shdr.html#18da6d56aadd192cbe1aa559149352b8">00189</a> <a class="code" href="readelf_8h.html#c4c2cb64a7675424d6ccc874aee57e57">Elf64_Off</a> sh_entsize; <a name="l00190"></a>00190 } <a class="code" href="structElf64__Shdr.html">Elf64_Shdr</a>; <a name="l00191"></a>00191 <a name="l00192"></a>00192 <span class="comment">/* Notes used in ET_CORE */</span> <a name="l00193"></a>00193 <span class="preprocessor">#define NT_PRSTATUS 1</span> <a name="l00194"></a>00194 <span class="preprocessor"></span><span class="preprocessor">#define NT_PRFPREG 2</span> <a name="l00195"></a>00195 <span class="preprocessor"></span><span class="preprocessor">#define NT_PRPSINFO 3</span> <a name="l00196"></a><a class="code" href="readelf_8h.html#6c668b57a04de7867aee83d5a732d3b7">00196</a> <span class="preprocessor"></span><span class="preprocessor">#define NT_TASKSTRUCT 4</span> <a name="l00197"></a>00197 <span class="preprocessor"></span> <a name="l00198"></a><a class="code" href="readelf_8h.html#4712be4ac47cb28b0283e5fe29f7df3e">00198</a> <span class="preprocessor">#define NT_NETBSD_CORE_PROCINFO 1</span> <a name="l00199"></a>00199 <span class="preprocessor"></span> <a name="l00200"></a>00200 <span class="comment">/* Note header in a PT_NOTE section */</span> <a name="l00201"></a><a class="code" href="structelf__note.html">00201</a> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structelf__note.html">elf_note</a> { <a name="l00202"></a><a class="code" href="structelf__note.html#534eaafe5ba165c25e42944343c6496a">00202</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> <a class="code" href="structelf__note.html#534eaafe5ba165c25e42944343c6496a">n_namesz</a>; <span class="comment">/* Name size */</span> <a name="l00203"></a><a class="code" href="structelf__note.html#586c8d538622789d33d5c9a6bb56a669">00203</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> <a class="code" href="structelf__note.html#586c8d538622789d33d5c9a6bb56a669">n_descsz</a>; <span class="comment">/* Content size */</span> <a name="l00204"></a><a class="code" href="structelf__note.html#00d929012378cba254ce20efb25ef0c0">00204</a> <a class="code" href="readelf_8h.html#f5924ece606c732e86f8263a19408e45">Elf32_Word</a> <a class="code" href="structelf__note.html#00d929012378cba254ce20efb25ef0c0">n_type</a>; <span class="comment">/* Content type */</span> <a name="l00205"></a>00205 } <a class="code" href="structelf__note.html">Elf32_Nhdr</a>; <a name="l00206"></a>00206 <a name="l00207"></a><a class="code" href="structElf64__Nhdr.html">00207</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{ <a name="l00208"></a><a class="code" href="structElf64__Nhdr.html#1169a3f8272ba5265ea3aecdc4974546">00208</a> <a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">Elf64_Word</a> n_namesz; <a name="l00209"></a><a class="code" href="structElf64__Nhdr.html#ce700cd855c773a6483e247f18a33350">00209</a> <a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">Elf64_Word</a> n_descsz; <a name="l00210"></a><a class="code" href="structElf64__Nhdr.html#bbb820712cc219d235bb7eb3c11eefbe">00210</a> <a class="code" href="readelf_8h.html#a3aa1920ed115b7ef7e99716fece4401">Elf64_Word</a> n_type; <a name="l00211"></a>00211 } <a class="code" href="structElf64__Nhdr.html">Elf64_Nhdr</a>; <a name="l00212"></a>00212 <a name="l00213"></a><a class="code" href="readelf_8h.html#8eeb287a17715c441f811327deca164d">00213</a> <span class="preprocessor">#define NT_PRSTATUS 1</span> <a name="l00214"></a><a class="code" href="readelf_8h.html#b5c508674e964ccb5ac5054402883ffe">00214</a> <span class="preprocessor"></span><span class="preprocessor">#define NT_PRFPREG 2</span> <a name="l00215"></a><a class="code" href="readelf_8h.html#41303acba10e393d83caac181d880799">00215</a> <span class="preprocessor"></span><span class="preprocessor">#define NT_PRPSINFO 3</span> <a name="l00216"></a><a class="code" href="readelf_8h.html#507c69d41c795a69a0dd687568d66fbc">00216</a> <span class="preprocessor"></span><span class="preprocessor">#define NT_PRXREG 4</span> <a name="l00217"></a><a class="code" href="readelf_8h.html#225c42870e7a5affc6cfdce2ca9c0ff3">00217</a> <span class="preprocessor"></span><span class="preprocessor">#define NT_PLATFORM 5</span> <a name="l00218"></a><a class="code" href="readelf_8h.html#c6d0070e0d61d7058d8020075376a165">00218</a> <span class="preprocessor"></span><span class="preprocessor">#define NT_AUXV 6</span> <a name="l00219"></a>00219 <span class="preprocessor"></span> <a name="l00220"></a>00220 <span class="comment">/* Note types used in executables */</span> <a name="l00221"></a>00221 <span class="comment">/* NetBSD executables (name = "NetBSD") */</span> <a name="l00222"></a><a class="code" href="readelf_8h.html#abea916483d2eb665c1bde74c75accc5">00222</a> <span class="preprocessor">#define NT_NETBSD_VERSION 1</span> <a name="l00223"></a><a class="code" href="readelf_8h.html#aefc7345757029a1587fbcf60aac18a2">00223</a> <span class="preprocessor"></span><span class="preprocessor">#define NT_NETBSD_EMULATION 2</span> <a name="l00224"></a><a class="code" href="readelf_8h.html#c8d4db685a4befa1aef06f0726d158ac">00224</a> <span class="preprocessor"></span><span class="preprocessor">#define NT_FREEBSD_VERSION 1</span> <a name="l00225"></a><a class="code" href="readelf_8h.html#4453da15165f5ed3e3085890bcdc7296">00225</a> <span class="preprocessor"></span><span class="preprocessor">#define NT_OPENBSD_VERSION 1</span> <a name="l00226"></a><a class="code" href="readelf_8h.html#134b584102478f5efe4c0c16ba09ae08">00226</a> <span class="preprocessor"></span><span class="preprocessor">#define NT_DRAGONFLY_VERSION 1</span> <a name="l00227"></a>00227 <span class="preprocessor"></span><span class="comment">/* GNU executables (name = "GNU") */</span> <a name="l00228"></a><a class="code" href="readelf_8h.html#dffd6f854e6d24106a83865179ab3bbd">00228</a> <span class="preprocessor">#define NT_GNU_VERSION 1</span> <a name="l00229"></a>00229 <span class="preprocessor"></span> <a name="l00230"></a>00230 <span class="comment">/* GNU OS tags */</span> <a name="l00231"></a><a class="code" href="readelf_8h.html#8e5ecb608d356ef51e8af85fc0071625">00231</a> <span class="preprocessor">#define GNU_OS_LINUX 0</span> <a name="l00232"></a><a class="code" href="readelf_8h.html#192bd6a02753f76f42eed98cd6f09c84">00232</a> <span class="preprocessor"></span><span class="preprocessor">#define GNU_OS_HURD 1</span> <a name="l00233"></a><a class="code" href="readelf_8h.html#f0f53c3ea5a904a3ab61672300864d59">00233</a> <span class="preprocessor"></span><span class="preprocessor">#define GNU_OS_SOLARIS 2</span> <a name="l00234"></a>00234 <span class="preprocessor"></span> <a name="l00235"></a>00235 <span class="preprocessor">#endif</span> </pre></div><hr size="1"><address style="align: right;"><small>Generated on 1 Oct 2013 for rpm by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address> </body> </html>