Lines Matching refs:seg_desc
1556 struct desc_struct seg_desc, old_desc;
1566 memset(&seg_desc, 0, sizeof(seg_desc));
1571 ctxt->ops->get_segment(ctxt, &dummy, &seg_desc, NULL, seg);
1572 set_desc_base(&seg_desc, selector << 4);
1576 set_desc_base(&seg_desc, selector << 4);
1577 set_desc_limit(&seg_desc, 0xffff);
1578 seg_desc.type = 3;
1579 seg_desc.p = 1;
1580 seg_desc.s = 1;
1581 seg_desc.dpl = 3;
1604 seg_desc.type = 3;
1605 seg_desc.p = 1;
1606 seg_desc.s = 1;
1607 seg_desc.dpl = cpl;
1608 seg_desc.d = 1;
1609 seg_desc.g = 1;
1616 ret = read_segment_descriptor(ctxt, selector, &seg_desc, &desc_addr);
1625 if (seg <= VCPU_SREG_GS && !seg_desc.s) {
1631 dpl = seg_desc.dpl;
1639 if (rpl != cpl || (seg_desc.type & 0xa) != 0x2 || dpl != cpl)
1651 if (!(seg_desc.type & 8))
1663 if (seg_desc.type & 4) {
1673 if (seg_desc.type & 4) {
1684 if (seg_desc.d && seg_desc.l) {
1696 if (seg_desc.s || (seg_desc.type != 1 && seg_desc.type != 9))
1700 if (seg_desc.s || seg_desc.type != 2)
1709 if ((seg_desc.type & 0xa) == 0x8 ||
1710 (((seg_desc.type & 0xc) != 0xc) &&
1716 if (!seg_desc.p) {
1721 if (seg_desc.s) {
1723 if (!(seg_desc.type & 1)) {
1724 seg_desc.type |= 1;
1726 &seg_desc);
1734 if (emul_is_noncanonical_address(get_desc_base(&seg_desc) |
1740 old_desc = seg_desc;
1741 seg_desc.type |= 2; /* busy */
1742 ret = ctxt->ops->cmpxchg_emulated(ctxt, desc_addr, &old_desc, &seg_desc,
1743 sizeof(seg_desc), &ctxt->exception);
1748 ctxt->ops->set_segment(ctxt, selector, &seg_desc, base3, seg);
1750 *desc = seg_desc;