Lines Matching refs:seg_desc

1597 	struct desc_struct seg_desc, old_desc;  in __load_segment_descriptor()  local
1607 memset(&seg_desc, 0, sizeof seg_desc); in __load_segment_descriptor()
1612 ctxt->ops->get_segment(ctxt, &dummy, &seg_desc, NULL, seg); in __load_segment_descriptor()
1613 set_desc_base(&seg_desc, selector << 4); in __load_segment_descriptor()
1617 set_desc_base(&seg_desc, selector << 4); in __load_segment_descriptor()
1618 set_desc_limit(&seg_desc, 0xffff); in __load_segment_descriptor()
1619 seg_desc.type = 3; in __load_segment_descriptor()
1620 seg_desc.p = 1; in __load_segment_descriptor()
1621 seg_desc.s = 1; in __load_segment_descriptor()
1622 seg_desc.dpl = 3; in __load_segment_descriptor()
1645 seg_desc.type = 3; in __load_segment_descriptor()
1646 seg_desc.p = 1; in __load_segment_descriptor()
1647 seg_desc.s = 1; in __load_segment_descriptor()
1648 seg_desc.dpl = cpl; in __load_segment_descriptor()
1649 seg_desc.d = 1; in __load_segment_descriptor()
1650 seg_desc.g = 1; in __load_segment_descriptor()
1657 ret = read_segment_descriptor(ctxt, selector, &seg_desc, &desc_addr); in __load_segment_descriptor()
1666 if (seg <= VCPU_SREG_GS && !seg_desc.s) { in __load_segment_descriptor()
1672 if (!seg_desc.p) { in __load_segment_descriptor()
1677 dpl = seg_desc.dpl; in __load_segment_descriptor()
1685 if (rpl != cpl || (seg_desc.type & 0xa) != 0x2 || dpl != cpl) in __load_segment_descriptor()
1689 if (!(seg_desc.type & 8)) in __load_segment_descriptor()
1692 if (seg_desc.type & 4) { in __load_segment_descriptor()
1702 if (seg_desc.d && seg_desc.l) { in __load_segment_descriptor()
1714 if (seg_desc.s || (seg_desc.type != 1 && seg_desc.type != 9)) in __load_segment_descriptor()
1716 old_desc = seg_desc; in __load_segment_descriptor()
1717 seg_desc.type |= 2; /* busy */ in __load_segment_descriptor()
1718 ret = ctxt->ops->cmpxchg_emulated(ctxt, desc_addr, &old_desc, &seg_desc, in __load_segment_descriptor()
1719 sizeof(seg_desc), &ctxt->exception); in __load_segment_descriptor()
1724 if (seg_desc.s || seg_desc.type != 2) in __load_segment_descriptor()
1733 if ((seg_desc.type & 0xa) == 0x8 || in __load_segment_descriptor()
1734 (((seg_desc.type & 0xc) != 0xc) && in __load_segment_descriptor()
1740 if (seg_desc.s) { in __load_segment_descriptor()
1742 if (!(seg_desc.type & 1)) { in __load_segment_descriptor()
1743 seg_desc.type |= 1; in __load_segment_descriptor()
1745 &seg_desc); in __load_segment_descriptor()
1753 if (emul_is_noncanonical_address(get_desc_base(&seg_desc) | in __load_segment_descriptor()
1758 ctxt->ops->set_segment(ctxt, selector, &seg_desc, base3, seg); in __load_segment_descriptor()
1760 *desc = seg_desc; in __load_segment_descriptor()