update.h
1.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/*==============================================================================
Module: update.h
$Revision: 1.1.1.2 $
$Date: 2002/10/29 08:07:15 $
$Author: blythe $
$Source: /root/leakn64/depot/rf/sw/n64os20l/tools/gcord/com/update.h,v $
==============================================================================*/
#ifndef _UPDATE_H_
#define _UPDATE_H_
#include <libelf.h>
#include "global.h"
Elf_Scn *find_section_by_name(Elf *elf, char *name);
Elf_Scn *find_section_by_name32(Elf *, char *);
Elf_Scn *find_section_by_name64(Elf *, char *);
Uint32 *get_textdata_by_addr(Elf *, Uint64);
Uint32 *get_textdata_by_addr32(Elf *, Uint32);
Uint64 *get_textdata_by_addr64(Elf *, Uint64);
void expand_section(Elf_Scn *, Uint32);
void expand_section32(Elf_Scn *, Uint32);
void expand_section64(Elf_Scn *, Uint64);
void update_elf_header(void);
void update_elf_header32(void);
void update_elf_header64(void);
void update_dynamic(void);
void update_dynamic32(void);
void update_dynamic64(void);
void update_got(void);
void update_got32(void);
void update_got64(void);
void update_reldyn(void);
void update_reldyn32(void);
void update_reldyn64(void);
void update_dynsym(void);
void update_dynsym32(void);
void update_dynsym64(void);
void update_symtab(void);
void update_symtab32(void);
void update_symtab64(void);
void expand_text(void);
void expand_text32(void);
void expand_text64(void);
Elf_Data *find_section_data_by_name(Elf *elf, char *name);
void move_mdebug(void* mdebug, Uint32 *len, Uint32 *file_offset);
void update_branch_offset(void);
void update_rpt(void);
void update_compact_rel(void);
void process_update_events(void);
void update_got_page(Addr, Uint32, Addr);
void update_got_offset(Addr, Uint32, Addr);
Addr got_content_by_gpoffset(int);
Elf64_Ehdr *copy_elf_header_to64(Elf32_Ehdr *ehdr32);
void copy_section_header_to64(Elf32_Shdr *shdr32, Elf64_Shdr *shdr64);
#define MAX_COMMON_ALIGNMENT 64*1024
#endif /* ifndef _UPDATE_H_ */