Lines Matching refs:cp

220 mp_set_cpu_context(vcpu_guest_context_t *vgc, cpu_t *cp)
271 &cp->cpu_m.mcpu_idt[vec], ti) == 0) {
286 vgc->gdt_frames[0] = pa_to_ma(mmu_btop(cp->cpu_m.mcpu_gdtpa));
288 vgc->gdt_frames[0] = pfn_to_mfn(mmu_btop(cp->cpu_m.mcpu_gdtpa));
317 vgc->gs_base_kernel = (uintptr_t)cp;
320 return (xen_vcpu_initialize(cp->cpu_id, vgc));
335 mach_cpucontext_alloc(struct cpu *cp)
337 kthread_t *tp = cp->cpu_thread;
348 cp->cpu_m.mcpu_vcpu_info =
349 &HYPERVISOR_shared_info->vcpu_info[cp->cpu_id];
350 cp->cpu_m.mcpu_evt_pend = kmem_zalloc(
352 cp->cpu_m.mcpu_gdtpa =
353 mmu_ptob(hat_getpfnum(kas.a_hat, (caddr_t)cp->cpu_gdt));
355 if ((err = xen_gdt_setprot(cp, PROT_READ)) != 0)
394 err = mp_set_cpu_context(&vgc, cp);
398 mach_cpucontext_free(cp, NULL, err);
401 return (cp);
411 mach_cpucontext_free(struct cpu *cp, void *arg, int err)
427 (void) xen_gdt_setprot(cp, PROT_READ | PROT_WRITE);
428 kmem_free(cp->cpu_m.mcpu_evt_pend,
439 mach_cpucontext_reset(cpu_t *cp)
441 bzero(cp->cpu_m.mcpu_evt_pend, sizeof (struct xen_evt_data));
472 mach_cpucontext_restore(cpu_t *cp)
477 ASSERT(cp->cpu_thread == cp->cpu_pause_thread ||
478 cp->cpu_thread == cp->cpu_idle_thread);
482 pcb_to_user_regs(&cp->cpu_thread->t_pcb, &vgc);
497 vgc.kernel_sp = cp->cpu_thread->t_sp;
499 err = mp_set_cpu_context(&vgc, cp);
567 mp_cpu_poweron(struct cpu *cp)
574 mp_cpu_poweroff(struct cpu *cp)
601 cpu_t *cp = cpu_get(i);
603 if (cp == NULL || cp == CPU)
637 cpu_t *cp = cpu_get(i);
639 if (cp == NULL || cp == CPU)
668 poweroff_vcpu(struct cpu *cp)
674 ASSERT(CPU->cpu_id != cp->cpu_id);
675 ASSERT(cp->cpu_flags & CPU_QUIESCED);
679 if ((error = xen_vcpu_down(cp->cpu_id)) == 0) {
680 ASSERT(cpu_phase[cp->cpu_id] == CPU_PHASE_SAFE);
682 CPUSET_DEL(cpu_ready_set, cp->cpu_id);
684 cp->cpu_flags |= CPU_POWEROFF | CPU_OFFLINE;
685 cp->cpu_flags &=
688 cpu_phase[cp->cpu_id] = CPU_PHASE_POWERED_OFF;
690 cpu_set_state(cp);
703 cpu_t *cp;
707 if ((cp = cpu_get(id)) == NULL) {
712 if (cpu_get_state(cp) == P_POWEROFF) {
733 if ((cp = cpu_get(id)) == NULL)
736 if (cp->cpu_flags & CPU_QUIESCED)
737 error = poweroff_vcpu(cp);
768 poweron_vcpu(struct cpu *cp)
774 if (HYPERVISOR_vcpu_op(VCPUOP_is_up, cp->cpu_id, NULL) != 0) {
776 cp->cpu_id);
780 if ((error = xen_vcpu_up(cp->cpu_id)) == 0) {
781 CPUSET_ADD(cpu_ready_set, cp->cpu_id);
782 cp->cpu_flags |= CPU_EXISTS | CPU_READY | CPU_RUNNING;
783 cp->cpu_flags &= ~CPU_POWEROFF;
789 (void) xen_vcpu_up(cp->cpu_id);
791 cpu_phase[cp->cpu_id] = CPU_PHASE_NONE;
793 cpu_set_state(cp);
801 cpu_t *cp;
810 if ((cp = cpu_get(id)) == NULL) {
815 if (cpu_get_state(cp) != P_POWEROFF) {
820 if ((error = poweron_vcpu(cp)) != 0) {