Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
69 * Ioctl interface<br />
70 *<br />
71 * Status: OPTIONAL<br />
72 */<br />
73 int (* ioctl)(struct scsi_device *dev, int cmd, void __user *arg);<br />
74<br />
75 /*<br />
76 * The queuecommand function is used to queue up a scsi<br />
77 * command block to the LLDD. When the driver finished<br />
78 * processing the command the done callback is invoked.<br />
79 *<br />
80 * If queuecommand returns 0, then the HBA has accepted the<br />
81 * command. The done() function must be called on the command<br />
82 * when the driver has finished with it. (you may call done on the<br />
83 * command before queuecommand returns, but in this case you<br />
84 * *must* return 0 from queuecommand).<br />
85 *<br />
86 * Queuecommand may also reject the command, in which case it may<br />
87 * not touch the command and must not call done() for it.<br />
88 *<br />
89 * There are two possible rejection returns:<br />
90 *<br />
91 * SCSI_MLQUEUE_DEVICE_BUSY: Block this device temporarily, but<br />
92 * allow commands to other devices serviced by this host.<br />
93 *<br />
94 * SCSI_MLQUEUE_HOST_BUSY: Block all devices served by this<br />
95 * host temporarily.<br />
96 *<br />
97 * For compatibility, any other non-zero return is treated the<br />
98 * same as SCSI_MLQUEUE_HOST_BUSY.<br />
99 *<br />
100 * NOTE: "temporarily" means either until the next command for#<br />
101 * this device/host completes, or a period <strong>of</strong> time determined by<br />
102 * I/O pressure in the system if there are no other outstanding<br />
103 * commands.<br />
104 *<br />
105 * STATUS: REQUIRED<br />
106 */<br />
107 int (* queuecommand)(struct scsi_cmnd *,<br />
108 void (*done)(struct scsi_cmnd *));<br />
96<br />
109<br />
110 /*<br />
111 * This is an error handling strategy routine. You don't need to