Lines Matching defs:ldt
351 LDT/GDT simulation
354 /* Details of the LDT simulation
358 in it to have its own LDT. Almost all programs never do this --
360 allocates the structure, which is just as well as an LDT occupies
363 A thread may choose to modify its LDT entries, by doing the
365 allocate an LDT structure for it. Each LDT entry is basically a
370 To use an LDT entry, a thread loads one of the segment registers
371 (%cs, %ss, %ds, %es, %fs, %gs) with the index of the LDT entry (0
375 LDT entry by prefixing the insn with a so-called segment-override
377 holds the LDT index.
382 LDT simulation.
385 an LDT (with the same normally-never-allocated optimisation that
390 override prefix, the relevant LDT entry for the thread is
398 copy the simulated LDT into the real one, and that's prohibitively
402 LDT being correct, so we can get away with it. Apart from that the
411 linux/kernel/ldt.c). */
467 /* Create a zeroed-out LDT. */
474 /* Free up an LDT or GDT allocated by the above fns. */
510 "ldt = 0x%lx, gdt = 0x%lx\n",
526 * linux/kernel/ldt.c
534 * synchronization of reads and writes done to the LDT has to be
543 UChar* ldt;
552 ldt = (UChar*)(VG_(threads)[tid].arch.vex.guest_LDT);
554 if (ldt == NULL)
555 /* LDT not allocated, meaning all entries are null */
564 ptr[i] = ldt[i];
575 VexGuestX86SegDescr* ldt;
586 ldt = (VexGuestX86SegDescr*)VG_(threads)[tid].arch.vex.guest_LDT;
603 /* If this thread doesn't have an LDT, we'd better allocate it
605 if (ldt == NULL) {
606 ldt = alloc_zeroed_x86_LDT();
607 VG_(threads)[tid].arch.vex.guest_LDT = (HWord)ldt;
611 translate_to_hw_format ( ldt_info, &ldt[ldt_info->entry_number], oldmode );
744 /* On x86, we have to dump the LDT and GDT. */
758 /* We inherit our parent's LDT. */
1052 /* read the LDT into ptr */
1056 /* write the LDT with the entry pointed at by ptr */