9.1.9 Chained Commands

One important consideration when writing a fast disk device is whether or not
the device will support chained commands. All clients may submit multiple
commands, however a fast disk device has the option of requesting that virtual block device serialize all commands so that the fast disk device is only required to execute one command at a time. This is accomplished by setting the
BDF_Serial_Cmd flag in the BDD field. If this option is selected then virtual block device will queue all commands, and only present the fast disk device with a single command at a time. The virtual block device will also validate sector ranges for read and write commands. Fast disk devices will never need to test for invalid sectors on these commands if BDF_Serial_Cmd is selected. Also, virtual block devices will handle all canceled commands. The fast disk device will never see either the command that was canceled, or the cancel command itself.

Fast disk devices for controllers that can handle multiple commands may not require commands serialized by the virtual block device. In this case, the fast disk device is responsible for queueing commands and performing all error checking for every command. The virtual block device will simply pass all command chains through to the fast disk device.