copyinfo
uint64_t gla, size_t len, int prot, struct vm_copyinfo *copyinfo,
void vm_copy_teardown(struct vm_copyinfo *copyinfo, int num_copyinfo);
void vm_copyin(struct vm_copyinfo *copyinfo, void *kaddr, size_t len);
void vm_copyout(const void *kaddr, struct vm_copyinfo *copyinfo, size_t len);
struct vm_copyinfo copyinfo[2];
VM_PROT_RW, copyinfo, nitems(copyinfo), &fault);
vm_copyin(copyinfo, &rflags, sizeof(uint64_t));
vm_copyout(&rflags, copyinfo, sizeof(uint64_t));
vm_copy_teardown(copyinfo, nitems(copyinfo));
vm_copy_teardown(struct vm_copyinfo *copyinfo, int num_copyinfo)
if (copyinfo[idx].cookie != NULL)
vm_gpa_release(copyinfo[idx].cookie);
bzero(copyinfo, num_copyinfo * sizeof(struct vm_copyinfo));
uint64_t gla, size_t len, int prot, struct vm_copyinfo *copyinfo,
bzero(copyinfo, sizeof(struct vm_copyinfo) * num_copyinfo);
copyinfo[nused].gpa = gpa;
copyinfo[nused].len = n;
hva = vm_gpa_hold(vcpu, copyinfo[idx].gpa,
copyinfo[idx].len, prot, &cookie);
copyinfo[idx].hva = hva;
copyinfo[idx].cookie = cookie;
vm_copy_teardown(copyinfo, num_copyinfo);
vm_copyin(struct vm_copyinfo *copyinfo, void *kaddr, size_t len)
bcopy(copyinfo[idx].hva, dst, copyinfo[idx].len);
len -= copyinfo[idx].len;
dst += copyinfo[idx].len;
vm_copyout(const void *kaddr, struct vm_copyinfo *copyinfo, size_t len)
bcopy(src, copyinfo[idx].hva, copyinfo[idx].len);
len -= copyinfo[idx].len;
src += copyinfo[idx].len;
struct vm_copyinfo copyinfo[2];
struct iovec copyinfo[2];
pushop ? PROT_WRITE : PROT_READ, copyinfo, nitems(copyinfo),
vm_copyout(&val, copyinfo, size);
vm_copyin(copyinfo, &val, size);
vm_copy_teardown(copyinfo, nitems(copyinfo));
struct vm_copyinfo copyinfo[2];
copyinfo, nitems(copyinfo), faultptr);
vm_copyin(copyinfo, vie->inst, inst_length);
vm_copy_teardown(copyinfo, nitems(copyinfo));
struct vm_copyinfo copyinfo[2];
struct iovec copyinfo[2];
copyinfo, nitems(copyinfo), &fault);
vm_copyin(copyinfo, &val, opsize);
vm_copy_teardown(copyinfo, nitems(copyinfo));
PROT_WRITE, copyinfo, nitems(copyinfo), &fault);
vm_copyout(&val, copyinfo, opsize);
vm_copy_teardown(copyinfo, nitems(copyinfo));
static void copyinfo(struct Info *, struct Info *);
copyinfo(&s2, &s1);
copyinfo(&s2, &s1);
copyinfo(&z, &s1);
hammer2_volconf_t copyinfo[HAMMER2_COPYID_COUNT];