Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/ia32/ia32_sysvec.c
Show First 20 Lines • Show All 77 Lines • ▼ Show 20 Lines | |||||
CTASSERT(sizeof(struct ia32_sigframe) == 800); | CTASSERT(sizeof(struct ia32_sigframe) == 800); | ||||
CTASSERT(sizeof(struct siginfo32) == 64); | CTASSERT(sizeof(struct siginfo32) == 64); | ||||
#ifdef COMPAT_FREEBSD4 | #ifdef COMPAT_FREEBSD4 | ||||
CTASSERT(sizeof(struct ia32_mcontext4) == 260); | CTASSERT(sizeof(struct ia32_mcontext4) == 260); | ||||
CTASSERT(sizeof(struct ia32_ucontext4) == 324); | CTASSERT(sizeof(struct ia32_ucontext4) == 324); | ||||
CTASSERT(sizeof(struct ia32_sigframe4) == 408); | CTASSERT(sizeof(struct ia32_sigframe4) == 408); | ||||
#endif | #endif | ||||
#include "vdso_ia32_offsets.h" | |||||
extern const char _binary_elf_vdso32_so_1_start[]; | |||||
extern const char _binary_elf_vdso32_so_1_end[]; | |||||
extern char _binary_elf_vdso32_so_1_size; | |||||
extern const char *freebsd32_syscallnames[]; | extern const char *freebsd32_syscallnames[]; | ||||
static SYSCTL_NODE(_compat, OID_AUTO, ia32, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, | static SYSCTL_NODE(_compat, OID_AUTO, ia32, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, | ||||
"ia32 mode"); | "ia32 mode"); | ||||
static u_long ia32_maxdsiz = IA32_MAXDSIZ; | static u_long ia32_maxdsiz = IA32_MAXDSIZ; | ||||
SYSCTL_ULONG(_compat_ia32, OID_AUTO, maxdsiz, CTLFLAG_RWTUN, &ia32_maxdsiz, 0, ""); | SYSCTL_ULONG(_compat_ia32, OID_AUTO, maxdsiz, CTLFLAG_RWTUN, &ia32_maxdsiz, 0, ""); | ||||
u_long ia32_maxssiz = IA32_MAXSSIZ; | u_long ia32_maxssiz = IA32_MAXSSIZ; | ||||
SYSCTL_ULONG(_compat_ia32, OID_AUTO, maxssiz, CTLFLAG_RWTUN, &ia32_maxssiz, 0, ""); | SYSCTL_ULONG(_compat_ia32, OID_AUTO, maxssiz, CTLFLAG_RWTUN, &ia32_maxssiz, 0, ""); | ||||
static u_long ia32_maxvmem = IA32_MAXVMEM; | static u_long ia32_maxvmem = IA32_MAXVMEM; | ||||
SYSCTL_ULONG(_compat_ia32, OID_AUTO, maxvmem, CTLFLAG_RWTUN, &ia32_maxvmem, 0, ""); | SYSCTL_ULONG(_compat_ia32, OID_AUTO, maxvmem, CTLFLAG_RWTUN, &ia32_maxvmem, 0, ""); | ||||
struct sysentvec ia32_freebsd_sysvec = { | struct sysentvec ia32_freebsd_sysvec = { | ||||
.sv_size = FREEBSD32_SYS_MAXSYSCALL, | .sv_size = FREEBSD32_SYS_MAXSYSCALL, | ||||
.sv_table = freebsd32_sysent, | .sv_table = freebsd32_sysent, | ||||
.sv_transtrap = NULL, | .sv_transtrap = NULL, | ||||
.sv_fixup = elf32_freebsd_fixup, | .sv_fixup = elf32_freebsd_fixup, | ||||
.sv_sendsig = ia32_sendsig, | .sv_sendsig = ia32_sendsig, | ||||
.sv_sigcode = ia32_sigcode, | .sv_sigcode = _binary_elf_vdso32_so_1_start, | ||||
.sv_szsigcode = &sz_ia32_sigcode, | .sv_szsigcode = (int *)&_binary_elf_vdso32_so_1_size, | ||||
.sv_sigcodeoff = VDSO_IA32_SIGCODE_OFFSET, | |||||
.sv_name = "FreeBSD ELF32", | .sv_name = "FreeBSD ELF32", | ||||
.sv_coredump = elf32_coredump, | .sv_coredump = elf32_coredump, | ||||
.sv_elf_core_osabi = ELFOSABI_FREEBSD, | .sv_elf_core_osabi = ELFOSABI_FREEBSD, | ||||
.sv_elf_core_abi_vendor = FREEBSD_ABI_VENDOR, | .sv_elf_core_abi_vendor = FREEBSD_ABI_VENDOR, | ||||
.sv_elf_core_prepare_notes = elf32_prepare_notes, | .sv_elf_core_prepare_notes = elf32_prepare_notes, | ||||
.sv_imgact_try = NULL, | .sv_imgact_try = NULL, | ||||
.sv_minsigstksz = MINSIGSTKSZ, | .sv_minsigstksz = MINSIGSTKSZ, | ||||
.sv_minuser = FREEBSD32_MINUSER, | .sv_minuser = FREEBSD32_MINUSER, | ||||
.sv_maxuser = FREEBSD32_MAXUSER, | .sv_maxuser = FREEBSD32_MAXUSER, | ||||
.sv_usrstack = FREEBSD32_USRSTACK, | .sv_usrstack = FREEBSD32_USRSTACK, | ||||
.sv_psstrings = FREEBSD32_PS_STRINGS, | .sv_psstrings = FREEBSD32_PS_STRINGS, | ||||
.sv_stackprot = VM_PROT_ALL, | .sv_stackprot = VM_PROT_ALL, | ||||
.sv_copyout_auxargs = elf32_freebsd_copyout_auxargs, | .sv_copyout_auxargs = elf32_freebsd_copyout_auxargs, | ||||
.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_ASLR | SV_IA32 | SV_ILP32 | | .sv_flags = SV_ABI_FREEBSD | SV_ASLR | SV_IA32 | SV_ILP32 | | ||||
SV_SHP | SV_TIMEKEEP | SV_RNG_SEED_VER, | SV_SHP | SV_TIMEKEEP | SV_RNG_SEED_VER | SV_DSO_SIG, | ||||
.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, | ||||
.sv_syscallnames = freebsd32_syscallnames, | .sv_syscallnames = freebsd32_syscallnames, | ||||
.sv_shared_page_base = FREEBSD32_SHAREDPAGE, | .sv_shared_page_base = FREEBSD32_SHAREDPAGE, | ||||
.sv_shared_page_len = PAGE_SIZE, | .sv_shared_page_len = PAGE_SIZE, | ||||
.sv_schedtail = NULL, | .sv_schedtail = NULL, | ||||
.sv_thread_detach = NULL, | .sv_thread_detach = NULL, | ||||
.sv_trap = NULL, | .sv_trap = NULL, | ||||
▲ Show 20 Lines • Show All 107 Lines • Show Last 20 Lines |