seg_desc
vm_get_seg_desc(struct vcpu *vcpu, int reg, struct seg_desc *seg_desc)
error = vm_get_desc(vcpu, reg, &seg_desc->base, &seg_desc->limit,
&seg_desc->access);
int vm_get_seg_desc(struct vcpu *vcpu, int reg, struct seg_desc *seg_desc);
struct seg_desc;
struct seg_desc *desc));
struct seg_desc *desc));
struct seg_desc *ret_desc);
struct seg_desc *desc);
struct seg_desc seg_desc;
struct seg_desc desc;
struct seg_desc *desc, uint64_t off, int length, int addrsize, int prot,
static int svm_getdesc(void *vcpui, int reg, struct seg_desc *desc);
svm_getdesc(void *vcpui, int reg, struct seg_desc *desc)
svm_setdesc(void *vcpui, int reg, struct seg_desc *desc)
error = svm_getdesc(vcpu, vis->seg_name, &vis->seg_desc);
vmcb_setdesc(struct svm_vcpu *vcpu, int reg, struct seg_desc *desc)
vmcb_getdesc(struct svm_vcpu *vcpu, int reg, struct seg_desc *desc)
struct seg_desc desc;
int vmcb_setdesc(struct svm_vcpu *vcpu, int ident, struct seg_desc *desc);
int vmcb_getdesc(struct svm_vcpu *vcpu, int ident, struct seg_desc *desc);
vmcs_setdesc(struct vmcs *vmcs, int running, int seg, struct seg_desc *desc)
vmcs_getdesc(struct vmcs *vmcs, int running, int seg, struct seg_desc *desc)
struct seg_desc desc;
struct seg_desc *desc);
struct seg_desc *desc);
error = vmx_getdesc(vcpu, vis->seg_name, &vis->seg_desc);
static int vmx_getdesc(void *vcpui, int reg, struct seg_desc *desc);
vmx_getdesc(void *vcpui, int reg, struct seg_desc *desc)
vmx_setdesc(void *vcpui, int reg, struct seg_desc *desc)
DEFINE_VMMOPS_IFUNC(int, getdesc, (void *vcpui, int num, struct seg_desc *desc))
DEFINE_VMMOPS_IFUNC(int, setdesc, (void *vcpui, int num, struct seg_desc *desc))
vm_get_seg_desc(struct vcpu *vcpu, int reg, struct seg_desc *desc)
vm_set_seg_desc(struct vcpu *vcpu, int reg, struct seg_desc *desc)
struct seg_desc ss_desc;
struct seg_desc *desc, uint64_t offset, int length, int addrsize,
struct seg_desc desc;
struct seg_desc desc;
&vmexit->u.inout_str.seg_desc));
gve_tx_fill_seg_desc(struct gve_tx_seg_desc *seg_desc,
seg_desc->type_flags = GVE_TXD_SEG;
seg_desc->type_flags |= GVE_TXSF_IPV6;
seg_desc->l3_offset = l3_off >> 1;
seg_desc->mss = htobe16(tso_mss);
seg_desc->seg_len = htobe16(len);
seg_desc->seg_addr = htobe64(addr);
struct gve_tx_seg_desc *seg_desc;
seg_desc = &tx->desc_ring[next_idx].seg;
gve_tx_fill_seg_desc(seg_desc, is_tso, info->iov[i].iov_len,
vis->seg_name, &vis->seg_desc, index, bytes,
static struct seg_desc
struct seg_desc seg_desc;
seg_desc.base = (u_int)USD_GETBASE(usd);
seg_desc.limit = (u_int)(USD_GETLIMIT(usd) << 12) | 0xfff;
seg_desc.limit = (u_int)USD_GETLIMIT(usd);
seg_desc.access = usd->sd_type | usd->sd_dpl << 5 | usd->sd_p << 7;
seg_desc.access |= usd->sd_xx << 12;
seg_desc.access |= usd->sd_def32 << 14;
seg_desc.access |= usd->sd_gran << 15;
return (seg_desc);
int segment, struct seg_desc *seg_desc, int *faultptr)
seg_desc->base = 0;
seg_desc->limit = 0;
seg_desc->access = 0x10000; /* unusable */
*seg_desc = usd_to_seg_desc(&usd);
update_seg_desc(struct vcpu *vcpu, int reg, struct seg_desc *sd)
struct seg_desc seg_desc, seg_desc2;
error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_LDTR, &seg_desc,
update_seg_desc(vcpu, VM_REG_GUEST_LDTR, &seg_desc);
error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_CS, &seg_desc,
update_seg_desc(vcpu, VM_REG_GUEST_CS, &seg_desc);
error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_DS, &seg_desc,
update_seg_desc(vcpu, VM_REG_GUEST_DS, &seg_desc);
error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_ES, &seg_desc,
update_seg_desc(vcpu, VM_REG_GUEST_ES, &seg_desc);
error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_FS, &seg_desc,
update_seg_desc(vcpu, VM_REG_GUEST_FS, &seg_desc);
error = validate_seg_desc(vcpu, ts, VM_REG_GUEST_GS, &seg_desc,
update_seg_desc(vcpu, VM_REG_GUEST_GS, &seg_desc);
struct seg_desc seg_desc;
error = vm_get_desc(vcpu, VM_REG_GUEST_SS, &seg_desc.base,
&seg_desc.limit, &seg_desc.access);
if (SEG_DESC_DEF32(seg_desc.access))
&seg_desc, esp, bytes, stacksize, PROT_WRITE, &gla)) {
struct seg_desc nt;