Lines Matching refs:uc
31 struct ucall *uc;
41 uc = &hdr->ucalls[i];
42 uc->hva = uc;
52 struct ucall *uc;
60 uc = &ucall_pool->ucalls[i];
61 memset(uc->args, 0, sizeof(uc->args));
62 return uc;
76 static void ucall_free(struct ucall *uc)
79 clear_bit(uc - ucall_pool->ucalls, ucall_pool->in_use);
85 struct ucall *uc;
88 uc = ucall_alloc();
89 uc->cmd = cmd;
91 WRITE_ONCE(uc->args[GUEST_ERROR_STRING], (uint64_t)(exp));
92 WRITE_ONCE(uc->args[GUEST_FILE], (uint64_t)(file));
93 WRITE_ONCE(uc->args[GUEST_LINE], line);
96 guest_vsnprintf(uc->buffer, UCALL_BUFFER_LEN, fmt, va);
99 ucall_arch_do_ucall((vm_vaddr_t)uc->hva);
101 ucall_free(uc);
106 struct ucall *uc;
109 uc = ucall_alloc();
110 uc->cmd = cmd;
113 guest_vsnprintf(uc->buffer, UCALL_BUFFER_LEN, fmt, va);
116 ucall_arch_do_ucall((vm_vaddr_t)uc->hva);
118 ucall_free(uc);
123 struct ucall *uc;
127 uc = ucall_alloc();
129 WRITE_ONCE(uc->cmd, cmd);
135 WRITE_ONCE(uc->args[i], va_arg(va, uint64_t));
138 ucall_arch_do_ucall((vm_vaddr_t)uc->hva);
140 ucall_free(uc);
143 uint64_t get_ucall(struct kvm_vcpu *vcpu, struct ucall *uc)
148 if (!uc)
149 uc = &ucall;
156 memcpy(uc, addr, sizeof(*uc));
159 memset(uc, 0, sizeof(*uc));
162 return uc->cmd;