OLD | NEW |
1 /* Mach-O support for BFD. | 1 /* Mach-O support for BFD. |
2 Copyright 2011 | 2 Copyright 2011, 2012 |
3 Free Software Foundation, Inc. | 3 Free Software Foundation, Inc. |
4 | 4 |
5 This file is part of BFD, the Binary File Descriptor library. | 5 This file is part of BFD, the Binary File Descriptor library. |
6 | 6 |
7 This program is free software; you can redistribute it and/or modify | 7 This program is free software; you can redistribute it and/or modify |
8 it under the terms of the GNU General Public License as published by | 8 it under the terms of the GNU General Public License as published by |
9 the Free Software Foundation; either version 3 of the License, or | 9 the Free Software Foundation; either version 3 of the License, or |
10 (at your option) any later version. | 10 (at your option) any later version. |
11 | 11 |
12 This program is distributed in the hope that it will be useful, | 12 This program is distributed in the hope that it will be useful, |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | 13 but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 GNU General Public License for more details. | 15 GNU General Public License for more details. |
16 | 16 |
17 You should have received a copy of the GNU General Public License | 17 You should have received a copy of the GNU General Public License |
18 along with this program; if not, write to the Free Software | 18 along with this program; if not, write to the Free Software |
19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, | 19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, |
20 MA 02110-1301, USA. */ | 20 MA 02110-1301, USA. */ |
21 | 21 |
22 #ifndef _MACH_O_RELOC_H | 22 #ifndef _MACH_O_RELOC_H |
23 #define _MACH_O_RELOC_H | 23 #define _MACH_O_RELOC_H |
24 | 24 |
25 /* Fields for a normal (non-scattered) entry. */ | |
26 #define BFD_MACH_O_R_PCREL 0x01000000 | |
27 #define BFD_MACH_O_GET_R_LENGTH(s) (((s) >> 25) & 0x3) | |
28 #define BFD_MACH_O_R_EXTERN 0x08000000 | |
29 #define BFD_MACH_O_GET_R_TYPE(s) (((s) >> 28) & 0x0f) | |
30 #define BFD_MACH_O_GET_R_SYMBOLNUM(s) ((s) & 0x00ffffff) | |
31 #define BFD_MACH_O_SET_R_LENGTH(l) (((l) & 0x3) << 25) | |
32 #define BFD_MACH_O_SET_R_TYPE(t) (((t) & 0xf) << 28) | |
33 #define BFD_MACH_O_SET_R_SYMBOLNUM(s) ((s) & 0x00ffffff) | |
34 | |
35 /* Fields for a scattered entry. */ | |
36 #define BFD_MACH_O_SR_SCATTERED 0x80000000 | |
37 #define BFD_MACH_O_SR_PCREL 0x40000000 | |
38 #define BFD_MACH_O_GET_SR_LENGTH(s) (((s) >> 28) & 0x3) | |
39 #define BFD_MACH_O_GET_SR_TYPE(s) (((s) >> 24) & 0x0f) | |
40 #define BFD_MACH_O_GET_SR_ADDRESS(s) ((s) & 0x00ffffff) | |
41 #define BFD_MACH_O_SET_SR_LENGTH(l) (((l) & 0x3) << 28) | |
42 #define BFD_MACH_O_SET_SR_TYPE(t) (((t) & 0xf) << 24) | |
43 #define BFD_MACH_O_SET_SR_ADDRESS(s) ((s) & 0x00ffffff) | |
44 | |
45 /* Generic relocation types (used by i386). */ | 25 /* Generic relocation types (used by i386). */ |
46 #define BFD_MACH_O_GENERIC_RELOC_VANILLA 0 | 26 #define BFD_MACH_O_GENERIC_RELOC_VANILLA 0 |
47 #define BFD_MACH_O_GENERIC_RELOC_PAIR 1 | 27 #define BFD_MACH_O_GENERIC_RELOC_PAIR 1 |
48 #define BFD_MACH_O_GENERIC_RELOC_SECTDIFF 2 | 28 #define BFD_MACH_O_GENERIC_RELOC_SECTDIFF 2 |
49 #define BFD_MACH_O_GENERIC_RELOC_PB_LA_PTR 3 | 29 #define BFD_MACH_O_GENERIC_RELOC_PB_LA_PTR 3 |
50 #define BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF 4 | 30 #define BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF 4 |
51 #define BFD_MACH_O_GENERIC_RELOC_TLV 5 | 31 #define BFD_MACH_O_GENERIC_RELOC_TLV 5 |
52 | 32 |
53 #endif /* _MACH_O_RELOC_H */ | 33 #endif /* _MACH_O_RELOC_H */ |
OLD | NEW |