xref: /linux/arch/mips/boot/tools/relocs.h (revision 24bce201d79807b668bf9d9e0aca801c5c0d5f78)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef RELOCS_H
3 #define RELOCS_H
4 
5 #include <stdio.h>
6 #include <stdarg.h>
7 #include <stdlib.h>
8 #include <stdint.h>
9 #include <inttypes.h>
10 #include <string.h>
11 #include <errno.h>
12 #include <unistd.h>
13 #include <elf.h>
14 #include <byteswap.h>
15 #define USE_BSD
16 #include <endian.h>
17 #include <regex.h>
18 
19 void die(char *fmt, ...);
20 
21 /*
22  * Introduced for MIPSr6
23  */
24 #ifndef R_MIPS_PC21_S2
25 #define R_MIPS_PC21_S2		60
26 #endif
27 
28 #ifndef R_MIPS_PC26_S2
29 #define R_MIPS_PC26_S2		61
30 #endif
31 
32 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
33 
34 enum symtype {
35 	S_ABS,
36 	S_REL,
37 	S_SEG,
38 	S_LIN,
39 	S_NSYMTYPES
40 };
41 
42 void process_32(FILE *fp, int as_text, int as_bin,
43 		int show_reloc_info, int keep_relocs);
44 void process_64(FILE *fp, int as_text, int as_bin,
45 		int show_reloc_info, int keep_relocs);
46 #endif /* RELOCS_H */
47