summaryrefslogtreecommitdiffstats
path: root/sys/cam/scsi/scsi_all.h
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2014-11-02 17:28:08 +0000
committermav <mav@FreeBSD.org>2014-11-02 17:28:08 +0000
commit9ac81dc0af88eb1a01f4e2c79d73904fd459f465 (patch)
tree3b310b92cf357c60b5b7889a318a31178f510026 /sys/cam/scsi/scsi_all.h
parent13d0c695a0aa6e7afd15090eafe52fe18cf7fab2 (diff)
downloadFreeBSD-src-9ac81dc0af88eb1a01f4e2c79d73904fd459f465.zip
FreeBSD-src-9ac81dc0af88eb1a01f4e2c79d73904fd459f465.tar.gz
MFC r273073: Some groundwork for later Informational Exceptions support.
This includes support for: - Read-Write Error Recovery mode page; - Informational Exceptions Control mode page; - Logical Block Provisioning mode page; - LOG SENSE command. No real Informational Exceptions features yet. This is only a placeholder.
Diffstat (limited to 'sys/cam/scsi/scsi_all.h')
-rw-r--r--sys/cam/scsi/scsi_all.h28
1 files changed, 25 insertions, 3 deletions
diff --git a/sys/cam/scsi/scsi_all.h b/sys/cam/scsi/scsi_all.h
index fbb131e..1f5fde1 100644
--- a/sys/cam/scsi/scsi_all.h
+++ b/sys/cam/scsi/scsi_all.h
@@ -551,7 +551,7 @@ struct scsi_log_sense
#define SLS_PPC 0x02
u_int8_t page;
#define SLS_PAGE_CODE 0x3F
-#define SLS_ALL_PAGES_PAGE 0x00
+#define SLS_SUPPORTED_PAGES_PAGE 0x00
#define SLS_OVERRUN_PAGE 0x01
#define SLS_ERROR_WRITE_PAGE 0x02
#define SLS_ERROR_READ_PAGE 0x03
@@ -566,7 +566,9 @@ struct scsi_log_sense
#define SLS_PAGE_CTRL_CUMULATIVE 0x40
#define SLS_PAGE_CTRL_THRESH_DEFAULT 0x80
#define SLS_PAGE_CTRL_CUMUL_DEFAULT 0xC0
- u_int8_t reserved[2];
+ u_int8_t subpage;
+#define SLS_SUPPORTED_SUBPAGES_SUBPAGE 0xff
+ u_int8_t reserved;
u_int8_t paramptr[2];
u_int8_t length[2];
u_int8_t control;
@@ -592,7 +594,10 @@ struct scsi_log_select
struct scsi_log_header
{
u_int8_t page;
- u_int8_t reserved;
+#define SL_PAGE_CODE 0x3F
+#define SL_SPF 0x40
+#define SL_DS 0x80
+ u_int8_t subpage;
u_int8_t datalen[2];
};
@@ -767,6 +772,23 @@ struct scsi_info_exceptions_page {
u_int8_t report_count[4];
};
+struct scsi_logical_block_provisioning_page_descr {
+ uint8_t flags;
+ uint8_t resource;
+ uint8_t reserved[2];
+ uint8_t count[4];
+};
+
+struct scsi_logical_block_provisioning_page {
+ uint8_t page_code;
+ uint8_t subpage_code;
+ uint8_t page_length[2];
+ uint8_t flags;
+#define SLBPP_SITUA 0x01
+ uint8_t reserved[11];
+ struct scsi_logical_block_provisioning_page_descr descr[0];
+};
+
/*
* SCSI protocol identifier values, current as of SPC4r36l.
*/
OpenPOWER on IntegriCloud