File indexing completed on 2024-05-18 08:29:55
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifndef _GELF_H
0030 #define _GELF_H 1
0031
0032 #include <libelf.h>
0033
0034
0035 #ifdef __cplusplus
0036 extern "C" {
0037 #endif
0038
0039
0040
0041
0042
0043
0044 typedef Elf64_Half GElf_Half;
0045
0046
0047 typedef Elf64_Word GElf_Word;
0048 typedef Elf64_Sword GElf_Sword;
0049
0050
0051 typedef Elf64_Xword GElf_Xword;
0052 typedef Elf64_Sxword GElf_Sxword;
0053
0054
0055 typedef Elf64_Addr GElf_Addr;
0056
0057
0058 typedef Elf64_Off GElf_Off;
0059
0060
0061
0062 typedef Elf64_Ehdr GElf_Ehdr;
0063
0064
0065 typedef Elf64_Shdr GElf_Shdr;
0066
0067
0068
0069
0070 typedef Elf64_Section GElf_Section;
0071
0072
0073 typedef Elf64_Sym GElf_Sym;
0074
0075
0076
0077 typedef Elf64_Syminfo GElf_Syminfo;
0078
0079
0080 typedef Elf64_Rel GElf_Rel;
0081
0082
0083 typedef Elf64_Rela GElf_Rela;
0084
0085
0086 typedef Elf64_Phdr GElf_Phdr;
0087
0088
0089 typedef Elf64_Chdr GElf_Chdr;
0090
0091
0092 typedef Elf64_Dyn GElf_Dyn;
0093
0094
0095
0096 typedef Elf64_Verdef GElf_Verdef;
0097
0098
0099 typedef Elf64_Verdaux GElf_Verdaux;
0100
0101
0102 typedef Elf64_Verneed GElf_Verneed;
0103
0104
0105 typedef Elf64_Vernaux GElf_Vernaux;
0106
0107
0108
0109 typedef Elf64_Versym GElf_Versym;
0110
0111
0112
0113 typedef Elf64_auxv_t GElf_auxv_t;
0114
0115
0116
0117 typedef Elf64_Nhdr GElf_Nhdr;
0118
0119
0120
0121 typedef Elf64_Move GElf_Move;
0122
0123
0124
0125 typedef Elf64_Lib GElf_Lib;
0126
0127
0128
0129
0130 #define GELF_ST_BIND(val) ELF64_ST_BIND (val)
0131 #define GELF_ST_TYPE(val) ELF64_ST_TYPE (val)
0132 #define GELF_ST_INFO(bind, type) ELF64_ST_INFO (bind, type)
0133
0134
0135
0136 #define GELF_ST_VISIBILITY(val) ELF64_ST_VISIBILITY (val)
0137
0138
0139
0140
0141 #define GELF_R_SYM(info) ELF64_R_SYM (info)
0142 #define GELF_R_TYPE(info) ELF64_R_TYPE (info)
0143 #define GELF_R_INFO(sym, type) ELF64_R_INFO (sym, type)
0144
0145
0146
0147 #define GELF_M_SYM(info) ELF64_M_SYM (info)
0148 #define GELF_M_SIZE(info) ELF64_M_SIZE (info)
0149 #define GELF_M_INFO(sym, size) ELF64_M_INFO (sym, size)
0150
0151
0152
0153 extern int gelf_getclass (Elf *__elf);
0154
0155
0156
0157
0158
0159 extern size_t gelf_fsize (Elf *__elf, Elf_Type __type, size_t __count,
0160 unsigned int __version);
0161
0162
0163 extern GElf_Ehdr *gelf_getehdr (Elf *__elf, GElf_Ehdr *__dest);
0164
0165
0166 extern int gelf_update_ehdr (Elf *__elf, GElf_Ehdr *__src);
0167
0168
0169
0170
0171 extern void *gelf_newehdr (Elf *__elf, int __class);
0172
0173
0174 extern Elf_Scn *gelf_offscn (Elf *__elf, GElf_Off __offset);
0175
0176
0177 extern GElf_Shdr *gelf_getshdr (Elf_Scn *__scn, GElf_Shdr *__dst);
0178
0179
0180 extern int gelf_update_shdr (Elf_Scn *__scn, GElf_Shdr *__src);
0181
0182
0183 extern GElf_Phdr *gelf_getphdr (Elf *__elf, int __ndx, GElf_Phdr *__dst);
0184
0185
0186 extern int gelf_update_phdr (Elf *__elf, int __ndx, GElf_Phdr *__src);
0187
0188
0189
0190
0191 extern void *gelf_newphdr (Elf *__elf, size_t __phnum);
0192
0193
0194
0195 extern GElf_Chdr *gelf_getchdr (Elf_Scn *__scn, GElf_Chdr *__dst);
0196
0197
0198
0199 extern Elf_Data *gelf_xlatetom (Elf *__elf, Elf_Data *__dest,
0200 const Elf_Data *__src, unsigned int __encode);
0201
0202
0203
0204 extern Elf_Data *gelf_xlatetof (Elf *__elf, Elf_Data *__dest,
0205 const Elf_Data *__src, unsigned int __encode);
0206
0207
0208
0209 extern GElf_Rel *gelf_getrel (Elf_Data *__data, int __ndx, GElf_Rel *__dst);
0210
0211
0212 extern GElf_Rela *gelf_getrela (Elf_Data *__data, int __ndx, GElf_Rela *__dst);
0213
0214
0215 extern int gelf_update_rel (Elf_Data *__dst, int __ndx, GElf_Rel *__src);
0216
0217
0218 extern int gelf_update_rela (Elf_Data *__dst, int __ndx, GElf_Rela *__src);
0219
0220
0221
0222 extern GElf_Sym *gelf_getsym (Elf_Data *__data, int __ndx, GElf_Sym *__dst);
0223
0224
0225 extern int gelf_update_sym (Elf_Data *__data, int __ndx, GElf_Sym *__src);
0226
0227
0228
0229
0230 extern GElf_Sym *gelf_getsymshndx (Elf_Data *__symdata, Elf_Data *__shndxdata,
0231 int __ndx, GElf_Sym *__sym,
0232 Elf32_Word *__xshndx);
0233
0234
0235
0236 extern int gelf_update_symshndx (Elf_Data *__symdata, Elf_Data *__shndxdata,
0237 int __ndx, GElf_Sym *__sym,
0238 Elf32_Word __xshndx);
0239
0240
0241
0242
0243 extern GElf_Syminfo *gelf_getsyminfo (Elf_Data *__data, int __ndx,
0244 GElf_Syminfo *__dst);
0245
0246
0247
0248 extern int gelf_update_syminfo (Elf_Data *__data, int __ndx,
0249 GElf_Syminfo *__src);
0250
0251
0252
0253 extern GElf_Dyn *gelf_getdyn (Elf_Data *__data, int __ndx, GElf_Dyn *__dst);
0254
0255
0256 extern int gelf_update_dyn (Elf_Data *__dst, int __ndx, GElf_Dyn *__src);
0257
0258
0259
0260 extern GElf_Move *gelf_getmove (Elf_Data *__data, int __ndx, GElf_Move *__dst);
0261
0262
0263 extern int gelf_update_move (Elf_Data *__data, int __ndx,
0264 GElf_Move *__src);
0265
0266
0267
0268 extern GElf_Lib *gelf_getlib (Elf_Data *__data, int __ndx, GElf_Lib *__dst);
0269
0270
0271 extern int gelf_update_lib (Elf_Data *__data, int __ndx, GElf_Lib *__src);
0272
0273
0274
0275
0276 extern GElf_Versym *gelf_getversym (Elf_Data *__data, int __ndx,
0277 GElf_Versym *__dst);
0278
0279
0280 extern int gelf_update_versym (Elf_Data *__data, int __ndx,
0281 GElf_Versym *__src);
0282
0283
0284
0285 extern GElf_Verneed *gelf_getverneed (Elf_Data *__data, int __offset,
0286 GElf_Verneed *__dst);
0287
0288
0289 extern int gelf_update_verneed (Elf_Data *__data, int __offset,
0290 GElf_Verneed *__src);
0291
0292
0293 extern GElf_Vernaux *gelf_getvernaux (Elf_Data *__data, int __offset,
0294 GElf_Vernaux *__dst);
0295
0296
0297 extern int gelf_update_vernaux (Elf_Data *__data, int __offset,
0298 GElf_Vernaux *__src);
0299
0300
0301
0302 extern GElf_Verdef *gelf_getverdef (Elf_Data *__data, int __offset,
0303 GElf_Verdef *__dst);
0304
0305
0306 extern int gelf_update_verdef (Elf_Data *__data, int __offset,
0307 GElf_Verdef *__src);
0308
0309
0310
0311 extern GElf_Verdaux *gelf_getverdaux (Elf_Data *__data, int __offset,
0312 GElf_Verdaux *__dst);
0313
0314
0315 extern int gelf_update_verdaux (Elf_Data *__data, int __offset,
0316 GElf_Verdaux *__src);
0317
0318
0319
0320 extern GElf_auxv_t *gelf_getauxv (Elf_Data *__data, int __ndx,
0321 GElf_auxv_t *__dst);
0322
0323
0324 extern int gelf_update_auxv (Elf_Data *__data, int __ndx, GElf_auxv_t *__src);
0325
0326
0327
0328
0329
0330 extern size_t gelf_getnote (Elf_Data *__data, size_t __offset,
0331 GElf_Nhdr *__result,
0332 size_t *__name_offset, size_t *__desc_offset);
0333
0334
0335
0336 extern long int gelf_checksum (Elf *__elf);
0337
0338 #ifdef __cplusplus
0339 }
0340 #endif
0341
0342 #endif