Lines Matching refs:ci

132 mi_cpu_attach(struct cpu_info *ci)
138 if ((ci->ci_index = ncpu) >= maxcpus)
140 kcpuset_set(kcpuset_attached, cpu_index(ci));
145 kcpuset_create(&ci->ci_kcpuset, true);
146 kcpuset_set(ci->ci_kcpuset, cpu_index(ci));
148 TAILQ_INIT(&ci->ci_data.cpu_ld_locks);
149 __cpu_simple_lock_init(&ci->ci_data.cpu_ld_lock);
152 snprintf(ci->ci_data.cpu_name, sizeof(ci->ci_data.cpu_name), "cpu%d",
153 cpu_index(ci));
159 cpu_infos[cpu_index(ci)] = ci;
161 sched_cpuattach(ci);
163 error = create_idle_lwp(ci);
169 if (ci == curcpu())
170 ci->ci_onproc = curlwp;
172 ci->ci_onproc = ci->ci_data.cpu_idlelwp;
174 percpu_init_cpu(ci);
175 softint_init(ci);
176 callout_init_cpu(ci);
177 xc_init_cpu(ci);
178 pool_cache_cpu_init(ci);
179 selsysinit(ci);
180 cache_cpu_init(ci);
181 TAILQ_INIT(&ci->ci_data.cpu_biodone);
200 struct cpu_info *ci;
216 (ci = cpu_lookup(cs->cs_id)) == NULL) {
220 cpu_setintr(ci, cs->cs_intr); /* XXX neglect errors */
221 error = cpu_setstate(ci, cs->cs_online);
230 (ci = cpu_lookup(id)) == NULL) {
234 if ((ci->ci_schedstate.spc_flags & SPCF_OFFLINE) != 0)
238 if ((ci->ci_schedstate.spc_flags & SPCF_NOINTR) != 0)
242 cs->cs_lastmod = (int32_t)ci->ci_schedstate.spc_lastmod;
244 (ci->ci_schedstate.spc_lastmod >> 32);
245 cs->cs_intrcnt = cpu_intr_count(ci) + 1;
246 cs->cs_hwid = ci->ci_cpuid;
251 for (CPU_INFO_FOREACH(cii, ci)) {
255 if (ci == NULL)
258 *(int *)data = cpu_index(ci);
292 struct cpu_info *ci;
305 ci = cpu_infos[idx];
306 KASSERT(ci == NULL || cpu_index(ci) == idx);
307 KASSERTMSG(idx < maxcpus || ci == NULL, "idx %d ci %p", idx, ci);
309 return ci;
313 cpu_xc_offline(struct cpu_info *ci, void *unused)
325 spc = &ci->ci_schedstate;
347 if (l->l_cpu != ci || (l->l_pflag & (LP_BOUND | LP_INTR))) {
390 cpu_xc_online(struct cpu_info *ci, void *unused)
397 spc = &ci->ci_schedstate;
404 cpu_setstate(struct cpu_info *ci, bool online)
413 spc = &ci->ci_schedstate;
441 where = xc_unicast(0, func, ci, NULL, ci);
459 cpu_is_type(struct cpu_info *ci, int wanted)
462 return (ci->ci_schedstate.spc_flags & wanted) == wanted;
466 cpu_is_idle_1stclass(struct cpu_info *ci)
470 return cpu_is_type(ci, wanted);
474 cpu_is_1stclass(struct cpu_info *ci)
478 return cpu_is_type(ci, wanted);
496 cpu_xc_intr(struct cpu_info *ci, void *unused)
501 spc = &ci->ci_schedstate;
508 cpu_xc_nointr(struct cpu_info *ci, void *unused)
513 spc = &ci->ci_schedstate;
520 cpu_setintr(struct cpu_info *ci, bool intr)
529 spc = &ci->ci_schedstate;
538 if (CPU_IS_PRIMARY(ci)) /* XXX kern/45117 */
550 if (ci2 == ci)
559 where = xc_unicast(0, func, ci, NULL, ci);
575 cpu_setintr(struct cpu_info *ci, bool intr)
582 cpu_intr_count(struct cpu_info *ci)