Man CPU_SET (3) CPU_XOR

Тип данни cpu_set_t реализиран като битова маска. Структурата на данните обаче трябва да се счита за „черна кутия“: всички действия с набори от процесори трябва да се извършват с помощта на макросите, описани на тази страница.

За работа с набор от процесори комплект предоставят се следните макроси:

CPU_ZERO() Почиства комплект, след това не съдържа процесор. CPU_SET() Добавя CPU процесор в комплект. CPU_CLR() Премахва процесора процесор на комплект. CPU_ISSET() Проверява дали CPU е процесор член на комплект. CPU_COUNT() Връща броя на процесорите в комплект.

Макроси като аргумент процесор, не причиняват странични ефекти, всички изброени по-горе макроси могат да използват аргумента повече от веднъж.

Стойността на първия процесор на системата в процесор означено като 0, следваща стойност на процесора в процесор е равно на 1 и т. н. Не може да се приеме, че има налични CPU или че набор от CPU е непрекъснат, тъй като CPU могат да бъдат динамично деактивирани или несъществуващи. Постоянно CPU_SETSIZE (в момента 1024) е зададено на 1 по-голямо от максималния номер на процесора, който може да се съхранява cpu_set_t.

Следните макроси изпълняват логически операции върху набори от процесори:

CPU_AND() Запазва пресичането на множества srcset1 и srcset2 в десет (което може да бъде един от наборите аргументи). CPU_OR() Запазва обединението на множества srcset1 и srcset2 в десет (което може да бъде един от наборите аргументи). CPU_XOR() Запазва резултата от XOR набори srcset1 и srcset2 в десет (което може да бъде един от наборите аргументи). Операцията XOR връща набор от процесори, които са в един от srcset1 или srcset2, но не и двете едновременно. CPU_EQUAL() Проверява дали два комплекта CPU съдържат едни и същи CPU.

Динамично преоразмеряващи се CPU комплекти

Следните макроси се използват за избор и премахване на набори от процесори: