Home | History | Annotate | Download | only in kern

Lines Matching defs:kcp

111 	kcpuset_t *kc_dynamic[KC_SAVE_NITEMS], *kcp;
123 kcp = kcpuset_create_raw(true);
124 kc_dynamic[i] = kcp;
163 kcpuset_t *kcp;
173 kcp = (kcpuset_t *)&kc_bits_early[kc_last_idx];
175 memset(kcp, 0, KC_BITSIZE_EARLY);
183 return kcp;
221 kcpuset_clone(kcpuset_t **retkcp, const kcpuset_t *kcp)
224 memcpy(*retkcp, kcp, kc_bitsize);
228 kcpuset_destroy(kcpuset_t *kcp)
234 KASSERT(kcp != NULL);
237 kc = KC_GETSTRUCT(kcp);
238 kcp = kc->kc_next;
240 } while (kcp);
249 kcpuset_use(kcpuset_t *kcp)
251 kcpuset_impl_t *kc = KC_GETSTRUCT(kcp);
258 kcpuset_unuse(kcpuset_t *kcp, kcpuset_t **lst)
260 kcpuset_impl_t *kc = KC_GETSTRUCT(kcp);
272 kcpuset_destroy(kcp);
276 *lst = kcp;
285 kcpuset_copyin(const cpuset_t *ucp, kcpuset_t *kcp, size_t len)
287 kcpuset_impl_t *kc __diagused = KC_GETSTRUCT(kcp);
296 return copyin(ucp, kcp, len);
300 kcpuset_copyout(kcpuset_t *kcp, cpuset_t *ucp, size_t len)
302 kcpuset_impl_t *kc __diagused = KC_GETSTRUCT(kcp);
311 return copyout(kcp, ucp, len);
315 kcpuset_export_u32(const kcpuset_t *kcp, uint32_t *bitfield, size_t len)
319 KASSERT(kcp != NULL);
320 memcpy(bitfield, kcp->bits, rlen);
328 kcpuset_zero(kcpuset_t *kcp)
331 KASSERT(!kc_initialised || KC_GETSTRUCT(kcp)->kc_refcnt > 0);
332 KASSERT(!kc_initialised || KC_GETSTRUCT(kcp)->kc_next == NULL);
333 memset(kcp, 0, kc_bitsize);
337 kcpuset_fill(kcpuset_t *kcp)
340 KASSERT(!kc_initialised || KC_GETSTRUCT(kcp)->kc_refcnt > 0);
341 KASSERT(!kc_initialised || KC_GETSTRUCT(kcp)->kc_next == NULL);
342 memset(kcp, ~0, kc_bitsize);
355 kcpuset_set(kcpuset_t *kcp, cpuid_t i)
359 KASSERT(!kc_initialised || KC_GETSTRUCT(kcp)->kc_next == NULL);
362 kcp->bits[j] |= __BIT(i & KC_MASK);
366 kcpuset_clear(kcpuset_t *kcp, cpuid_t i)
370 KASSERT(!kc_initialised || KC_GETCSTRUCT(kcp)->kc_next == NULL);
373 kcp->bits[j] &= ~(__BIT(i & KC_MASK));
377 kcpuset_isset(const kcpuset_t *kcp, cpuid_t i)
381 KASSERT(kcp != NULL);
382 KASSERT(!kc_initialised || KC_GETCSTRUCT(kcp)->kc_refcnt > 0);
383 KASSERT(!kc_initialised || KC_GETCSTRUCT(kcp)->kc_next == NULL);
386 return ((__BIT(i & KC_MASK)) & kcp->bits[j]) != 0;
390 kcpuset_isotherset(const kcpuset_t *kcp, cpuid_t i)
396 const uint32_t bits = kcp->bits[j];
405 kcpuset_iszero(const kcpuset_t *kcp)
409 if (kcp->bits[j] != 0) {
435 kcpuset_ffs(const kcpuset_t *kcp)
439 if (kcp->bits[j])
440 return 32 * j + ffs(kcp->bits[j]);
485 kcpuset_countset(const kcpuset_t *kcp)
490 count += popcount32(kcp->bits[j]);
500 kcpuset_atomic_set(kcpuset_t *kcp, cpuid_t i)
505 atomic_or_32(&kcp->bits[j], __BIT(i & KC_MASK));
509 kcpuset_atomic_clear(kcpuset_t *kcp, cpuid_t i)
514 atomic_and_32(&kcp->bits[j], ~(__BIT(i & KC_MASK)));