Lines Matching refs:seg_desc
1690 struct desc_struct seg_desc, old_desc;
1700 memset(&seg_desc, 0, sizeof(seg_desc));
1705 ctxt->ops->get_segment(ctxt, &dummy, &seg_desc, NULL, seg);
1706 set_desc_base(&seg_desc, selector << 4);
1710 set_desc_base(&seg_desc, selector << 4);
1711 set_desc_limit(&seg_desc, 0xffff);
1712 seg_desc.type = 3;
1713 seg_desc.p = 1;
1714 seg_desc.s = 1;
1715 seg_desc.dpl = 3;
1738 seg_desc.type = 3;
1739 seg_desc.p = 1;
1740 seg_desc.s = 1;
1741 seg_desc.dpl = cpl;
1742 seg_desc.d = 1;
1743 seg_desc.g = 1;
1750 ret = read_segment_descriptor(ctxt, selector, &seg_desc, &desc_addr);
1759 if (seg <= VCPU_SREG_GS && !seg_desc.s) {
1765 dpl = seg_desc.dpl;
1773 if (rpl != cpl || (seg_desc.type & 0xa) != 0x2 || dpl != cpl)
1777 if (!(seg_desc.type & 8))
1780 if (seg_desc.type & 4) {
1790 if (seg_desc.d && seg_desc.l) {
1802 if (seg_desc.s || (seg_desc.type != 1 && seg_desc.type != 9))
1806 if (seg_desc.s || seg_desc.type != 2)
1815 if ((seg_desc.type & 0xa) == 0x8 ||
1816 (((seg_desc.type & 0xc) != 0xc) &&
1822 if (!seg_desc.p) {
1827 if (seg_desc.s) {
1829 if (!(seg_desc.type & 1)) {
1830 seg_desc.type |= 1;
1832 &seg_desc);
1840 if (emul_is_noncanonical_address(get_desc_base(&seg_desc) |
1846 old_desc = seg_desc;
1847 seg_desc.type |= 2; /* busy */
1848 ret = ctxt->ops->cmpxchg_emulated(ctxt, desc_addr, &old_desc, &seg_desc,
1849 sizeof(seg_desc), &ctxt->exception);
1854 ctxt->ops->set_segment(ctxt, selector, &seg_desc, base3, seg);
1856 *desc = seg_desc;