Changeset View
Changeset View
Standalone View
Standalone View
sys/i386/i386/elf_machdep.c
| Show First 20 Lines • Show All 86 Lines • ▼ Show 20 Lines | struct sysentvec elf32_freebsd_sysvec = { | ||||
| .sv_onexec_old = exec_onexec_old, | .sv_onexec_old = exec_onexec_old, | ||||
| .sv_onexit = exit_onexit, | .sv_onexit = exit_onexit, | ||||
| .sv_set_fork_retval = x86_set_fork_retval, | .sv_set_fork_retval = x86_set_fork_retval, | ||||
| .sv_regset_begin = SET_BEGIN(__elfN(regset)), | .sv_regset_begin = SET_BEGIN(__elfN(regset)), | ||||
| .sv_regset_end = SET_LIMIT(__elfN(regset)), | .sv_regset_end = SET_LIMIT(__elfN(regset)), | ||||
| }; | }; | ||||
| INIT_SYSENTVEC(elf32_sysvec, &elf32_freebsd_sysvec); | INIT_SYSENTVEC(elf32_sysvec, &elf32_freebsd_sysvec); | ||||
| static Elf32_Brandinfo freebsd_brand_info = { | static const Elf32_Brandinfo freebsd_brand_info = { | ||||
| .brand = ELFOSABI_FREEBSD, | .brand = ELFOSABI_FREEBSD, | ||||
| .machine = EM_386, | .machine = EM_386, | ||||
| .compat_3_brand = "FreeBSD", | .compat_3_brand = "FreeBSD", | ||||
| .interp_path = "/libexec/ld-elf.so.1", | .interp_path = "/libexec/ld-elf.so.1", | ||||
| .sysvec = &elf32_freebsd_sysvec, | .sysvec = &elf32_freebsd_sysvec, | ||||
| .interp_newpath = NULL, | .interp_newpath = NULL, | ||||
| .brand_note = &elf32_freebsd_brandnote, | .brand_note = &elf32_freebsd_brandnote, | ||||
| .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE | .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE | ||||
| }; | }; | ||||
| SYSINIT(elf32, SI_SUB_EXEC, SI_ORDER_FIRST, | C_SYSINIT(elf32, SI_SUB_EXEC, SI_ORDER_FIRST, | ||||
| (sysinit_cfunc_t) elf32_insert_brand_entry, | (sysinit_cfunc_t) elf32_insert_brand_entry, | ||||
| &freebsd_brand_info); | &freebsd_brand_info); | ||||
| static Elf32_Brandinfo freebsd_brand_oinfo = { | static const Elf32_Brandinfo freebsd_brand_oinfo = { | ||||
| .brand = ELFOSABI_FREEBSD, | .brand = ELFOSABI_FREEBSD, | ||||
| .machine = EM_386, | .machine = EM_386, | ||||
| .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 = &elf32_freebsd_sysvec, | .sysvec = &elf32_freebsd_sysvec, | ||||
| .interp_newpath = NULL, | .interp_newpath = NULL, | ||||
| .brand_note = &elf32_freebsd_brandnote, | .brand_note = &elf32_freebsd_brandnote, | ||||
| .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE | .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE | ||||
| }; | }; | ||||
| SYSINIT(oelf32, SI_SUB_EXEC, SI_ORDER_ANY, | C_SYSINIT(oelf32, SI_SUB_EXEC, SI_ORDER_ANY, | ||||
| (sysinit_cfunc_t) elf32_insert_brand_entry, | (sysinit_cfunc_t) elf32_insert_brand_entry, | ||||
| &freebsd_brand_oinfo); | &freebsd_brand_oinfo); | ||||
| static Elf32_Brandinfo kfreebsd_brand_info = { | static const Elf32_Brandinfo kfreebsd_brand_info = { | ||||
| .brand = ELFOSABI_FREEBSD, | .brand = ELFOSABI_FREEBSD, | ||||
| .machine = EM_386, | .machine = EM_386, | ||||
| .compat_3_brand = "FreeBSD", | .compat_3_brand = "FreeBSD", | ||||
| .interp_path = "/lib/ld.so.1", | .interp_path = "/lib/ld.so.1", | ||||
| .sysvec = &elf32_freebsd_sysvec, | .sysvec = &elf32_freebsd_sysvec, | ||||
| .interp_newpath = NULL, | .interp_newpath = NULL, | ||||
| .brand_note = &elf32_kfreebsd_brandnote, | .brand_note = &elf32_kfreebsd_brandnote, | ||||
| .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE_MANDATORY | .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE_MANDATORY | ||||
| }; | }; | ||||
| SYSINIT(kelf32, SI_SUB_EXEC, SI_ORDER_ANY, | C_SYSINIT(kelf32, SI_SUB_EXEC, SI_ORDER_ANY, | ||||
| (sysinit_cfunc_t) elf32_insert_brand_entry, | (sysinit_cfunc_t) elf32_insert_brand_entry, | ||||
| &kfreebsd_brand_info); | &kfreebsd_brand_info); | ||||
| void | void | ||||
| elf32_dump_thread(struct thread *td, void *dst, size_t *off) | elf32_dump_thread(struct thread *td, void *dst, size_t *off) | ||||
| { | { | ||||
| void *buf; | void *buf; | ||||
| size_t len; | size_t len; | ||||
| ▲ Show 20 Lines • Show All 163 Lines • Show Last 20 Lines | |||||