Lines Matching refs:uc

28 	struct ucall *uc;  in ucall_init()  local
37 uc = &hdr->ucalls[i]; in ucall_init()
38 uc->hva = uc; in ucall_init()
48 struct ucall *uc; in ucall_alloc() local
56 uc = &ucall_pool->ucalls[i]; in ucall_alloc()
57 memset(uc->args, 0, sizeof(uc->args)); in ucall_alloc()
58 return uc; in ucall_alloc()
72 static void ucall_free(struct ucall *uc) in ucall_free() argument
75 clear_bit(uc - ucall_pool->ucalls, ucall_pool->in_use); in ucall_free()
81 struct ucall *uc; in ucall_assert() local
84 uc = ucall_alloc(); in ucall_assert()
85 uc->cmd = cmd; in ucall_assert()
87 WRITE_ONCE(uc->args[GUEST_ERROR_STRING], (uint64_t)(exp)); in ucall_assert()
88 WRITE_ONCE(uc->args[GUEST_FILE], (uint64_t)(file)); in ucall_assert()
89 WRITE_ONCE(uc->args[GUEST_LINE], line); in ucall_assert()
92 guest_vsnprintf(uc->buffer, UCALL_BUFFER_LEN, fmt, va); in ucall_assert()
95 ucall_arch_do_ucall((vm_vaddr_t)uc->hva); in ucall_assert()
97 ucall_free(uc); in ucall_assert()
102 struct ucall *uc; in ucall_fmt() local
105 uc = ucall_alloc(); in ucall_fmt()
106 uc->cmd = cmd; in ucall_fmt()
109 guest_vsnprintf(uc->buffer, UCALL_BUFFER_LEN, fmt, va); in ucall_fmt()
112 ucall_arch_do_ucall((vm_vaddr_t)uc->hva); in ucall_fmt()
114 ucall_free(uc); in ucall_fmt()
119 struct ucall *uc; in ucall() local
123 uc = ucall_alloc(); in ucall()
125 WRITE_ONCE(uc->cmd, cmd); in ucall()
131 WRITE_ONCE(uc->args[i], va_arg(va, uint64_t)); in ucall()
134 ucall_arch_do_ucall((vm_vaddr_t)uc->hva); in ucall()
136 ucall_free(uc); in ucall()
139 uint64_t get_ucall(struct kvm_vcpu *vcpu, struct ucall *uc) in get_ucall() argument
144 if (!uc) in get_ucall()
145 uc = &ucall; in get_ucall()
152 memcpy(uc, addr, sizeof(*uc)); in get_ucall()
155 memset(uc, 0, sizeof(*uc)); in get_ucall()
158 return uc->cmd; in get_ucall()