summaryrefslogtreecommitdiff
path: root/sys/scsi/scsi_disk.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/scsi/scsi_disk.h')
-rw-r--r--sys/scsi/scsi_disk.h53
1 files changed, 47 insertions, 6 deletions
diff --git a/sys/scsi/scsi_disk.h b/sys/scsi/scsi_disk.h
index 80185fe757a..eaa8bf31fde 100644
--- a/sys/scsi/scsi_disk.h
+++ b/sys/scsi/scsi_disk.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: scsi_disk.h,v 1.20 2005/09/15 05:33:39 krw Exp $ */
+/* $OpenBSD: scsi_disk.h,v 1.21 2007/04/12 16:33:27 weingart Exp $ */
/* $NetBSD: scsi_disk.h,v 1.10 1996/07/05 16:19:05 christos Exp $ */
/*
@@ -174,6 +174,24 @@ struct scsi_rw_big {
u_int8_t control;
};
+struct scsi_rw_12 {
+ u_int8_t opcode;
+ u_int8_t byte2;
+ u_int8_t addr[4];
+ u_int8_t length[4];
+ u_int8_t reserved;
+ u_int8_t control;
+};
+
+struct scsi_rw_16 {
+ u_int8_t opcode;
+ u_int8_t byte2;
+ u_int8_t addr[8];
+ u_int8_t length[4];
+ u_int8_t reserved;
+ u_int8_t control;
+};
+
struct scsi_read_capacity {
u_int8_t opcode;
u_int8_t byte2;
@@ -182,6 +200,15 @@ struct scsi_read_capacity {
u_int8_t control;
};
+struct scsi_read_capacity_16 {
+ u_int8_t opcode;
+ u_int8_t byte2;
+ u_int8_t addr[8];
+ u_int8_t length[4];
+ u_int8_t reserved;
+ u_int8_t control;
+};
+
struct scsi_start_stop {
u_int8_t opcode;
u_int8_t byte2;
@@ -214,13 +241,18 @@ struct scsi_synchronize_cache {
/*
* Disk specific opcodes
*/
-#define REASSIGN_BLOCKS 0x07
-#define READ_COMMAND 0x08
+#define REASSIGN_BLOCKS 0x07
+#define READ_COMMAND 0x08
#define WRITE_COMMAND 0x0a
-#define READ_CAPACITY 0x25
-#define READ_BIG 0x28
+#define READ_CAPACITY 0x25
+#define READ_CAPACITY_16 0x9e
+#define READ_BIG 0x28
#define WRITE_BIG 0x2a
-#define SYNCHRONIZE_CACHE 0x35
+#define READ_12 0xa8
+#define WRITE_12 0xaa
+#define READ_16 0x88
+#define WRITE_16 0x8a
+#define SYNCHRONIZE_CACHE 0x35
struct scsi_read_cap_data {
@@ -228,6 +260,15 @@ struct scsi_read_cap_data {
u_int8_t length[4];
};
+struct scsi_read_cap_data_16 {
+ u_int8_t addr[8];
+ u_int8_t length[4];
+ u_int8_t p_type_prot;
+ u_int8_t logical_per_phys;
+ u_int8_t lowest_aligned[2];
+ u_int8_t reserved[16];
+};
+
struct scsi_reassign_blocks_data {
u_int8_t reserved[2];
u_int8_t length[2];