00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "elfstruc.h"
00022 #include "global.h"
00023 #include "htendian.h"
00024
00025 byte ELF_HEADER32_struct[]= {
00026 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00027 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00028 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00029 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00030 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00031 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00032 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00033 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00034 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00035 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00036 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00037 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00038 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00039 0
00040 };
00041
00042 byte ELF_HEADER64_struct[]= {
00043 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00044 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00045 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00046 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00047 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00048 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00049 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00050 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00051 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00052 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00053 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00054 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00055 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00056 0
00057 };
00058
00059 byte ELF_SECTION_HEADER32_struct[]= {
00060 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00061 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00062 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00063 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00064 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00065 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00066 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00067 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00068 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00069 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00070 0
00071 };
00072
00073 byte ELF_SECTION_HEADER64_struct[]= {
00074 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00075 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00076 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00077 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00078 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00079 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00080 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00081 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00082 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00083 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00084 0
00085 };
00086
00087 byte ELF_PROGRAM_HEADER32_struct[]= {
00088 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00089 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00090 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00091 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00092 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00093 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00094 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00095 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00096 0
00097 };
00098
00099 byte ELF_PROGRAM_HEADER64_struct[]= {
00100 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00101 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00102 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00103 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00104 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00105 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00106 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00107 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00108 0
00109 };
00110
00111 byte ELF_SYMBOL32_struct[]= {
00112 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00113 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00114 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00115 STRUCT_ENDIAN_BYTE | STRUCT_ENDIAN_HOST,
00116 STRUCT_ENDIAN_BYTE | STRUCT_ENDIAN_HOST,
00117 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00118 0
00119 };
00120
00121 byte ELF_SYMBOL64_struct[]= {
00122 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00123 STRUCT_ENDIAN_BYTE | STRUCT_ENDIAN_HOST,
00124 STRUCT_ENDIAN_BYTE | STRUCT_ENDIAN_HOST,
00125 STRUCT_ENDIAN_WORD | STRUCT_ENDIAN_HOST,
00126 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00127 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00128 0
00129 };
00130
00131 byte ELF_REL32_struct[]= {
00132 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00133 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00134 0
00135 };
00136
00137 byte ELF_REL64_struct[]= {
00138 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00139 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00140 0
00141 };
00142
00143 byte ELF_RELA32_struct[]= {
00144 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00145 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00146 STRUCT_ENDIAN_DWORD | STRUCT_ENDIAN_HOST,
00147 0
00148 };
00149
00150 byte ELF_RELA64_struct[]= {
00151 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00152 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00153 STRUCT_ENDIAN_QWORD | STRUCT_ENDIAN_HOST,
00154 0
00155 };
00156