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
19void 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
34enum symtype {
35	S_ABS,
36	S_REL,
37	S_SEG,
38	S_LIN,
39	S_NSYMTYPES
40};
41
42void process_32(FILE *fp, int as_text, int as_bin,
43		int show_reloc_info, int keep_relocs);
44void process_64(FILE *fp, int as_text, int as_bin,
45		int show_reloc_info, int keep_relocs);
46#endif /* RELOCS_H */
47