| Предыдущий | Следующий |
| kIOFireWireBusReset | kIOFireWireTalkingAndListening |
kIOFireWireBogusDCLProgram
Запрограммированная последовательность DMA-команд непригодна
kIOFireWireBogusDCLProgram означает, что контроллер не принял предоставленную программу DCL. Здесь DCL — список команд дескрипторов, описывающий работу контроллера. Статус относится к структуре и владению локальной программой, а не к ответу удалённого узла FireWire.
Диагностика должна сосредоточиться на отправленном списке: его выделении, выравнивании, порядке команд, ссылках на обратные вызовы, времени жизни буферов и связи с правильным контекстом контроллера. Изменение адреса удалённого устройства или повтор полезной нагрузки не сделает неверную локальную DCL-программу допустимой.
Проверяйте программу, а не только передачу
- Сохраните типы команд DCL, длину списка, источник выделения, адреса буферов, токены обратных вызовов и экземпляр контроллера.
- Убедитесь, что все буферы и обратные вызовы живут до документированного завершения.
- Проверьте пути сброса, сна и завершения на повторное использование программы от прежнего контроллера или поколения.
- Не считайте статус обычным отказом удалённого устройства и не повторяйте неизменённую программу.
Ссылки
- Apple: IOFireWireFamilyCommon.h
- Apple: IOFireWireDeviceInterface
- Ядро Linux: руководство по интерфейсу FireWire
Нужно найти другой код? Найти другой код состояния или ошибки.