Lines Matching refs:cpu

19 static int getreg_setup(struct lg_cpu *cpu, const unsigned long __user *input)  in getreg_setup()  argument
33 cpu->reg_read = lguest_arch_regptr(cpu, which, true); in getreg_setup()
34 if (!cpu->reg_read) in getreg_setup()
41 static int setreg(struct lg_cpu *cpu, const unsigned long __user *input) in setreg() argument
53 reg = lguest_arch_regptr(cpu, which, false); in setreg()
67 static int user_send_irq(struct lg_cpu *cpu, const unsigned long __user *input) in user_send_irq() argument
80 set_interrupt(cpu, irq); in user_send_irq()
88 static int trap(struct lg_cpu *cpu, const unsigned long __user *input) in trap() argument
95 if (!deliver_trap(cpu, trapnum)) in trap()
108 struct lg_cpu *cpu; in read() local
119 cpu = &lg->cpus[cpu_id]; in read()
122 if (current != cpu->tsk) in read()
144 if (cpu->pending.trap) in read()
145 cpu->pending.trap = 0; in read()
148 return run_guest(cpu, (unsigned long __user *)user); in read()
155 static int lg_cpu_start(struct lg_cpu *cpu, unsigned id, unsigned long start_ip) in lg_cpu_start() argument
158 if (id >= ARRAY_SIZE(cpu->lg->cpus)) in lg_cpu_start()
162 cpu->id = id; in lg_cpu_start()
163 cpu->lg = container_of(cpu, struct lguest, cpus[id]); in lg_cpu_start()
164 cpu->lg->nr_cpus++; in lg_cpu_start()
167 init_clockdev(cpu); in lg_cpu_start()
173 cpu->regs_page = get_zeroed_page(GFP_KERNEL); in lg_cpu_start()
174 if (!cpu->regs_page) in lg_cpu_start()
178 cpu->regs = (void *)cpu->regs_page + PAGE_SIZE - sizeof(*cpu->regs); in lg_cpu_start()
184 lguest_arch_setup_regs(cpu, start_ip); in lg_cpu_start()
190 cpu->tsk = current; in lg_cpu_start()
197 cpu->mm = get_task_mm(cpu->tsk); in lg_cpu_start()
203 cpu->last_pages = NULL; in lg_cpu_start()
307 struct lg_cpu *uninitialized_var(cpu); in write()
319 cpu = &lg->cpus[cpu_id]; in write()
330 return user_send_irq(cpu, input); in write()
332 return getreg_setup(cpu, input); in write()
334 return setreg(cpu, input); in write()
336 return trap(cpu, input); in write()