Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/ia32/ia32_syscall.c
Show First 20 Lines • Show All 264 Lines • ▼ Show 20 Lines | setup_lcall_gate(void) | ||||
struct i386_ldt_args uap; | struct i386_ldt_args uap; | ||||
struct user_segment_descriptor desc; | struct user_segment_descriptor desc; | ||||
uint32_t lcall_addr; | uint32_t lcall_addr; | ||||
int error; | int error; | ||||
bzero(&uap, sizeof(uap)); | bzero(&uap, sizeof(uap)); | ||||
uap.start = 0; | uap.start = 0; | ||||
uap.num = 1; | uap.num = 1; | ||||
lcall_addr = curproc->p_sysent->sv_psstrings - | lcall_addr = PROC_PS_STRINGS(curproc) - | ||||
(_binary_elf_vdso32_so_1_end - _binary_elf_vdso32_so_1_start) + | (_binary_elf_vdso32_so_1_end - _binary_elf_vdso32_so_1_start) + | ||||
VDSO_LCALL_TRAMP_OFFSET; | VDSO_LCALL_TRAMP_OFFSET; | ||||
bzero(&desc, sizeof(desc)); | bzero(&desc, sizeof(desc)); | ||||
desc.sd_type = SDT_MEMERA; | desc.sd_type = SDT_MEMERA; | ||||
desc.sd_dpl = SEL_UPL; | desc.sd_dpl = SEL_UPL; | ||||
desc.sd_p = 1; | desc.sd_p = 1; | ||||
desc.sd_def32 = 1; | desc.sd_def32 = 1; | ||||
desc.sd_gran = 1; | desc.sd_gran = 1; | ||||
Show All 11 Lines |