aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_def.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-04-18 14:25:31 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-18 14:25:31 -0400
commit2cca775baecbfede2fec20c99add709232311fe7 (patch)
treeb0eefe80881d263ba7976174144ae4e9cf238425 /drivers/s390/scsi/zfcp_def.h
parenteddeb0e2d863e3941d8768e70cb50c6120e61fa0 (diff)
parent94795b61e84994a3b058f92d041d1fb3d869c7d5 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (137 commits) [SCSI] iscsi: bidi support for iscsi_tcp [SCSI] iscsi: bidi support at the generic libiscsi level [SCSI] iscsi: extended cdb support [SCSI] zfcp: Fix error handling for blocked unit for send FCP command [SCSI] zfcp: Remove zfcp_erp_wait from slave destory handler to fix deadlock [SCSI] zfcp: fix 31 bit compile warnings [SCSI] bsg: no need to set BSG_F_BLOCK bit in bsg_complete_all_commands [SCSI] bsg: remove minor in struct bsg_device [SCSI] bsg: use better helper list functions [SCSI] bsg: replace kobject_get with blk_get_queue [SCSI] bsg: takes a ref to struct device in fops->open [SCSI] qla1280: remove version check [SCSI] libsas: fix endianness bug in sas_ata [SCSI] zfcp: fix compiler warning caused by poking inside new semaphore (linux-next) [SCSI] aacraid: Do not describe check_reset parameter with its value [SCSI] aacraid: Fix down_interruptible() to check the return value [SCSI] sun3_scsi_vme: add MODULE_LICENSE [SCSI] st: rename flush_write_buffer() [SCSI] tgt: use KMEM_CACHE macro [SCSI] initio: fix big endian problems for auto request sense ...
Diffstat (limited to 'drivers/s390/scsi/zfcp_def.h')
-rw-r--r--drivers/s390/scsi/zfcp_def.h169
1 files changed, 4 insertions, 165 deletions
diff --git a/drivers/s390/scsi/zfcp_def.h b/drivers/s390/scsi/zfcp_def.h
index 45a7cd98c140..bda8c77b22da 100644
--- a/drivers/s390/scsi/zfcp_def.h
+++ b/drivers/s390/scsi/zfcp_def.h
@@ -47,6 +47,7 @@
47#include <asm/qdio.h> 47#include <asm/qdio.h>
48#include <asm/debug.h> 48#include <asm/debug.h>
49#include <asm/ebcdic.h> 49#include <asm/ebcdic.h>
50#include "zfcp_dbf.h"
50#include "zfcp_fsf.h" 51#include "zfcp_fsf.h"
51 52
52 53
@@ -262,167 +263,6 @@ struct fcp_logo {
262} __attribute__((packed)); 263} __attribute__((packed));
263 264
264/* 265/*
265 * DBF stuff
266 */
267#define ZFCP_DBF_TAG_SIZE 4
268
269struct zfcp_dbf_dump {
270 u8 tag[ZFCP_DBF_TAG_SIZE];
271 u32 total_size; /* size of total dump data */
272 u32 offset; /* how much data has being already dumped */
273 u32 size; /* how much data comes with this record */
274 u8 data[]; /* dump data */
275} __attribute__ ((packed));
276
277/* FIXME: to be inflated when reworking the erp dbf */
278struct zfcp_erp_dbf_record {
279 u8 dummy[16];
280} __attribute__ ((packed));
281
282struct zfcp_hba_dbf_record_response {
283 u32 fsf_command;
284 u64 fsf_reqid;
285 u32 fsf_seqno;
286 u64 fsf_issued;
287 u32 fsf_prot_status;
288 u32 fsf_status;
289 u8 fsf_prot_status_qual[FSF_PROT_STATUS_QUAL_SIZE];
290 u8 fsf_status_qual[FSF_STATUS_QUALIFIER_SIZE];
291 u32 fsf_req_status;
292 u8 sbal_first;
293 u8 sbal_curr;
294 u8 sbal_last;
295 u8 pool;
296 u64 erp_action;
297 union {
298 struct {
299 u64 scsi_cmnd;
300 u64 scsi_serial;
301 } send_fcp;
302 struct {
303 u64 wwpn;
304 u32 d_id;
305 u32 port_handle;
306 } port;
307 struct {
308 u64 wwpn;
309 u64 fcp_lun;
310 u32 port_handle;
311 u32 lun_handle;
312 } unit;
313 struct {
314 u32 d_id;
315 u8 ls_code;
316 } send_els;
317 } data;
318} __attribute__ ((packed));
319
320struct zfcp_hba_dbf_record_status {
321 u8 failed;
322 u32 status_type;
323 u32 status_subtype;
324 struct fsf_queue_designator
325 queue_designator;
326 u32 payload_size;
327#define ZFCP_DBF_UNSOL_PAYLOAD 80
328#define ZFCP_DBF_UNSOL_PAYLOAD_SENSE_DATA_AVAIL 32
329#define ZFCP_DBF_UNSOL_PAYLOAD_BIT_ERROR_THRESHOLD 56
330#define ZFCP_DBF_UNSOL_PAYLOAD_FEATURE_UPDATE_ALERT 2 * sizeof(u32)
331 u8 payload[ZFCP_DBF_UNSOL_PAYLOAD];
332} __attribute__ ((packed));
333
334struct zfcp_hba_dbf_record_qdio {
335 u32 status;
336 u32 qdio_error;
337 u32 siga_error;
338 u8 sbal_index;
339 u8 sbal_count;
340} __attribute__ ((packed));
341
342struct zfcp_hba_dbf_record {
343 u8 tag[ZFCP_DBF_TAG_SIZE];
344 u8 tag2[ZFCP_DBF_TAG_SIZE];
345 union {
346 struct zfcp_hba_dbf_record_response response;
347 struct zfcp_hba_dbf_record_status status;
348 struct zfcp_hba_dbf_record_qdio qdio;
349 } type;
350} __attribute__ ((packed));
351
352struct zfcp_san_dbf_record_ct {
353 union {
354 struct {
355 u16 cmd_req_code;
356 u8 revision;
357 u8 gs_type;
358 u8 gs_subtype;
359 u8 options;
360 u16 max_res_size;
361 } request;
362 struct {
363 u16 cmd_rsp_code;
364 u8 revision;
365 u8 reason_code;
366 u8 reason_code_expl;
367 u8 vendor_unique;
368 } response;
369 } type;
370 u32 payload_size;
371#define ZFCP_DBF_CT_PAYLOAD 24
372 u8 payload[ZFCP_DBF_CT_PAYLOAD];
373} __attribute__ ((packed));
374
375struct zfcp_san_dbf_record_els {
376 u8 ls_code;
377 u32 payload_size;
378#define ZFCP_DBF_ELS_PAYLOAD 32
379#define ZFCP_DBF_ELS_MAX_PAYLOAD 1024
380 u8 payload[ZFCP_DBF_ELS_PAYLOAD];
381} __attribute__ ((packed));
382
383struct zfcp_san_dbf_record {
384 u8 tag[ZFCP_DBF_TAG_SIZE];
385 u64 fsf_reqid;
386 u32 fsf_seqno;
387 u32 s_id;
388 u32 d_id;
389 union {
390 struct zfcp_san_dbf_record_ct ct;
391 struct zfcp_san_dbf_record_els els;
392 } type;
393} __attribute__ ((packed));
394
395struct zfcp_scsi_dbf_record {
396 u8 tag[ZFCP_DBF_TAG_SIZE];
397 u8 tag2[ZFCP_DBF_TAG_SIZE];
398 u32 scsi_id;
399 u32 scsi_lun;
400 u32 scsi_result;
401 u64 scsi_cmnd;
402 u64 scsi_serial;
403#define ZFCP_DBF_SCSI_OPCODE 16
404 u8 scsi_opcode[ZFCP_DBF_SCSI_OPCODE];
405 u8 scsi_retries;
406 u8 scsi_allowed;
407 u64 fsf_reqid;
408 u32 fsf_seqno;
409 u64 fsf_issued;
410 union {
411 u64 old_fsf_reqid;
412 struct {
413 u8 rsp_validity;
414 u8 rsp_scsi_status;
415 u32 rsp_resid;
416 u8 rsp_code;
417#define ZFCP_DBF_SCSI_FCP_SNS_INFO 16
418#define ZFCP_DBF_SCSI_MAX_FCP_SNS_INFO 256
419 u32 sns_info_len;
420 u8 sns_info[ZFCP_DBF_SCSI_FCP_SNS_INFO];
421 } fcp;
422 } type;
423} __attribute__ ((packed));
424
425/*
426 * FC-FS stuff 266 * FC-FS stuff
427 */ 267 */
428#define R_A_TOV 10 /* seconds */ 268#define R_A_TOV 10 /* seconds */
@@ -634,7 +474,6 @@ do { \
634 ZFCP_STATUS_PORT_NO_SCSI_ID) 474 ZFCP_STATUS_PORT_NO_SCSI_ID)
635 475
636/* logical unit status */ 476/* logical unit status */
637#define ZFCP_STATUS_UNIT_NOTSUPPUNITRESET 0x00000001
638#define ZFCP_STATUS_UNIT_TEMPORARY 0x00000002 477#define ZFCP_STATUS_UNIT_TEMPORARY 0x00000002
639#define ZFCP_STATUS_UNIT_SHARED 0x00000004 478#define ZFCP_STATUS_UNIT_SHARED 0x00000004
640#define ZFCP_STATUS_UNIT_READONLY 0x00000008 479#define ZFCP_STATUS_UNIT_READONLY 0x00000008
@@ -917,15 +756,15 @@ struct zfcp_adapter {
917 u32 erp_low_mem_count; /* nr of erp actions waiting 756 u32 erp_low_mem_count; /* nr of erp actions waiting
918 for memory */ 757 for memory */
919 struct zfcp_port *nameserver_port; /* adapter's nameserver */ 758 struct zfcp_port *nameserver_port; /* adapter's nameserver */
920 debug_info_t *erp_dbf; 759 debug_info_t *rec_dbf;
921 debug_info_t *hba_dbf; 760 debug_info_t *hba_dbf;
922 debug_info_t *san_dbf; /* debug feature areas */ 761 debug_info_t *san_dbf; /* debug feature areas */
923 debug_info_t *scsi_dbf; 762 debug_info_t *scsi_dbf;
924 spinlock_t erp_dbf_lock; 763 spinlock_t rec_dbf_lock;
925 spinlock_t hba_dbf_lock; 764 spinlock_t hba_dbf_lock;
926 spinlock_t san_dbf_lock; 765 spinlock_t san_dbf_lock;
927 spinlock_t scsi_dbf_lock; 766 spinlock_t scsi_dbf_lock;
928 struct zfcp_erp_dbf_record erp_dbf_buf; 767 struct zfcp_rec_dbf_record rec_dbf_buf;
929 struct zfcp_hba_dbf_record hba_dbf_buf; 768 struct zfcp_hba_dbf_record hba_dbf_buf;
930 struct zfcp_san_dbf_record san_dbf_buf; 769 struct zfcp_san_dbf_record san_dbf_buf;
931 struct zfcp_scsi_dbf_record scsi_dbf_buf; 770 struct zfcp_scsi_dbf_record scsi_dbf_buf;