/openbmc/linux/arch/x86/um/ |
H A D | ldt.c | 60 uml_ldt_t *ldt = ¤t->mm->context.arch.ldt; in read_ldt() local 62 if (!ldt->entry_count) in read_ldt() 68 mutex_lock(&ldt->lock); in read_ldt() 69 if (ldt->entry_count <= LDT_DIRECT_ENTRIES) { in read_ldt() 73 if (copy_to_user(ptr, ldt->u.entries, size)) in read_ldt() 79 for (i=0; i<ldt->entry_count/LDT_ENTRIES_PER_PAGE && bytecount; in read_ldt() 84 if (copy_to_user(ptr, ldt->u.pages[i], size)) { in read_ldt() 92 mutex_unlock(&ldt->lock); in read_ldt() 125 uml_ldt_t *ldt = ¤t->mm->context.arch.ldt; in write_ldt() local 149 mutex_lock(&ldt->lock); in write_ldt() [all …]
|
H A D | Makefile | 12 obj-y = bugs_$(BITS).o delay.o fault.o ldt.o \
|
/openbmc/linux/arch/x86/kernel/ |
H A D | ldt.c | 44 struct ldt_struct *ldt; in load_mm_ldt() local 47 ldt = READ_ONCE(mm->context.ldt); in load_mm_ldt() 63 if (unlikely(ldt)) { in load_mm_ldt() 65 if (WARN_ON_ONCE((unsigned long)ldt->slot > 1)) { in load_mm_ldt() 81 set_ldt(ldt_slot_va(ldt->slot), ldt->nr_entries); in load_mm_ldt() 83 set_ldt(ldt->entries, ldt->nr_entries); in load_mm_ldt() 109 if (unlikely((unsigned long)prev->context.ldt | in switch_ldt() 110 (unsigned long)next->context.ldt)) in switch_ldt() 193 if (mm->context.ldt) { in do_sanity_check() 243 if (boot_cpu_has(X86_FEATURE_PTI) && !mm->context.ldt) in map_ldt_struct_to_user() [all …]
|
H A D | step.c | 37 if (unlikely(!child->mm->context.ldt || in convert_ip_to_linear() 38 seg >= child->mm->context.ldt->nr_entries)) in convert_ip_to_linear() 41 desc = &child->mm->context.ldt->entries[seg]; in convert_ip_to_linear()
|
H A D | process_64.c | 409 struct ldt_struct *ldt; in x86_fsgsbase_read_task() local 417 ldt = task->mm->context.ldt; in x86_fsgsbase_read_task() 418 if (unlikely(!ldt || idx >= ldt->nr_entries)) in x86_fsgsbase_read_task() 421 base = get_desc_base(ldt->entries + idx); in x86_fsgsbase_read_task()
|
H A D | doublefault_32.c | 91 .ldt = 0,
|
/openbmc/qemu/tests/tcg/i386/ |
H A D | test-i386.c | 1292 struct modify_ldt_ldt_s ldt; in test_segs() local 1301 ldt.entry_number = 1; in test_segs() 1302 ldt.base_addr = (unsigned long)&seg_data1; in test_segs() 1303 ldt.limit = (sizeof(seg_data1) + 0xfff) >> 12; in test_segs() 1304 ldt.seg_32bit = 1; in test_segs() 1305 ldt.contents = MODIFY_LDT_CONTENTS_DATA; in test_segs() 1306 ldt.read_exec_only = 0; in test_segs() 1307 ldt.limit_in_pages = 1; in test_segs() 1308 ldt.seg_not_present = 0; in test_segs() 1309 ldt.useable = 1; in test_segs() [all …]
|
/openbmc/linux/arch/x86/include/asm/ |
H A D | desc.h | 114 #define load_ldt(ldt) asm volatile("lldt %0"::"m" (ldt)) argument 126 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries) in paravirt_alloc_ldt() argument 130 static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries) in paravirt_free_ldt() argument 135 #define store_ldt(ldt) asm("sldt %0" : "=m"(ldt)) argument 142 static inline void native_write_ldt_entry(struct desc_struct *ldt, int entry, const void *desc) in native_write_ldt_entry() argument 144 memcpy(&ldt[entry], desc, 8); in native_write_ldt_entry() 198 ldt_desc ldt; in native_set_ldt() local 200 set_tssldt_descriptor(&ldt, (unsigned long)addr, DESC_LDT, in native_set_ldt() 203 &ldt, DESC_LDT); in native_set_ldt()
|
H A D | suspend_32.h | 20 u16 ldt; member
|
H A D | suspend_64.h | 49 u16 ldt; member
|
H A D | mmu.h | 44 struct ldt_struct *ldt; member
|
H A D | paravirt.h | 266 static inline void paravirt_alloc_ldt(struct desc_struct *ldt, unsigned entries) in paravirt_alloc_ldt() argument 268 PVOP_VCALL2(cpu.alloc_ldt, ldt, entries); in paravirt_alloc_ldt() 271 static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries) in paravirt_free_ldt() argument 273 PVOP_VCALL2(cpu.free_ldt, ldt, entries); in paravirt_free_ldt()
|
H A D | paravirt_types.h | 81 void (*write_ldt_entry)(struct desc_struct *ldt, int entrynum, 87 void (*alloc_ldt)(struct desc_struct *ldt, unsigned entries); 88 void (*free_ldt)(struct desc_struct *ldt, unsigned entries);
|
/openbmc/qemu/target/i386/tcg/sysemu/ |
H A D | smm_helper.c | 69 x86_stw_phys(cs, sm_state + 0x7e70, env->ldt.selector); in do_smm_enter() 70 x86_stq_phys(cs, sm_state + 0x7e78, env->ldt.base); in do_smm_enter() 71 x86_stl_phys(cs, sm_state + 0x7e74, env->ldt.limit); in do_smm_enter() 72 x86_stw_phys(cs, sm_state + 0x7e72, (env->ldt.flags >> 8) & 0xf0ff); in do_smm_enter() 131 x86_stl_phys(cs, sm_state + 0x7fc0, env->ldt.selector); in do_smm_enter() 132 x86_stl_phys(cs, sm_state + 0x7f80, env->ldt.base); in do_smm_enter() 133 x86_stl_phys(cs, sm_state + 0x7f7c, env->ldt.limit); in do_smm_enter() 134 x86_stl_phys(cs, sm_state + 0x7f78, (env->ldt.flags >> 8) & 0xf0ff); in do_smm_enter() 209 env->ldt.selector = x86_lduw_phys(cs, sm_state + 0x7e70); in helper_rsm() 210 env->ldt.base = x86_ldq_phys(cs, sm_state + 0x7e78); in helper_rsm() [all …]
|
/openbmc/linux/tools/testing/selftests/x86/ |
H A D | ldt_gdt.c | 63 static void check_invalid_segment(uint16_t index, int ldt) in check_invalid_segment() argument 66 uint32_t selector = (index << 3) | (ldt << 2) | 3; in check_invalid_segment() 83 (ldt ? "LDT" : "GDT"), index); in check_invalid_segment() 87 (ldt ? "LDT" : "GDT"), index); in check_invalid_segment() 91 static void check_valid_segment(uint16_t index, int ldt, in check_valid_segment() argument 96 uint32_t selector = (index << 3) | (ldt << 2) | 3; in check_valid_segment() 113 (ldt ? "LDT" : "GDT"), index); in check_valid_segment() 127 (ldt ? "LDT" : "GDT"), index, ar, expected_ar); in check_valid_segment() 131 (ldt ? "LDT" : "GDT"), index, limit, expected_limit); in check_valid_segment() 135 (ldt ? "LDT" : "GDT"), index, ar, limit); in check_valid_segment() [all …]
|
/openbmc/linux/arch/x86/math-emu/ |
H A D | fpu_system.h | 31 if (current->mm->context.ldt && seg < current->mm->context.ldt->nr_entries) in FPU_get_ldt_descriptor() 32 ret = current->mm->context.ldt->entries[seg]; in FPU_get_ldt_descriptor()
|
/openbmc/linux/arch/x86/hyperv/ |
H A D | hv_vtl.c | 79 struct ldttss_desc *ldt; in hv_vtl_bringup_vcpu() local 92 ldt = (struct ldttss_desc *)(gdt + GDT_ENTRY_LDT); in hv_vtl_bringup_vcpu() 143 input->vp_context.ldtr.base = hv_vtl_system_desc_base(ldt); in hv_vtl_bringup_vcpu() 144 input->vp_context.ldtr.limit = hv_vtl_system_desc_limit(ldt); in hv_vtl_bringup_vcpu()
|
/openbmc/linux/arch/x86/lib/ |
H A D | insn-eval.c | 629 struct ldt_struct *ldt; in get_desc() local 635 ldt = current->active_mm->context.ldt; in get_desc() 636 if (ldt && sel < ldt->nr_entries) { in get_desc() 637 *out = ldt->entries[sel]; in get_desc()
|
/openbmc/qemu/target/i386/hvf/ |
H A D | x86_task.c | 79 vmx_write_segment_selector(cpu, (x68_segment_selector){{tss->ldt}}, R_LDTR); in load_state_from_tss32() 94 uint32_t ldt_sel_offset = offsetof(struct x86_tss_segment32, ldt); in task_switch_32()
|
/openbmc/qemu/contrib/elf2dmp/ |
H A D | qemu_elf.h | 27 QEMUCPUSegment ldt, tr, gdt, idt; member
|
/openbmc/linux/arch/x86/um/asm/ |
H A D | mm_context.h | 67 uml_ldt_t ldt; member
|
/openbmc/linux/arch/x86/kvm/ |
H A D | tss.h | 57 u16 ldt; member
|
/openbmc/qemu/target/i386/tcg/ |
H A D | seg_helper.c | 141 dt = &env->ldt; in load_segment_ra() 534 env->ldt.selector = new_ldt & ~4; in switch_tss_ra() 535 env->ldt.base = 0; in switch_tss_ra() 536 env->ldt.limit = 0; in switch_tss_ra() 537 env->ldt.flags = 0; in switch_tss_ra() 559 load_seg_cache_raw_dt(&env->ldt, e1, e2); in switch_tss_ra() 1258 env->ldt.base = 0; in helper_lldt() 1259 env->ldt.limit = 0; in helper_lldt() 1291 load_seg_cache_raw_dt(&env->ldt, e1, e2); in helper_lldt() 1292 env->ldt.base |= (target_ulong)e3 << 32; in helper_lldt() [all …]
|
/openbmc/linux/tools/arch/x86/include/uapi/asm/ |
H A D | kvm.h | 147 struct kvm_segment tr, ldt; member 158 struct kvm_segment tr, ldt; member
|
/openbmc/linux/arch/x86/include/uapi/asm/ |
H A D | kvm.h | 147 struct kvm_segment tr, ldt; member 158 struct kvm_segment tr, ldt; member
|