summaryrefslogtreecommitdiffstats
path: root/block/opal_proto.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-02-17 13:59:39 +0100
committerJens Axboe <axboe@fb.com>2017-02-17 12:41:47 -0700
commit4f1244c8298606b8fae64b4d78b820ae6b896e3c (patch)
tree81fbf9080d730ca328572847be75fa4e05e4268e /block/opal_proto.h
parentf5b37b7c23915af93081a8711e0a0f0219063756 (diff)
downloadlinux-0-day-4f1244c8298606b8fae64b4d78b820ae6b896e3c.tar.gz
linux-0-day-4f1244c8298606b8fae64b4d78b820ae6b896e3c.tar.xz
block/sed-opal: allocate struct opal_dev dynamically
Insted of bloating the containing structure with it all the time this allocates struct opal_dev dynamically. Additionally this allows moving the definition of struct opal_dev into sed-opal.c. For this a new private data field is added to it that is passed to the send/receive callback. After that a lot of internals can be made private as well. Signed-off-by: Christoph Hellwig <hch@lst.de> Tested-by: Scott Bauer <scott.bauer@intel.com> Reviewed-by: Scott Bauer <scott.bauer@intel.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/opal_proto.h')
-rw-r--r--block/opal_proto.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/block/opal_proto.h b/block/opal_proto.h
index af9abc56c1575..f40c9acf88955 100644
--- a/block/opal_proto.h
+++ b/block/opal_proto.h
@@ -19,6 +19,29 @@
#ifndef _OPAL_PROTO_H
#define _OPAL_PROTO_H
+/*
+ * These constant values come from:
+ * SPC-4 section
+ * 6.30 SECURITY PROTOCOL IN command / table 265.
+ */
+enum {
+ TCG_SECP_00 = 0,
+ TCG_SECP_01,
+};
+
+/*
+ * Token defs derived from:
+ * TCG_Storage_Architecture_Core_Spec_v2.01_r1.00
+ * 3.2.2 Data Stream Encoding
+ */
+enum opal_response_token {
+ OPAL_DTA_TOKENID_BYTESTRING = 0xe0,
+ OPAL_DTA_TOKENID_SINT = 0xe1,
+ OPAL_DTA_TOKENID_UINT = 0xe2,
+ OPAL_DTA_TOKENID_TOKEN = 0xe3, /* actual token is returned */
+ OPAL_DTA_TOKENID_INVALID = 0X0
+};
+
#define DTAERROR_NO_METHOD_STATUS 0x89
#define GENERIC_HOST_SESSION_NUM 0x41