diff options
| author | John Garry <john.garry@huawei.com> | 2015-11-17 11:50:28 -0500 |
|---|---|---|
| committer | Martin K. Petersen <martin.petersen@oracle.com> | 2015-11-25 22:12:50 -0500 |
| commit | c15d75bec6d0a937f7a15b81052ed99d310e9767 (patch) | |
| tree | f01b0eaafeef7978f8f8fdf1da6f4a1567689f34 /include/scsi | |
| parent | 4190230edbbe8864f04610900249db3738e2f51c (diff) | |
scsi: Centralise ssp frame information units
The xfer_rdy, command, and task frame's iu structures are not available
in <scsi/sas.h>, but only aic94xx driver folder. Add them to
include/scsi/sas.h
Signed-off-by: John Garry <john.garry@huawei.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'include/scsi')
| -rw-r--r-- | include/scsi/sas.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/include/scsi/sas.h b/include/scsi/sas.h index 0d2607d12387..42a84ef42683 100644 --- a/include/scsi/sas.h +++ b/include/scsi/sas.h | |||
| @@ -344,6 +344,43 @@ struct ssp_response_iu { | |||
| 344 | u8 sense_data[0]; | 344 | u8 sense_data[0]; |
| 345 | } __attribute__ ((packed)); | 345 | } __attribute__ ((packed)); |
| 346 | 346 | ||
| 347 | struct ssp_command_iu { | ||
| 348 | u8 lun[8]; | ||
| 349 | u8 _r_a; | ||
| 350 | |||
| 351 | union { | ||
| 352 | struct { | ||
| 353 | u8 attr:3; | ||
| 354 | u8 prio:4; | ||
| 355 | u8 efb:1; | ||
| 356 | }; | ||
| 357 | u8 efb_prio_attr; | ||
| 358 | }; | ||
| 359 | |||
| 360 | u8 _r_b; | ||
| 361 | |||
| 362 | u8 _r_c:2; | ||
| 363 | u8 add_cdb_len:6; | ||
| 364 | |||
| 365 | u8 cdb[16]; | ||
| 366 | u8 add_cdb[0]; | ||
| 367 | } __attribute__ ((packed)); | ||
| 368 | |||
| 369 | struct xfer_rdy_iu { | ||
| 370 | __be32 requested_offset; | ||
| 371 | __be32 write_data_len; | ||
| 372 | __be32 _r_a; | ||
| 373 | } __attribute__ ((packed)); | ||
| 374 | |||
| 375 | struct ssp_tmf_iu { | ||
| 376 | u8 lun[8]; | ||
| 377 | u16 _r_a; | ||
| 378 | u8 tmf; | ||
| 379 | u8 _r_b; | ||
| 380 | __be16 tag; | ||
| 381 | u8 _r_c[14]; | ||
| 382 | } __attribute__ ((packed)); | ||
| 383 | |||
| 347 | /* ---------- SMP ---------- */ | 384 | /* ---------- SMP ---------- */ |
| 348 | 385 | ||
| 349 | struct report_general_resp { | 386 | struct report_general_resp { |
| @@ -538,6 +575,43 @@ struct ssp_response_iu { | |||
| 538 | u8 sense_data[0]; | 575 | u8 sense_data[0]; |
| 539 | } __attribute__ ((packed)); | 576 | } __attribute__ ((packed)); |
| 540 | 577 | ||
| 578 | struct ssp_command_iu { | ||
| 579 | u8 lun[8]; | ||
| 580 | u8 _r_a; | ||
| 581 | |||
| 582 | union { | ||
| 583 | struct { | ||
| 584 | u8 efb:1; | ||
| 585 | u8 prio:4; | ||
| 586 | u8 attr:3; | ||
| 587 | }; | ||
| 588 | u8 efb_prio_attr; | ||
| 589 | }; | ||
| 590 | |||
| 591 | u8 _r_b; | ||
| 592 | |||
| 593 | u8 add_cdb_len:6; | ||
| 594 | u8 _r_c:2; | ||
| 595 | |||
| 596 | u8 cdb[16]; | ||
| 597 | u8 add_cdb[0]; | ||
| 598 | } __attribute__ ((packed)); | ||
| 599 | |||
| 600 | struct xfer_rdy_iu { | ||
| 601 | __be32 requested_offset; | ||
| 602 | __be32 write_data_len; | ||
| 603 | __be32 _r_a; | ||
| 604 | } __attribute__ ((packed)); | ||
| 605 | |||
| 606 | struct ssp_tmf_iu { | ||
| 607 | u8 lun[8]; | ||
| 608 | u16 _r_a; | ||
| 609 | u8 tmf; | ||
| 610 | u8 _r_b; | ||
| 611 | __be16 tag; | ||
| 612 | u8 _r_c[14]; | ||
| 613 | } __attribute__ ((packed)); | ||
| 614 | |||
| 541 | /* ---------- SMP ---------- */ | 615 | /* ---------- SMP ---------- */ |
| 542 | 616 | ||
| 543 | struct report_general_resp { | 617 | struct report_general_resp { |
