Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/imgact_aout.c
Show First 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | struct sysentvec aout_sysvec = { | ||||
.sv_name = "FreeBSD a.out", | .sv_name = "FreeBSD a.out", | ||||
.sv_coredump = NULL, | .sv_coredump = NULL, | ||||
.sv_imgact_try = NULL, | .sv_imgact_try = NULL, | ||||
.sv_minsigstksz = MINSIGSTKSZ, | .sv_minsigstksz = MINSIGSTKSZ, | ||||
.sv_minuser = VM_MIN_ADDRESS, | .sv_minuser = VM_MIN_ADDRESS, | ||||
.sv_maxuser = AOUT32_USRSTACK, | .sv_maxuser = AOUT32_USRSTACK, | ||||
.sv_usrstack = AOUT32_USRSTACK, | .sv_usrstack = AOUT32_USRSTACK, | ||||
.sv_psstrings = AOUT32_PS_STRINGS, | .sv_psstrings = AOUT32_PS_STRINGS, | ||||
.sv_psstringssz = sizeof(struct ps_strings), | |||||
.sv_stackprot = VM_PROT_ALL, | .sv_stackprot = VM_PROT_ALL, | ||||
.sv_copyout_strings = exec_copyout_strings, | .sv_copyout_strings = exec_copyout_strings, | ||||
.sv_setregs = exec_setregs, | .sv_setregs = exec_setregs, | ||||
.sv_fixlimit = NULL, | .sv_fixlimit = NULL, | ||||
.sv_maxssiz = NULL, | .sv_maxssiz = NULL, | ||||
.sv_flags = SV_ABI_FREEBSD | SV_AOUT | SV_IA32 | SV_ILP32, | .sv_flags = SV_ABI_FREEBSD | SV_AOUT | SV_IA32 | SV_ILP32, | ||||
.sv_set_syscall_retval = cpu_set_syscall_retval, | .sv_set_syscall_retval = cpu_set_syscall_retval, | ||||
.sv_fetch_syscall_args = cpu_fetch_syscall_args, | .sv_fetch_syscall_args = cpu_fetch_syscall_args, | ||||
Show All 34 Lines | struct sysentvec aout_sysvec = { | ||||
.sv_name = "FreeBSD a.out", | .sv_name = "FreeBSD a.out", | ||||
.sv_coredump = NULL, | .sv_coredump = NULL, | ||||
.sv_imgact_try = NULL, | .sv_imgact_try = NULL, | ||||
.sv_minsigstksz = MINSIGSTKSZ, | .sv_minsigstksz = MINSIGSTKSZ, | ||||
.sv_minuser = AOUT32_MINUSER, | .sv_minuser = AOUT32_MINUSER, | ||||
.sv_maxuser = AOUT32_USRSTACK, | .sv_maxuser = AOUT32_USRSTACK, | ||||
.sv_usrstack = AOUT32_USRSTACK, | .sv_usrstack = AOUT32_USRSTACK, | ||||
.sv_psstrings = AOUT32_PS_STRINGS, | .sv_psstrings = AOUT32_PS_STRINGS, | ||||
.sv_psstringssz = sizeof(struct freebsd32_ps_strings), | |||||
.sv_stackprot = VM_PROT_ALL, | .sv_stackprot = VM_PROT_ALL, | ||||
.sv_copyout_strings = freebsd32_copyout_strings, | .sv_copyout_strings = freebsd32_copyout_strings, | ||||
.sv_setregs = ia32_setregs, | .sv_setregs = ia32_setregs, | ||||
.sv_fixlimit = ia32_fixlimit, | .sv_fixlimit = ia32_fixlimit, | ||||
.sv_maxssiz = &ia32_maxssiz, | .sv_maxssiz = &ia32_maxssiz, | ||||
.sv_flags = SV_ABI_FREEBSD | SV_AOUT | SV_IA32 | SV_ILP32, | .sv_flags = SV_ABI_FREEBSD | SV_AOUT | SV_IA32 | SV_ILP32, | ||||
.sv_set_syscall_retval = ia32_set_syscall_retval, | .sv_set_syscall_retval = ia32_set_syscall_retval, | ||||
.sv_fetch_syscall_args = ia32_fetch_syscall_args, | .sv_fetch_syscall_args = ia32_fetch_syscall_args, | ||||
▲ Show 20 Lines • Show All 192 Lines • ▼ Show 20 Lines | #endif | ||||
vm_map_unlock(map); | vm_map_unlock(map); | ||||
/* Fill in process VM information */ | /* Fill in process VM information */ | ||||
vmspace->vm_tsize = a_out->a_text >> PAGE_SHIFT; | vmspace->vm_tsize = a_out->a_text >> PAGE_SHIFT; | ||||
vmspace->vm_dsize = (a_out->a_data + bss_size) >> PAGE_SHIFT; | vmspace->vm_dsize = (a_out->a_data + bss_size) >> PAGE_SHIFT; | ||||
vmspace->vm_taddr = (caddr_t) (uintptr_t) virtual_offset; | vmspace->vm_taddr = (caddr_t) (uintptr_t) virtual_offset; | ||||
vmspace->vm_daddr = (caddr_t) (uintptr_t) | vmspace->vm_daddr = (caddr_t) (uintptr_t) | ||||
(virtual_offset + a_out->a_text); | (virtual_offset + a_out->a_text); | ||||
error = exec_map_stack(imgp); | |||||
if (error != 0) | |||||
return (error); | |||||
/* Fill in image_params */ | /* Fill in image_params */ | ||||
imgp->interpreted = 0; | imgp->interpreted = 0; | ||||
imgp->entry_addr = a_out->a_entry; | imgp->entry_addr = a_out->a_entry; | ||||
imgp->proc->p_sysent = &aout_sysvec; | imgp->proc->p_sysent = &aout_sysvec; | ||||
return (0); | return (0); | ||||
Show All 10 Lines |