| 1907 | } |
| 1908 | |
| 1909 | void |
| 1910 | link_elf_ireloc(caddr_t kmdp) |
| 1911 | { |
| 1912 | struct elf_file eff; |
| 1913 | elf_file_t ef; |
| 1914 | |
| 1915 | ef = &eff; |
| 1916 | |
| 1917 | bzero_early(ef, sizeof(*ef)); |
| 1918 | |
| 1919 | ef->modptr = kmdp; |
| 1920 | ef->dynamic = (Elf_Dyn *)&_DYNAMIC; |
| 1921 | |
| 1922 | #ifdef RELOCATABLE_KERNEL |
| 1923 | ef->address = (caddr_t) (__startkernel - KERNBASE); |
| 1924 | #else |
| 1925 | ef->address = 0; |
| 1926 | #endif |
| 1927 | parse_dynamic(ef); |
| 1928 | |
| 1929 | link_elf_preload_parse_symbols(ef); |
| 1930 | relocate_file1(ef, elf_lookup_ifunc, elf_reloc, true); |
| 1931 | } |
| 1932 | |
| 1933 | #if defined(__aarch64__) || defined(__amd64__) |
| 1934 | void |
no test coverage detected