Структура, характеризующая маску процессоров, на которых разрешено исполнение потока
#include <sys/neutrino.h>/** Where 'size' must be the precise value required* to define the number of cpus currently on the* system: eg. RMSK_SIZE(_syspage_ptr->num_cpu).*/struct _thread_runmask {int size;/* unsigned runmask[size]; *//* unsigned inherit_mask[size]; */};#define RMSK_SIZE( num_cpu ) (((num_cpu) - 1) / __INT_BITS__ + 1)#define RMSK_SET( cpu, p ) ((p)[(cpu) / __INT_BITS__] |= \(1U << ((cpu) % __INT_BITS__)))#define RMSK_CLR( cpu, p ) ((p)[(cpu) / __INT_BITS__] &= \~(1U << ((cpu) % __INT_BITS__)))#define RMSK_ISSET( cpu, p ) ((p)[(cpu) / __INT_BITS__] & \(1U << ((cpu) % __INT_BITS__)))
Тип позволяет модифицировать маску процессоров, на которых разрешено исполнение потока. Используется в сочетании с вызовом ThreadCtl*( _NTO_TCTL_RUNMASK_GET_AND_SET_INHERIT, data ). Структура регламентирует заполнение следующих полей:
RMSK_SIZE( num_cpu )
ниже. Однако размер масок (и, следовательно, размер структуры) зависит от количества процессоров в системе. Для большего удобства работы со структурой определены следующие макросы:
ЗОСРВ «Нейтрино»
_syspage_ptr, ThreadCtl(), ThreadCtl_r()
Предыдущий раздел: Описание API системной библиотеки