package unix
import (
)
const cpuSetSize = _CPU_SETSIZE / _NCPUBITS
type CPUSet [cpuSetSize]cpuMask
func ( uintptr, int, *CPUSet) error {
, , := RawSyscall(, uintptr(), uintptr(unsafe.Sizeof(*)), uintptr(unsafe.Pointer()))
if != 0 {
return errnoErr()
}
return nil
}
func ( int, *CPUSet) error {
return schedAffinity(SYS_SCHED_GETAFFINITY, , )
}
func ( int, *CPUSet) error {
return schedAffinity(SYS_SCHED_SETAFFINITY, , )
}
func ( *CPUSet) () {
for := range {
[] = 0
}
}
func ( int) int {
return / _NCPUBITS
}
func ( int) cpuMask {
return cpuMask(1 << (uint() % _NCPUBITS))
}
func ( *CPUSet) ( int) {
:= cpuBitsIndex()
if < len() {
[] |= cpuBitsMask()
}
}
func ( *CPUSet) ( int) {
:= cpuBitsIndex()
if < len() {
[] &^= cpuBitsMask()
}
}
func ( *CPUSet) ( int) bool {
:= cpuBitsIndex()
if < len() {
return []&cpuBitsMask() != 0
}
return false
}
func ( *CPUSet) () int {
:= 0
for , := range {
+= bits.OnesCount64(uint64())
}
return
}