aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/scsi/zfcp_def.h')
-rw-r--r--drivers/s390/scsi/zfcp_def.h84
1 files changed, 56 insertions, 28 deletions
diff --git a/drivers/s390/scsi/zfcp_def.h b/drivers/s390/scsi/zfcp_def.h
index 2715a103e5a..a04bdfd4d2f 100644
--- a/drivers/s390/scsi/zfcp_def.h
+++ b/drivers/s390/scsi/zfcp_def.h
@@ -529,36 +529,64 @@ struct zfcp_unit {
529 struct work_struct scsi_work; 529 struct work_struct scsi_work;
530}; 530};
531 531
532/* FSF request */ 532/**
533 * struct zfcp_queue_req - queue related values for a request
534 * @sbal_number: number of free SBALs
535 * @sbal_first: first SBAL for this request
536 * @sbal_last: last SBAL for this request
537 * @sbal_limit: last possible SBAL for this request
538 * @sbale_curr: current SBALE at creation of this request
539 * @sbal_response: SBAL used in interrupt
540 * @qdio_outb_usage: usage of outbound queue
541 * @qdio_inb_usage: usage of inbound queue
542 */
543struct zfcp_queue_req {
544 u8 sbal_number;
545 u8 sbal_first;
546 u8 sbal_last;
547 u8 sbal_limit;
548 u8 sbale_curr;
549 u8 sbal_response;
550 u16 qdio_outb_usage;
551 u16 qdio_inb_usage;
552};
553
554/**
555 * struct zfcp_fsf_req - basic FSF request structure
556 * @list: list of FSF requests
557 * @req_id: unique request ID
558 * @adapter: adapter this request belongs to
559 * @queue_req: queue related values
560 * @completion: used to signal the completion of the request
561 * @status: status of the request
562 * @fsf_command: FSF command issued
563 * @qtcb: associated QTCB
564 * @seq_no: sequence number of this request
565 * @data: private data
566 * @timer: timer data of this request
567 * @erp_action: reference to erp action if request issued on behalf of ERP
568 * @pool: reference to memory pool if used for this request
569 * @issued: time when request was send (STCK)
570 * @unit: reference to unit if this request is a SCSI request
571 * @handler: handler which should be called to process response
572 */
533struct zfcp_fsf_req { 573struct zfcp_fsf_req {
534 struct list_head list; /* list of FSF requests */ 574 struct list_head list;
535 unsigned long req_id; /* unique request ID */ 575 unsigned long req_id;
536 struct zfcp_adapter *adapter; /* adapter request belongs to */ 576 struct zfcp_adapter *adapter;
537 u8 sbal_number; /* nr of SBALs free for use */ 577 struct zfcp_queue_req queue_req;
538 u8 sbal_first; /* first SBAL for this request */ 578 struct completion completion;
539 u8 sbal_last; /* last SBAL for this request */ 579 u32 status;
540 u8 sbal_limit; /* last possible SBAL for 580 u32 fsf_command;
541 this reuest */ 581 struct fsf_qtcb *qtcb;
542 u8 sbale_curr; /* current SBALE during creation 582 u32 seq_no;
543 of request */ 583 void *data;
544 u8 sbal_response; /* SBAL used in interrupt */ 584 struct timer_list timer;
545 struct completion completion; /* can be used by a routine 585 struct zfcp_erp_action *erp_action;
546 to wait for completion */ 586 mempool_t *pool;
547 u32 status; /* status of this request */ 587 unsigned long long issued;
548 u32 fsf_command; /* FSF Command copy */ 588 struct zfcp_unit *unit;
549 struct fsf_qtcb *qtcb; /* address of associated QTCB */
550 u32 seq_no; /* Sequence number of request */
551 void *data; /* private data of request */
552 struct timer_list timer; /* used for erp or scsi er */
553 struct zfcp_erp_action *erp_action; /* used if this request is
554 issued on behalf of erp */
555 mempool_t *pool; /* used if request was alloacted
556 from emergency pool */
557 unsigned long long issued; /* request sent time (STCK) */
558 struct zfcp_unit *unit;
559 void (*handler)(struct zfcp_fsf_req *); 589 void (*handler)(struct zfcp_fsf_req *);
560 u16 qdio_outb_usage;/* usage of outbound queue */
561 u16 qdio_inb_usage; /* usage of inbound queue */
562}; 590};
563 591
564/* driver data */ 592/* driver data */