OLD | NEW |
1 /* | 1 /* |
2 * Derived from: | 2 * Derived from: |
3 * $FreeBSD: src/sys/sys/elf32.h,v 1.8.14.1 2005/12/30 22:13:58 marcel Exp $ | 3 * $FreeBSD: src/sys/sys/elf32.h,v 1.8.14.1 2005/12/30 22:13:58 marcel Exp $ |
4 * $FreeBSD: src/sys/sys/elf64.h,v 1.10.14.1 2005/12/30 22:13:58 marcel Exp $ | 4 * $FreeBSD: src/sys/sys/elf64.h,v 1.10.14.1 2005/12/30 22:13:58 marcel Exp $ |
5 * $FreeBSD: src/sys/sys/elf_common.h,v 1.15.8.1 2005/12/30 22:13:58 marcel Exp
$ | 5 * $FreeBSD: src/sys/sys/elf_common.h,v 1.15.8.1 2005/12/30 22:13:58 marcel Exp
$ |
6 * $FreeBSD: src/sys/alpha/include/elf.h,v 1.14 2003/09/25 01:10:22 peter Exp $ | 6 * $FreeBSD: src/sys/alpha/include/elf.h,v 1.14 2003/09/25 01:10:22 peter Exp $ |
7 * $FreeBSD: src/sys/amd64/include/elf.h,v 1.18 2004/08/03 08:21:48 dfr Exp $ | 7 * $FreeBSD: src/sys/amd64/include/elf.h,v 1.18 2004/08/03 08:21:48 dfr Exp $ |
8 * $FreeBSD: src/sys/arm/include/elf.h,v 1.5.2.1 2006/06/30 21:42:52 cognet Exp
$ | 8 * $FreeBSD: src/sys/arm/include/elf.h,v 1.5.2.1 2006/06/30 21:42:52 cognet Exp
$ |
9 * $FreeBSD: src/sys/i386/include/elf.h,v 1.16 2004/08/02 19:12:17 dfr Exp $ | 9 * $FreeBSD: src/sys/i386/include/elf.h,v 1.16 2004/08/02 19:12:17 dfr Exp $ |
10 * $FreeBSD: src/sys/powerpc/include/elf.h,v 1.7 2004/11/02 09:47:01 ssouhlal Ex
p $ | 10 * $FreeBSD: src/sys/powerpc/include/elf.h,v 1.7 2004/11/02 09:47:01 ssouhlal Ex
p $ |
(...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
848 Elf64_Word type; /* Section type. */ | 848 Elf64_Word type; /* Section type. */ |
849 Elf64_Xword flags; /* Section flags. */ | 849 Elf64_Xword flags; /* Section flags. */ |
850 Elf64_Addr addr; /* Address in memory image. */ | 850 Elf64_Addr addr; /* Address in memory image. */ |
851 Elf64_Off off; /* Offset in file. */ | 851 Elf64_Off off; /* Offset in file. */ |
852 Elf64_Xword size; /* Size in bytes. */ | 852 Elf64_Xword size; /* Size in bytes. */ |
853 Elf64_Word link; /* Index of a related section. */ | 853 Elf64_Word link; /* Index of a related section. */ |
854 Elf64_Word info; /* Depends on section type. */ | 854 Elf64_Word info; /* Depends on section type. */ |
855 Elf64_Xword addralign; /* Alignment in bytes. */ | 855 Elf64_Xword addralign; /* Alignment in bytes. */ |
856 Elf64_Xword entsize; /* Size of each entry in section. */ | 856 Elf64_Xword entsize; /* Size of each entry in section. */ |
857 ········ | 857 ········ |
858 » int» shnum; /* section number, not stored on disk */ | 858 » int» shnum; /* section number, not stored on disk */ |
| 859 » Sym*» secsym; /* section symbol, if needed; not on disk */ |
859 }; | 860 }; |
860 | 861 |
861 /* | 862 /* |
862 * Program header. | 863 * Program header. |
863 */ | 864 */ |
864 | 865 |
865 typedef struct { | 866 typedef struct { |
866 Elf64_Word type; /* Entry type. */ | 867 Elf64_Word type; /* Entry type. */ |
867 Elf64_Word flags; /* Access permission flags. */ | 868 Elf64_Word flags; /* Access permission flags. */ |
868 Elf64_Off off; /* File offset of contents. */ | 869 Elf64_Off off; /* File offset of contents. */ |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
991 ElfShdr* elfshname(char*); | 992 ElfShdr* elfshname(char*); |
992 ElfShdr* elfshreloc(Section*); | 993 ElfShdr* elfshreloc(Section*); |
993 void elfsetstring(char*, int); | 994 void elfsetstring(char*, int); |
994 void elfaddverneed(Sym*); | 995 void elfaddverneed(Sym*); |
995 void elfemitreloc(void); | 996 void elfemitreloc(void); |
996 void shsym(ElfShdr*, Sym*); | 997 void shsym(ElfShdr*, Sym*); |
997 void phsh(ElfPhdr*, ElfShdr*); | 998 void phsh(ElfPhdr*, ElfShdr*); |
998 void doelf(void); | 999 void doelf(void); |
999 void elfsetupplt(void); | 1000 void elfsetupplt(void); |
1000 void dwarfaddshstrings(Sym*); | 1001 void dwarfaddshstrings(Sym*); |
| 1002 void dwarfaddelfsectionsyms(void); |
1001 void dwarfaddelfheaders(void); | 1003 void dwarfaddelfheaders(void); |
1002 void asmbelf(vlong symo); | 1004 void asmbelf(vlong symo); |
1003 void asmbelfsetup(void); | 1005 void asmbelfsetup(void); |
1004 extern char linuxdynld[]; | 1006 extern char linuxdynld[]; |
1005 extern char freebsddynld[]; | 1007 extern char freebsddynld[]; |
1006 extern char netbsddynld[]; | 1008 extern char netbsddynld[]; |
1007 extern char openbsddynld[]; | 1009 extern char openbsddynld[]; |
1008 int elfreloc1(Reloc*, vlong sectoff); | 1010 int elfreloc1(Reloc*, vlong sectoff); |
| 1011 void putelfsectionsyms(void); |
1009 | 1012 |
1010 EXTERN int elfstrsize; | 1013 EXTERN int elfstrsize; |
1011 EXTERN char* elfstrdat; | 1014 EXTERN char* elfstrdat; |
1012 EXTERN int buildinfolen; | 1015 EXTERN int buildinfolen; |
1013 | 1016 |
1014 /* | 1017 /* |
1015 * Total amount of space to reserve at the start of the file | 1018 * Total amount of space to reserve at the start of the file |
1016 * for Header, PHeaders, SHeaders, and interp. | 1019 * for Header, PHeaders, SHeaders, and interp. |
1017 * May waste some. | 1020 * May waste some. |
1018 * On FreeBSD, cannot be larger than a page. | 1021 * On FreeBSD, cannot be larger than a page. |
1019 */ | 1022 */ |
1020 #define ELFRESERVE 3072 | 1023 #define ELFRESERVE 3072 |
OLD | NEW |