Lines Matching refs:cpu
187 void __lgread(struct lg_cpu *cpu, void *b, unsigned long addr, unsigned bytes) in __lgread() argument
189 if (!lguest_address_ok(cpu->lg, addr, bytes) in __lgread()
190 || copy_from_user(b, cpu->lg->mem_base + addr, bytes) != 0) { in __lgread()
193 kill_guest(cpu, "bad read address %#lx len %u", addr, bytes); in __lgread()
198 void __lgwrite(struct lg_cpu *cpu, unsigned long addr, const void *b, in __lgwrite() argument
201 if (!lguest_address_ok(cpu->lg, addr, bytes) in __lgwrite()
202 || copy_to_user(cpu->lg->mem_base + addr, b, bytes) != 0) in __lgwrite()
203 kill_guest(cpu, "bad write address %#lx len %u", addr, bytes); in __lgwrite()
212 int run_guest(struct lg_cpu *cpu, unsigned long __user *user) in run_guest() argument
215 while (!cpu->lg->dead) { in run_guest()
220 if (cpu->hcall) in run_guest()
221 do_hypercalls(cpu); in run_guest()
227 if (cpu->pending_notify) { in run_guest()
232 if (!send_notify_to_eventfd(cpu)) { in run_guest()
234 if (put_user(cpu->pending_notify, user)) in run_guest()
236 return sizeof(cpu->pending_notify); in run_guest()
256 irq = interrupt_pending(cpu, &more); in run_guest()
258 try_deliver_interrupt(cpu, irq, more); in run_guest()
264 if (cpu->lg->dead) in run_guest()
271 if (cpu->halted) { in run_guest()
277 if (interrupt_pending(cpu, &more) < LGUEST_IRQS) in run_guest()
291 lguest_arch_run_guest(cpu); in run_guest()
297 lguest_arch_handle_trap(cpu); in run_guest()
301 if (cpu->lg->dead == ERR_PTR(-ERESTART)) in run_guest()