Lines Matching refs:seg_desc
1541 struct desc_struct seg_desc, old_desc; in __load_segment_descriptor() local
1551 memset(&seg_desc, 0, sizeof seg_desc); in __load_segment_descriptor()
1556 ctxt->ops->get_segment(ctxt, &dummy, &seg_desc, NULL, seg); in __load_segment_descriptor()
1557 set_desc_base(&seg_desc, selector << 4); in __load_segment_descriptor()
1561 set_desc_base(&seg_desc, selector << 4); in __load_segment_descriptor()
1562 set_desc_limit(&seg_desc, 0xffff); in __load_segment_descriptor()
1563 seg_desc.type = 3; in __load_segment_descriptor()
1564 seg_desc.p = 1; in __load_segment_descriptor()
1565 seg_desc.s = 1; in __load_segment_descriptor()
1566 seg_desc.dpl = 3; in __load_segment_descriptor()
1587 ret = read_segment_descriptor(ctxt, selector, &seg_desc, &desc_addr); in __load_segment_descriptor()
1596 if (seg <= VCPU_SREG_GS && !seg_desc.s) { in __load_segment_descriptor()
1602 if (!seg_desc.p) { in __load_segment_descriptor()
1607 dpl = seg_desc.dpl; in __load_segment_descriptor()
1615 if (rpl != cpl || (seg_desc.type & 0xa) != 0x2 || dpl != cpl) in __load_segment_descriptor()
1619 if (!(seg_desc.type & 8)) in __load_segment_descriptor()
1622 if (seg_desc.type & 4) { in __load_segment_descriptor()
1632 if (seg_desc.d && seg_desc.l) { in __load_segment_descriptor()
1644 if (seg_desc.s || (seg_desc.type != 1 && seg_desc.type != 9)) in __load_segment_descriptor()
1646 old_desc = seg_desc; in __load_segment_descriptor()
1647 seg_desc.type |= 2; /* busy */ in __load_segment_descriptor()
1648 ret = ctxt->ops->cmpxchg_emulated(ctxt, desc_addr, &old_desc, &seg_desc, in __load_segment_descriptor()
1649 sizeof(seg_desc), &ctxt->exception); in __load_segment_descriptor()
1654 if (seg_desc.s || seg_desc.type != 2) in __load_segment_descriptor()
1663 if ((seg_desc.type & 0xa) == 0x8 || in __load_segment_descriptor()
1664 (((seg_desc.type & 0xc) != 0xc) && in __load_segment_descriptor()
1670 if (seg_desc.s) { in __load_segment_descriptor()
1672 if (!(seg_desc.type & 1)) { in __load_segment_descriptor()
1673 seg_desc.type |= 1; in __load_segment_descriptor()
1675 &seg_desc); in __load_segment_descriptor()
1684 if (is_noncanonical_address(get_desc_base(&seg_desc) | in __load_segment_descriptor()
1689 ctxt->ops->set_segment(ctxt, selector, &seg_desc, base3, seg); in __load_segment_descriptor()
1691 *desc = seg_desc; in __load_segment_descriptor()