Lines Matching refs:cp

59 extern int  mp_start_cpu_common(cpu_t *cp, boolean_t boot);
173 mach_cpucontext_alloc_tables(struct cpu *cp)
186 cp->cpu_id);
188 ntss = cp->cpu_tss = &ct->ct_tss;
204 ntss->tss_eip = (uint32_t)cp->cpu_thread->t_pc;
223 set_syssegd((system_desc_t *)&cp->cpu_gdt[GDT_KTSS], cp->cpu_tss,
224 sizeof (*cp->cpu_tss) - 1, SDT_SYSTSS, SEL_KPL);
230 mach_cpucontext_xalloc(struct cpu *cp, int optype)
279 return (cp->cpu_m.mcpu_mach_ctx_ptr);
288 ct = mach_cpucontext_alloc_tables(cp);
304 rm->rm_idt_base = cp->cpu_idt;
305 rm->rm_idt_lim = sizeof (*cp->cpu_idt) * NIDT - 1;
306 rm->rm_gdt_base = cp->cpu_gdt;
307 rm->rm_gdt_lim = sizeof (*cp->cpu_gdt) * NGDT - 1;
317 rm->rm_cpu = cp->cpu_id;
333 mach_cpucontext_xfree(struct cpu *cp, void *arg, int err, int optype)
337 ASSERT(&ct->ct_tss == cp->cpu_tss);
344 cp->cpu_m.mcpu_mach_ctx_ptr = arg;
352 cp->cpu_m.mcpu_mach_ctx_ptr = arg;
359 cp->cpu_tss = NULL;
369 cp->cpu_tss = NULL;
370 cp->cpu_m.mcpu_mach_ctx_ptr = NULL;
384 mach_cpucontext_alloc(struct cpu *cp)
386 return (mach_cpucontext_xalloc(cp, MACH_CPUCONTEXT_OP_START));
390 mach_cpucontext_free(struct cpu *cp, void *arg, int err)
392 mach_cpucontext_xfree(cp, arg, err, MACH_CPUCONTEXT_OP_START);
436 mp_cpu_poweron(struct cpu *cp)
442 ASSERT(cp != NULL);
443 cpuid = cp->cpu_id;
462 if (cpuid_checkpass(cp, 4) || cp->cpu_thread == cp->cpu_idle_thread) {
486 error = mp_start_cpu_common(cp, B_FALSE);
548 mp_cpu_poweroff(struct cpu *cp)
557 ASSERT(cp != NULL);
558 ASSERT((cp->cpu_flags & CPU_OFFLINE) != 0);
559 ASSERT((cp->cpu_flags & CPU_QUIESCED) != 0);
568 if (cp->cpu_id == 0) {
572 if (mach_cpu_get_device_node(cp, &dip) != PSM_SUCCESS) {
586 ctx = mach_cpucontext_xalloc(cp, MACH_CPUCONTEXT_OP_STOP);
592 cpupm_stop(cp);
593 cpu_event_fini_cpu(cp);
595 if (cp->cpu_m.mcpu_cmi_hdl != NULL) {
596 cmi_fini(cp->cpu_m.mcpu_cmi_hdl);
597 cp->cpu_m.mcpu_cmi_hdl = NULL;
600 rv = mach_cpu_stop(cp, ctx);
612 ASSERT((cp->cpu_flags & CPU_READY) == 0);
613 ASSERT((cp->cpu_flags & CPU_RUNNING) == 0);
614 cp->cpu_flags = CPU_OFFLINE | CPU_QUIESCED | CPU_POWEROFF;
615 CPUSET_ATOMIC_DEL(mp_cpus, cp->cpu_id);
617 mach_cpucontext_xfree(cp, ctx, 0, MACH_CPUCONTEXT_OP_STOP);
626 if ((hdl = cmi_init(CMI_HDL_NATIVE, cmi_ntv_hwchipid(cp),
627 cmi_ntv_hwcoreid(cp), cmi_ntv_hwstrandid(cp))) != NULL) {
630 cp->cpu_m.mcpu_cmi_hdl = hdl;
633 cpu_event_init_cpu(cp);
634 cpupm_start(cp);
635 mach_cpucontext_xfree(cp, ctx, rv, MACH_CPUCONTEXT_OP_STOP);