Lines Matching refs:cp

82 dr_cpu_unit_is_sane(dr_board_t *bp, dr_cpu_unit_t *cp)
91 ASSERT(drmach_cpu_get_id(cp->sbc_cm.sbdev_id, &cpuid) == 0);
93 ASSERT(cp->sbc_cm.sbdev_bp == bp);
94 ASSERT(cp->sbc_cm.sbdev_type == SBD_COMP_CPU);
95 ASSERT(cp->sbc_cpu_id == cpuid);
98 _NOTE(ARGUNUSED(cp))
133 dr_cpu_set_prop(dr_cpu_unit_t *cp)
141 err = drmach_get_dip(cp->sbc_cm.sbdev_id, &dip);
143 DRERR_SET_C(&cp->sbc_cm.sbdev_error, &err);
154 DR_DEV_INTERNAL_ERROR(&cp->sbc_cm);
175 switch (cp->sbc_cpu_impl) {
191 cp->sbc_cpu_impl);
211 cp->sbc_speed = (clock_freq + 500000) / 1000000;
212 cp->sbc_ecache = ecache_size / (1024 * 1024);
216 dr_init_cpu_unit(dr_cpu_unit_t *cp)
223 if (DR_DEV_IS_ATTACHED(&cp->sbc_cm)) {
225 cp->sbc_cm.sbdev_cond = SBD_COND_OK;
226 } else if (DR_DEV_IS_PRESENT(&cp->sbc_cm)) {
228 cp->sbc_cm.sbdev_cond = SBD_COND_OK;
231 cp->sbc_cm.sbdev_cond = SBD_COND_UNKNOWN;
234 if (DR_DEV_IS_PRESENT(&cp->sbc_cm)) {
235 err = drmach_cpu_get_id(cp->sbc_cm.sbdev_id, &cpuid);
237 DRERR_SET_C(&cp->sbc_cm.sbdev_error, &err);
242 err = drmach_cpu_get_impl(cp->sbc_cm.sbdev_id, &impl);
244 DRERR_SET_C(&cp->sbc_cm.sbdev_error, &err);
249 cp->sbc_cpu_id = -1;
250 cp->sbc_cpu_impl = -1;
254 cp->sbc_cpu_id = cpuid;
255 cp->sbc_cpu_impl = impl;
258 ASSERT(dr_cpu_unit_is_sane(cp->sbc_cm.sbdev_bp, cp));
262 cp->sbc_cpu_flags = cpu[cpuid]->cpu_flags;
264 cp->sbc_cpu_flags = P_OFFLINE | P_POWEROFF;
267 dr_cpu_set_prop(cp);
271 dr_device_transition(&cp->sbc_cm, new_state);
330 dr_attach_cpu(dr_handle_t *hp, dr_common_unit_t *cp)
338 err = drmach_configure(cp->sbdev_id, 0);
340 DRERR_SET_C(&cp->sbdev_error, &err);
344 err = drmach_cpu_get_id(cp->sbdev_id, &cpuid);
346 DRERR_SET_C(&cp->sbdev_error, &err);
348 err = drmach_unconfigure(cp->sbdev_id, DEVI_BRANCH_DESTROY);
352 dr_dev_err(CE_WARN, cp, dr_errno2ecode(rv));
353 err = drmach_unconfigure(cp->sbdev_id, DEVI_BRANCH_DESTROY);
376 struct cpu *cp;
380 cp = cpu_get(up->sbc_cpu_id);
381 if (cp == NULL) {
387 if (cpu_is_poweredoff(cp)) {
388 if (cpu_poweron(cp) != 0) {
395 if (cpu_is_offline(cp)) {
398 if (cpu_online(cp) != 0) {
426 struct cpu *cp;
468 if ((cp = cpu_get(cpuid)) == NULL) {
475 up->sbc_cpu_flags = cp->cpu_flags;
477 if (CPU_ACTIVE(cp)) {
482 if (cpu_offline(cp, cpu_flags)) {
486 if (disp_bound_threads(cp, 0)) {
488 "to cpu %d", f, cp->cpu_id);
554 struct cpu *cp;
558 cp = cpu_get(up->sbc_cpu_id);
559 if (cp == NULL)
579 if (cpu_is_poweredoff(cp)) {
585 if (!cpu_is_offline(cp)) {
590 if (cpu_offline(cp, cpu_flags)) {
594 if (disp_bound_threads(cp, 0)) {
596 "to cpu %d", f, cp->cpu_id);
601 if (cpu_poweroff(cp) != 0) {
619 dr_detach_cpu(dr_handle_t *hp, dr_common_unit_t *cp)
627 err = drmach_cpu_get_id(cp->sbdev_id, &cpuid);
629 DRERR_SET_C(&cp->sbdev_error, &err);
631 dr_dev_err(CE_IGNORE, cp, dr_errno2ecode(rv));
633 err = drmach_unconfigure(cp->sbdev_id, DEVI_BRANCH_DESTROY);
635 DRERR_SET_C(&cp->sbdev_error, &err);
656 dr_fill_cpu_stat(dr_cpu_unit_t *cp, drmach_status_t *pstat, sbd_cpu_stat_t *csp)
658 ASSERT(cp && pstat && csp);
662 csp->cs_type = cp->sbc_cm.sbdev_type;
663 csp->cs_unit = cp->sbc_cm.sbdev_unum;
665 csp->cs_cond = cp->sbc_cm.sbdev_cond;
666 csp->cs_busy = cp->sbc_cm.sbdev_busy | pstat->busy;
667 csp->cs_time = cp->sbc_cm.sbdev_time;
668 csp->cs_ostate = cp->sbc_cm.sbdev_ostate;
672 csp->cs_cpuid = cp->sbc_cpu_id;
675 csp->cs_isbootproc = (SIGBCPU->cpu_id == cp->sbc_cpu_id) ? 1 : 0;
682 if ((cp->sbc_speed == 0) || (cp->sbc_ecache == 0))
683 dr_cpu_set_prop(cp);
686 csp->cs_speed = cp->sbc_speed;
687 csp->cs_ecache = cp->sbc_ecache;
792 dr_cpu_unit_t *cp;
805 cp = dr_get_cpu_unit(bp, DR_CMP_CORE_UNUM(cmp, core));
807 if (cp->sbc_cm.sbdev_state == DR_STATE_EMPTY) {
812 ASSERT(dr_cpu_unit_is_sane(hp->h_bd, cp));
815 if (cp->sbc_cm.sbdev_id == (drmachid_t)0) {
820 err = drmach_status(cp->sbc_cm.sbdev_id, &pstat);
822 DRERR_SET_C(&cp->sbc_cm.sbdev_error, &err);
826 dr_fill_cpu_stat(cp, &pstat, &cstat[ncores++]);
831 impl = cp->sbc_cpu_impl;
879 struct cpu *cp;
888 cp = cpu[up->sbc_cpu_id];
890 if (cpu_is_poweredoff(cp)) {
891 if (cpu_poweron(cp)) {
898 if (cpu_is_offline(cp)) {
899 if (cpu_online(cp)) {
906 if (cpu_is_online(cp)) {
908 if (cpu_intr_disable(cp) != 0) {