version 1.11, 2014/05/19 20:39:23 |
version 1.12, 2019/07/26 05:39:55 |
Line 357 kcpuset_set(kcpuset_t *kcp, cpuid_t i) |
|
Line 357 kcpuset_set(kcpuset_t *kcp, cpuid_t i) |
|
KASSERT(!kc_initialised || KC_GETSTRUCT(kcp)->kc_next == NULL); |
KASSERT(!kc_initialised || KC_GETSTRUCT(kcp)->kc_next == NULL); |
KASSERT(j < kc_nfields); |
KASSERT(j < kc_nfields); |
|
|
kcp->bits[j] |= 1 << (i & KC_MASK); |
kcp->bits[j] |= __BIT(i & KC_MASK); |
} |
} |
|
|
void |
void |
Line 368 kcpuset_clear(kcpuset_t *kcp, cpuid_t i) |
|
Line 368 kcpuset_clear(kcpuset_t *kcp, cpuid_t i) |
|
KASSERT(!kc_initialised || KC_GETCSTRUCT(kcp)->kc_next == NULL); |
KASSERT(!kc_initialised || KC_GETCSTRUCT(kcp)->kc_next == NULL); |
KASSERT(j < kc_nfields); |
KASSERT(j < kc_nfields); |
|
|
kcp->bits[j] &= ~(1 << (i & KC_MASK)); |
kcp->bits[j] &= ~(__BIT(i & KC_MASK)); |
} |
} |
|
|
bool |
bool |
Line 381 kcpuset_isset(const kcpuset_t *kcp, cpui |
|
Line 381 kcpuset_isset(const kcpuset_t *kcp, cpui |
|
KASSERT(!kc_initialised || KC_GETCSTRUCT(kcp)->kc_next == NULL); |
KASSERT(!kc_initialised || KC_GETCSTRUCT(kcp)->kc_next == NULL); |
KASSERT(j < kc_nfields); |
KASSERT(j < kc_nfields); |
|
|
return ((1 << (i & KC_MASK)) & kcp->bits[j]) != 0; |
return ((__BIT(i & KC_MASK)) & kcp->bits[j]) != 0; |
} |
} |
|
|
bool |
bool |
kcpuset_isotherset(const kcpuset_t *kcp, cpuid_t i) |
kcpuset_isotherset(const kcpuset_t *kcp, cpuid_t i) |
{ |
{ |
const size_t j2 = i >> KC_SHIFT; |
const size_t j2 = i >> KC_SHIFT; |
const uint32_t mask = ~(1 << (i & KC_MASK)); |
const uint32_t mask = ~(__BIT(i & KC_MASK)); |
|
|
for (size_t j = 0; j < kc_nfields; j++) { |
for (size_t j = 0; j < kc_nfields; j++) { |
const uint32_t bits = kcp->bits[j]; |
const uint32_t bits = kcp->bits[j]; |
Line 500 kcpuset_atomic_set(kcpuset_t *kcp, cpuid |
|
Line 500 kcpuset_atomic_set(kcpuset_t *kcp, cpuid |
|
const size_t j = i >> KC_SHIFT; |
const size_t j = i >> KC_SHIFT; |
|
|
KASSERT(j < kc_nfields); |
KASSERT(j < kc_nfields); |
atomic_or_32(&kcp->bits[j], 1 << (i & KC_MASK)); |
atomic_or_32(&kcp->bits[j], __BIT(i & KC_MASK)); |
} |
} |
|
|
void |
void |
Line 509 kcpuset_atomic_clear(kcpuset_t *kcp, cpu |
|
Line 509 kcpuset_atomic_clear(kcpuset_t *kcp, cpu |
|
const size_t j = i >> KC_SHIFT; |
const size_t j = i >> KC_SHIFT; |
|
|
KASSERT(j < kc_nfields); |
KASSERT(j < kc_nfields); |
atomic_and_32(&kcp->bits[j], ~(1 << (i & KC_MASK))); |
atomic_and_32(&kcp->bits[j], ~(__BIT(i & KC_MASK))); |
} |
} |
|
|
void |
void |