*参照元 [#v12adc3a]
#backlinks

*説明 [#cf4eab36]
-パス: [[linux-2.6.25/include/scsi/scsi_cmnd.h]]

-FIXME: これは何?
--説明


**参考 [#f200bf3d]


*実装 [#y6fbb4ba]
 struct scsi_cmnd {
         struct scsi_device *device;
-
--[[linux-2.6.25/scsi_device]]

         struct list_head list;  /* scsi_cmnd participates in queue lists */
         struct list_head eh_entry; /* entry for the host eh_cmd_q */
         int eh_eflags;          /* Used by error handlr */
-
--[[linux-2.6.25/list_head]]

         /*
          * A SCSI Command is assigned a nonzero serial_number before passed
          * to the driver's queue command function.  The serial_number is
          * cleared when scsi_done is entered indicating that the command
          * has been completed.  It is a bug for LLDDs to use this number
          * for purposes other than printk (and even that is only useful
          * for debugging).
          */
         unsigned long serial_number;
 
         /*
          * This is set to jiffies as it was when the command was first
          * allocated.  It is used to time how long the command has
          * been outstanding
          */
         unsigned long jiffies_at_alloc;
 
         int retries;
         int allowed;
         int timeout_per_command;
 
         unsigned char cmd_len;
         enum dma_data_direction sc_data_direction;
-
--[[linux-2.6.25/dma_data_direction]]

         /* These elements define the operation we are about to perform */
 #define MAX_COMMAND_SIZE        16
         unsigned char cmnd[MAX_COMMAND_SIZE];
 
         struct timer_list eh_timeout;   /* Used to time out the command. */
-
--[[linux-2.6.25/timer_list]]

         /* These elements define the operation we ultimately want to perform */
         struct scsi_data_buffer sdb;
-
--[[linux-2.6.25/scsi_data_buffer]]

         unsigned underflow;     /* Return error if less than
                                    this amount is transferred */
 
         unsigned transfersize;  /* How much we are guaranteed to
                                    transfer with each SCSI transfer
                                    (ie, between disconnect /
                                    reconnects.   Probably == sector
                                    size */
 
         struct request *request;        /* The command we are
                                            working on */
-
--[[linux-2.6.25/request]]

 #define SCSI_SENSE_BUFFERSIZE   96
         unsigned char *sense_buffer;
                                 /* obtained by REQUEST SENSE when
                                  * CHECK CONDITION is received on original
                                  * command (auto-sense) */
 
         /* Low-level done function - can be used by low-level driver to point
          *        to completion function.  Not used by mid/upper level code. */
         void (*scsi_done) (struct scsi_cmnd *);
 
         /*
          * The following fields can be written to by the host specific code.
          * Everything else should be left alone.
          */
         struct scsi_pointer SCp;        /* Scratchpad used by some host adapters */
-
--[[linux-2.6.25/scsi_pointer]]

         unsigned char *host_scribble;   /* The host adapter is allowed to
                                          * call scsi_malloc and get some memory
                                          * and hang it here.  The host adapter
                                          * is also expected to call scsi_free
                                          * to release this memory.  (The memory
                                          * obtained by scsi_malloc is guaranteed
                                          * to be at an address < 16Mb). */
 
         int result;             /* Status code from lower level driver */
 
         unsigned char tag;      /* SCSI-II queued command tag */
 };


*コメント [#r830dc17]
#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS