Lines Matching refs:cpu
164 struct hvm_hw_cpu *cpu; in get_cpu() local
174 cpu = ((void *)desc) + (sizeof *desc); in get_cpu()
175 if ((void *) cpu + sizeof (*cpu) <= g->hvm_buf + g->hvm_sz) in get_cpu()
176 return cpu; in get_cpu()
210 static void kdd_get_regs_x86_32(struct hvm_hw_cpu *cpu, kdd_regs_x86_32 *r) in kdd_get_regs_x86_32() argument
212 r->gs = cpu->gs_sel; in kdd_get_regs_x86_32()
213 r->fs = cpu->fs_sel; in kdd_get_regs_x86_32()
214 r->es = cpu->es_sel; in kdd_get_regs_x86_32()
215 r->ds = cpu->ds_sel; in kdd_get_regs_x86_32()
216 r->edi = cpu->rdi; in kdd_get_regs_x86_32()
217 r->esi = cpu->rsi; in kdd_get_regs_x86_32()
218 r->ebx = cpu->rbx; in kdd_get_regs_x86_32()
219 r->edx = cpu->rdx; in kdd_get_regs_x86_32()
220 r->ecx = cpu->rcx; in kdd_get_regs_x86_32()
221 r->eax = cpu->rax; in kdd_get_regs_x86_32()
222 r->ebp = cpu->rbp; in kdd_get_regs_x86_32()
223 r->eip = cpu->rip; in kdd_get_regs_x86_32()
224 r->cs = cpu->cs_sel; in kdd_get_regs_x86_32()
225 r->eflags = cpu->rflags; in kdd_get_regs_x86_32()
226 r->esp = cpu->rsp; in kdd_get_regs_x86_32()
227 r->ss = cpu->ss_sel; in kdd_get_regs_x86_32()
228 memcpy(r->fp, cpu->fpu_regs, 112); // 108 save area + 4 of ??? in kdd_get_regs_x86_32()
231 static void kdd_set_regs_x86_32(struct hvm_hw_cpu *cpu, kdd_regs_x86_32 *r) in kdd_set_regs_x86_32() argument
233 cpu->gs_sel = r->gs; in kdd_set_regs_x86_32()
234 cpu->fs_sel = r->fs; in kdd_set_regs_x86_32()
235 cpu->es_sel = r->es; in kdd_set_regs_x86_32()
236 cpu->ds_sel = r->ds; in kdd_set_regs_x86_32()
237 cpu->rdi = r->edi; in kdd_set_regs_x86_32()
238 cpu->rsi = r->esi; in kdd_set_regs_x86_32()
239 cpu->rbx = r->ebx; in kdd_set_regs_x86_32()
240 cpu->rdx = r->edx; in kdd_set_regs_x86_32()
241 cpu->rcx = r->ecx; in kdd_set_regs_x86_32()
242 cpu->rax = r->eax; in kdd_set_regs_x86_32()
243 cpu->rbp = r->ebp; in kdd_set_regs_x86_32()
244 cpu->rip = r->eip; in kdd_set_regs_x86_32()
245 cpu->cs_sel = r->cs; in kdd_set_regs_x86_32()
246 cpu->rflags = r->eflags; in kdd_set_regs_x86_32()
247 cpu->rsp = r->esp; in kdd_set_regs_x86_32()
248 cpu->ss_sel = r->ss; in kdd_set_regs_x86_32()
249 memcpy(cpu->fpu_regs, r->fp, 112); // 108 save area + 4 of ??? in kdd_set_regs_x86_32()
252 static void kdd_get_regs_x86_64(struct hvm_hw_cpu *cpu, kdd_regs_x86_64 *r) in kdd_get_regs_x86_64() argument
259 r->cs = cpu->cs_sel; in kdd_get_regs_x86_64()
260 r->ds = cpu->ds_sel; in kdd_get_regs_x86_64()
261 r->es = cpu->es_sel; in kdd_get_regs_x86_64()
262 r->fs = cpu->fs_sel; in kdd_get_regs_x86_64()
263 r->gs = cpu->gs_sel; in kdd_get_regs_x86_64()
264 r->ss = cpu->ss_sel; in kdd_get_regs_x86_64()
265 r->rflags = cpu->rflags; in kdd_get_regs_x86_64()
266 r->dr0 = cpu->dr0; in kdd_get_regs_x86_64()
267 r->dr1 = cpu->dr1; in kdd_get_regs_x86_64()
268 r->dr2 = cpu->dr2; in kdd_get_regs_x86_64()
269 r->dr3 = cpu->dr3; in kdd_get_regs_x86_64()
270 r->dr6 = cpu->dr6; in kdd_get_regs_x86_64()
271 r->dr7 = cpu->dr7; in kdd_get_regs_x86_64()
272 r->rax = cpu->rax; in kdd_get_regs_x86_64()
273 r->rcx = cpu->rcx; in kdd_get_regs_x86_64()
274 r->rdx = cpu->rdx; in kdd_get_regs_x86_64()
275 r->rbx = cpu->rbx; in kdd_get_regs_x86_64()
276 r->rsp = cpu->rsp; in kdd_get_regs_x86_64()
277 r->rbp = cpu->rbp; in kdd_get_regs_x86_64()
278 r->rsi = cpu->rsi; in kdd_get_regs_x86_64()
279 r->rdi = cpu->rdi; in kdd_get_regs_x86_64()
280 r->r8 = cpu->r8; in kdd_get_regs_x86_64()
281 r->r9 = cpu->r9; in kdd_get_regs_x86_64()
282 r->r10 = cpu->r10; in kdd_get_regs_x86_64()
283 r->r11 = cpu->r11; in kdd_get_regs_x86_64()
284 r->r12 = cpu->r12; in kdd_get_regs_x86_64()
285 r->r13 = cpu->r13; in kdd_get_regs_x86_64()
286 r->r14 = cpu->r14; in kdd_get_regs_x86_64()
287 r->r15 = cpu->r15; in kdd_get_regs_x86_64()
288 r->rip = cpu->rip; in kdd_get_regs_x86_64()
289 memcpy(r->fp, cpu->fpu_regs, 112); // Definitely not right in kdd_get_regs_x86_64()
292 static void kdd_set_regs_x86_64(struct hvm_hw_cpu *cpu, kdd_regs_x86_64 *r) in kdd_set_regs_x86_64() argument
294 cpu->cs_sel = r->cs; in kdd_set_regs_x86_64()
295 cpu->ds_sel = r->ds; in kdd_set_regs_x86_64()
296 cpu->es_sel = r->es; in kdd_set_regs_x86_64()
297 cpu->fs_sel = r->fs; in kdd_set_regs_x86_64()
298 cpu->gs_sel = r->gs; in kdd_set_regs_x86_64()
299 cpu->ss_sel = r->ss; in kdd_set_regs_x86_64()
300 cpu->rflags = r->rflags; in kdd_set_regs_x86_64()
301 cpu->dr0 = r->dr0; in kdd_set_regs_x86_64()
302 cpu->dr1 = r->dr1; in kdd_set_regs_x86_64()
303 cpu->dr2 = r->dr2; in kdd_set_regs_x86_64()
304 cpu->dr3 = r->dr3; in kdd_set_regs_x86_64()
305 cpu->dr6 = r->dr6; in kdd_set_regs_x86_64()
306 cpu->dr7 = r->dr7; in kdd_set_regs_x86_64()
307 cpu->rax = r->rax; in kdd_set_regs_x86_64()
308 cpu->rcx = r->rcx; in kdd_set_regs_x86_64()
309 cpu->rdx = r->rdx; in kdd_set_regs_x86_64()
310 cpu->rbx = r->rbx; in kdd_set_regs_x86_64()
311 cpu->rsp = r->rsp; in kdd_set_regs_x86_64()
312 cpu->rbp = r->rbp; in kdd_set_regs_x86_64()
313 cpu->rsi = r->rsi; in kdd_set_regs_x86_64()
314 cpu->rdi = r->rdi; in kdd_set_regs_x86_64()
315 cpu->r8 = r->r8; in kdd_set_regs_x86_64()
316 cpu->r9 = r->r9; in kdd_set_regs_x86_64()
317 cpu->r10 = r->r10; in kdd_set_regs_x86_64()
318 cpu->r11 = r->r11; in kdd_set_regs_x86_64()
319 cpu->r12 = r->r12; in kdd_set_regs_x86_64()
320 cpu->r13 = r->r13; in kdd_set_regs_x86_64()
321 cpu->r14 = r->r14; in kdd_set_regs_x86_64()
322 cpu->r15 = r->r15; in kdd_set_regs_x86_64()
323 cpu->rip = r->rip; in kdd_set_regs_x86_64()
324 memcpy(r->fp, cpu->fpu_regs, 112); // Definitely not right in kdd_set_regs_x86_64()
330 struct hvm_hw_cpu *cpu; in kdd_get_regs() local
332 cpu = get_cpu(g, cpuid); in kdd_get_regs()
333 if (!cpu) in kdd_get_regs()
339 kdd_get_regs_x86_64(cpu, &r->r64); in kdd_get_regs()
341 kdd_get_regs_x86_32(cpu, &r->r32); in kdd_get_regs()
348 struct hvm_hw_cpu *cpu; in kdd_set_regs() local
350 cpu = get_cpu(g, cpuid); in kdd_set_regs()
351 if (!cpu) in kdd_set_regs()
355 kdd_set_regs_x86_64(cpu, &r->r64); in kdd_set_regs()
357 kdd_set_regs_x86_32(cpu, &r->r32); in kdd_set_regs()
365 static void kdd_get_ctrl_x86_32(struct hvm_hw_cpu *cpu, kdd_ctrl_x86_32 *c) in kdd_get_ctrl_x86_32() argument
367 c->cr0 = cpu->cr0; in kdd_get_ctrl_x86_32()
368 c->cr2 = cpu->cr2; in kdd_get_ctrl_x86_32()
369 c->cr3 = cpu->cr3; in kdd_get_ctrl_x86_32()
370 c->cr4 = cpu->cr4; in kdd_get_ctrl_x86_32()
371 c->dr0 = cpu->dr0; in kdd_get_ctrl_x86_32()
372 c->dr1 = cpu->dr1; in kdd_get_ctrl_x86_32()
373 c->dr2 = cpu->dr2; in kdd_get_ctrl_x86_32()
374 c->dr3 = cpu->dr3; in kdd_get_ctrl_x86_32()
375 c->dr6 = cpu->dr6; in kdd_get_ctrl_x86_32()
376 c->dr7 = cpu->dr7; in kdd_get_ctrl_x86_32()
377 c->gdt_base = cpu->gdtr_base; in kdd_get_ctrl_x86_32()
378 c->gdt_limit = cpu->gdtr_limit; in kdd_get_ctrl_x86_32()
379 c->idt_base = cpu->idtr_base; in kdd_get_ctrl_x86_32()
380 c->idt_limit = cpu->idtr_limit; in kdd_get_ctrl_x86_32()
381 c->tss_sel = cpu->tr_sel; in kdd_get_ctrl_x86_32()
382 c->ldt_sel = cpu->ldtr_sel; in kdd_get_ctrl_x86_32()
385 static void kdd_get_ctrl_x86_64(struct hvm_hw_cpu *cpu, in kdd_get_ctrl_x86_64() argument
389 c->cr0 = cpu->cr0; in kdd_get_ctrl_x86_64()
390 c->cr2 = cpu->cr2; in kdd_get_ctrl_x86_64()
391 c->cr3 = cpu->cr3; in kdd_get_ctrl_x86_64()
392 c->cr4 = cpu->cr4; in kdd_get_ctrl_x86_64()
393 c->dr0 = cpu->dr0; in kdd_get_ctrl_x86_64()
394 c->dr1 = cpu->dr1; in kdd_get_ctrl_x86_64()
395 c->dr2 = cpu->dr2; in kdd_get_ctrl_x86_64()
396 c->dr3 = cpu->dr3; in kdd_get_ctrl_x86_64()
397 c->dr6 = cpu->dr6; in kdd_get_ctrl_x86_64()
398 c->dr7 = cpu->dr7; in kdd_get_ctrl_x86_64()
399 c->gdt_base = cpu->gdtr_base; in kdd_get_ctrl_x86_64()
400 c->gdt_limit = cpu->gdtr_limit; in kdd_get_ctrl_x86_64()
401 c->idt_base = cpu->idtr_base; in kdd_get_ctrl_x86_64()
402 c->idt_limit = cpu->idtr_limit; in kdd_get_ctrl_x86_64()
403 c->tss_sel = cpu->tr_sel; in kdd_get_ctrl_x86_64()
404 c->ldt_sel = cpu->ldtr_sel; in kdd_get_ctrl_x86_64()
411 struct hvm_hw_cpu *cpu; in kdd_get_ctrl() local
414 cpu = get_cpu(g, cpuid); in kdd_get_ctrl()
415 if (!cpu) in kdd_get_ctrl()
422 kdd_get_ctrl_x86_64(cpu, lapic, &ctrl->c64); in kdd_get_ctrl()
424 kdd_get_ctrl_x86_32(cpu, &ctrl->c32); in kdd_get_ctrl()
432 struct hvm_hw_cpu *cpu; in kdd_wrmsr() local
434 cpu = get_cpu(g, cpuid); in kdd_wrmsr()
435 if (!cpu) in kdd_wrmsr()
439 case 0x00000174: cpu->sysenter_cs = value; break; in kdd_wrmsr()
440 case 0x00000175: cpu->sysenter_esp = value; break; in kdd_wrmsr()
441 case 0x00000176: cpu->sysenter_eip = value; break; in kdd_wrmsr()
442 case 0xc0000080: cpu->msr_efer = value; break; in kdd_wrmsr()
443 case 0xc0000081: cpu->msr_star = value; break; in kdd_wrmsr()
444 case 0xc0000082: cpu->msr_lstar = value; break; in kdd_wrmsr()
445 case 0xc0000083: cpu->msr_cstar = value; break; in kdd_wrmsr()
446 case 0xc0000084: cpu->msr_syscall_mask = value; break; in kdd_wrmsr()
447 case 0xc0000100: cpu->fs_base = value; break; in kdd_wrmsr()
448 case 0xc0000101: cpu->gs_base = value; break; in kdd_wrmsr()
449 case 0xc0000102: cpu->shadow_gs = value; break; in kdd_wrmsr()
460 struct hvm_hw_cpu *cpu; in kdd_rdmsr() local
462 cpu = get_cpu(g, cpuid); in kdd_rdmsr()
463 if (!cpu) in kdd_rdmsr()
467 case 0x00000174: *value = cpu->sysenter_cs; break; in kdd_rdmsr()
468 case 0x00000175: *value = cpu->sysenter_esp; break; in kdd_rdmsr()
469 case 0x00000176: *value = cpu->sysenter_eip; break; in kdd_rdmsr()
470 case 0xc0000080: *value = cpu->msr_efer; break; in kdd_rdmsr()
471 case 0xc0000081: *value = cpu->msr_star; break; in kdd_rdmsr()
472 case 0xc0000082: *value = cpu->msr_lstar; break; in kdd_rdmsr()
473 case 0xc0000083: *value = cpu->msr_cstar; break; in kdd_rdmsr()
474 case 0xc0000084: *value = cpu->msr_syscall_mask; break; in kdd_rdmsr()
475 case 0xc0000100: *value = cpu->fs_base; break; in kdd_rdmsr()
476 case 0xc0000101: *value = cpu->gs_base; break; in kdd_rdmsr()
477 case 0xc0000102: *value = cpu->shadow_gs; break; in kdd_rdmsr()