To be done
----------

 - See http://scst.sourceforge.net/contributing.html

 - Kernel build integration (patch).

 - Reimplement VDISK handler with usage of async. read/write operations
   (in order to avoid unnecessary context switches) and direct access to
   the page cache (in order to avoid data copy between it and internal
   buffers). Requires modifications of the kernel.

 - Dynamic I/O flow control, when the device queue depth on the target
   will be dynamically decreased/increased based on how slow/fast the
   backstorage speed comparing to the target link for current IO
   pattern.

 - Fix in-kernel O_DIRECT mode.
 
 - Close integration with Linux initiator SCSI mil-level, including 
   queue types (simple, ordered, etc.) and local initiators (sd, st, sg,
   etc.) support. Requires modifications of the kernel.

 - Improve task management and Unit Attention conditions handling
   using ACA in order to make them always reliable. Honoring NACA, QErr,
   TST, UA_INTLCK_CTRL bits. Requires deep modifications of the kernel.

 - Better handle of devices DMA restrictions.
 
 - Move linear searches to hash-table based.
 
 - Small ToDo's spread all over the code.

 - Investigate possible missed emulated UA cases.

 - More target drivers errors handling (timeouts for commands, sent
   to target drivers, e.g. via xmit_response(), etc.) with some kind
   of error recovery.

 - Additional ability for target drivers to ask for command's retry also
   after xmit_response() and rdy_to_xfer() returned (for example, if a
   command was successfully sent to the target card, but later it was
   returned by the card with BUSY completion status).
 
 - Asynchronous Event Notification support.
 
 - Support of SCSI 3 variable length CDBs, as well as OSD's extensions.
 
 - Advanced SCSI commands support: COPY, EXTENDED COPY, PERSISTENT
   RESERVE IN/OUT, third party RESERVE, etc.
