Site icon EfmSoft

Что означает код возврата ядра macOS 15872 (MACH_MSG_MASK)?

 
Предыдущий Следующий
MACH_MSG_IPC_SPACE MACH_SEND_IN_PROGRESS

MACH_MSG_MASK

Это маска, а не самостоятельная ошибка

MACH_MSG_MASK объединяет специальные биты нехватки ресурсов, которые могут добавляться операцией OR к некоторым результатам mach_msg . Поэтому прямое сравнение необработанного результата с MACH_RCV_BODY_ERROR или тайм-аутом отправки может не сработать, если установлен один из этих битов. Диагностический код должен разделить значение на основной результат и дополнительные флаги.

ФлагРесурс, который не удалось передать
MACH_MSG_VM_KERNELВнестрочная память из-за нехватки ресурсов виртуальной памяти ядра
MACH_MSG_IPC_KERNELПраво порта из-за нехватки ресурсов IPC ядра
MACH_MSG_VM_SPACEВнестрочная память из-за нехватки виртуального адресного пространства задачи
MACH_MSG_IPC_SPACEПраво порта из-за отсутствия свободного места в пространстве имён IPC задачи

Безопасная расшифровка

special = result & MACH_MSG_MASK;
base = result & ~MACH_MSG_MASK;

Базовое значение определяет, не было ли сообщение извлечено из очереди, было ли оно извлечено с повреждением заголовка или тела либо возвращено псевдополучением при отправке. Флаги уточняют причину, но не заменяют правила владения и очистки, заданные базовым результатом.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version