Changeset View
Changeset View
Standalone View
Standalone View
sys/powerpc/powerpc/elf64_machdep.c
| Show First 20 Lines • Show All 157 Lines • ▼ Show 20 Lines | static Elf64_Brandinfo freebsd_brand_info_elfv1 = { | ||||
| .sysvec = &elf64_freebsd_sysvec_v1, | .sysvec = &elf64_freebsd_sysvec_v1, | ||||
| .interp_newpath = NULL, | .interp_newpath = NULL, | ||||
| .brand_note = &elf64_freebsd_brandnote, | .brand_note = &elf64_freebsd_brandnote, | ||||
| .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE, | .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE, | ||||
| .header_supported = &ppc64_elfv1_header_match | .header_supported = &ppc64_elfv1_header_match | ||||
| }; | }; | ||||
| SYSINIT(elf64v1, SI_SUB_EXEC, SI_ORDER_ANY, | SYSINIT(elf64v1, SI_SUB_EXEC, SI_ORDER_ANY, | ||||
| (sysinit_cfunc_t) elf64_insert_brand_entry, | elf64_insert_brand_entry, &freebsd_brand_info_elfv1); | ||||
| &freebsd_brand_info_elfv1); | |||||
| static Elf64_Brandinfo freebsd_brand_info_elfv2 = { | static Elf64_Brandinfo freebsd_brand_info_elfv2 = { | ||||
| .brand = ELFOSABI_FREEBSD, | .brand = ELFOSABI_FREEBSD, | ||||
| .machine = EM_PPC64, | .machine = EM_PPC64, | ||||
| .compat_3_brand = "FreeBSD", | .compat_3_brand = "FreeBSD", | ||||
| .interp_path = "/libexec/ld-elf.so.1", | .interp_path = "/libexec/ld-elf.so.1", | ||||
| .sysvec = &elf64_freebsd_sysvec_v2, | .sysvec = &elf64_freebsd_sysvec_v2, | ||||
| .interp_newpath = NULL, | .interp_newpath = NULL, | ||||
| .brand_note = &elf64_freebsd_brandnote, | .brand_note = &elf64_freebsd_brandnote, | ||||
| .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE, | .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE, | ||||
| .header_supported = &ppc64_elfv2_header_match | .header_supported = &ppc64_elfv2_header_match | ||||
| }; | }; | ||||
| SYSINIT(elf64v2, SI_SUB_EXEC, SI_ORDER_ANY, | SYSINIT(elf64v2, SI_SUB_EXEC, SI_ORDER_ANY, | ||||
| (sysinit_cfunc_t) elf64_insert_brand_entry, | elf64_insert_brand_entry, &freebsd_brand_info_elfv2); | ||||
| &freebsd_brand_info_elfv2); | |||||
| static Elf64_Brandinfo freebsd_brand_oinfo = { | static Elf64_Brandinfo freebsd_brand_oinfo = { | ||||
| .brand = ELFOSABI_FREEBSD, | .brand = ELFOSABI_FREEBSD, | ||||
| .machine = EM_PPC64, | .machine = EM_PPC64, | ||||
| .compat_3_brand = "FreeBSD", | .compat_3_brand = "FreeBSD", | ||||
| .interp_path = "/usr/libexec/ld-elf.so.1", | .interp_path = "/usr/libexec/ld-elf.so.1", | ||||
| .sysvec = &elf64_freebsd_sysvec_v1, | .sysvec = &elf64_freebsd_sysvec_v1, | ||||
| .interp_newpath = NULL, | .interp_newpath = NULL, | ||||
| .brand_note = &elf64_freebsd_brandnote, | .brand_note = &elf64_freebsd_brandnote, | ||||
| .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE, | .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE, | ||||
| .header_supported = &ppc64_elfv1_header_match | .header_supported = &ppc64_elfv1_header_match | ||||
| }; | }; | ||||
| SYSINIT(oelf64, SI_SUB_EXEC, SI_ORDER_ANY, | SYSINIT(oelf64, SI_SUB_EXEC, SI_ORDER_ANY, | ||||
| (sysinit_cfunc_t) elf64_insert_brand_entry, | elf64_insert_brand_entry, &freebsd_brand_oinfo); | ||||
| &freebsd_brand_oinfo); | |||||
| void elf_reloc_self(Elf_Dyn *dynp, Elf_Addr relocbase); | void elf_reloc_self(Elf_Dyn *dynp, Elf_Addr relocbase); | ||||
| static void | static void | ||||
| ppc64_init_sysvecs(void *arg) | ppc64_init_sysvecs(void *arg) | ||||
| { | { | ||||
| exec_sysvec_init(&elf64_freebsd_sysvec_v2); | exec_sysvec_init(&elf64_freebsd_sysvec_v2); | ||||
| exec_sysvec_init_secondary(&elf64_freebsd_sysvec_v2, | exec_sysvec_init_secondary(&elf64_freebsd_sysvec_v2, | ||||
| ▲ Show 20 Lines • Show All 253 Lines • Show Last 20 Lines | |||||