| Previous | Next |
| kIOFireWireNoListenerOrTalker | kIOFireWireChannelNotAvailable |
kIOFireWireNoChannels
Channel allocation is a bus-wide resource operation
kIOFireWireNoChannels means that the isochronous setup could not obtain a usable channel from the FireWire resource manager. IEEE 1394 has a finite numbered channel space, while channel assignment and bandwidth reservation are separate resources. Linux’s FireWire interface exposes the same separation: a client asks the isochronous resource manager to allocate a channel and/or bandwidth, and the result reports both independently.
Do not equate this status with insufficient bandwidth. A request can fail because no acceptable channel can be allocated even when bandwidth remains, and kIOFireWireIsochBandwidthNotAvailable describes the opposite resource class. It is also broader than kIOFireWireChannelNotAvailable, which concerns an unavailable selected channel rather than a failure to obtain any channel for the request.
Useful evidence and recovery boundaries
- Log the requested channel or candidate-channel set, the current bus generation, and whether allocation was automatic or pinned to a particular channel number.
- Inspect other active isochronous streams on the same FireWire bus. Channel reservations are shared bus resources, not per-process identifiers.
- Where the owning API permits a candidate set or automatic allocation, avoid hard-coding a single channel unless the upper-level protocol requires it.
- After a bus reset, wait for the application’s resource-recovery path to establish the current allocation result; an old channel number is not proof that the same resource remains available in the new generation.
References
- Linux kernel documentation: allocation of isochronous channels and bandwidth at the IRM
- IEEE 1394 technical introduction: resource-manager registers and 64-channel space
- Apple: IOFireWireIsochChannelInterface
Looking for a different code? Search another status or error code.