All of lore.kernel.org
 help / color / mirror / Atom feed
From: Scott Bauer <scott.bauer@intel.com>
To: linux-nvme@lists.infradead.org
Cc: keith.busch@intel.com, sagi@grimberg.me, hch@infradead.org,
	Rafael.Antognolli@intel.com, axboe@fb.com,
	linux-block@vger.kernel.org, Scott Bauer <scott.bauer@intel.com>,
	jonathan.derrick@intel.com, j.naumann@fu-berlin.de
Subject: [PATCH v2 1/4] include: Add definitions for sed
Date: Tue, 29 Nov 2016 14:51:59 -0700	[thread overview]
Message-ID: <1480456322-27339-2-git-send-email-scott.bauer@intel.com> (raw)
In-Reply-To: <1480456322-27339-1-git-send-email-scott.bauer@intel.com>

VGhpcyBwYXRjaCBhZGRzIHRoZSBkZWZpbml0aW9ucyBhbmQgc3RydWN0dXJlcyBmb3IgdGhlIFNF
RApPcGFsIGNvZGUuCgpTaWduZWQtb2ZmLWJ5OiBTY290dCBCYXVlciA8c2NvdHQuYmF1ZXJAaW50
ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBSYWZhZWwgQW50b2dub2xsaSA8UmFmYWVsLkFudG9nbm9s
bGlAaW50ZWwuY29tPgotLS0KIGluY2x1ZGUvbGludXgvc2VkLW9wYWwuaCAgICAgIHwgIDU3ICsr
KysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvbGludXgvc2VkLmggICAgICAgICAgIHwgIDg1
ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS91YXBpL2xpbnV4L3Nl
ZC1vcGFsLmggfCAxMDggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
CiBpbmNsdWRlL3VhcGkvbGludXgvc2VkLmggICAgICB8ICA2NCArKysrKysrKysrKysrKysrKysr
KysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDMxNCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAx
MDA2NDQgaW5jbHVkZS9saW51eC9zZWQtb3BhbC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVk
ZS9saW51eC9zZWQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvdWFwaS9saW51eC9zZWQt
b3BhbC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS91YXBpL2xpbnV4L3NlZC5oCgpkaWZm
IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZWQtb3BhbC5oIGIvaW5jbHVkZS9saW51eC9zZWQtb3Bh
bC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljNmQ4NDkKLS0tIC9kZXYv
bnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L3NlZC1vcGFsLmgKQEAgLTAsMCArMSw1NyBAQAorLyoK
KyAqIENvcHlyaWdodCDCqSAyMDE2IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0aG9yczoK
KyAqICAgIFJhZmFlbCBBbnRvZ25vbGxpIDxyYWZhZWwuYW50b2dub2xsaUBpbnRlbC5jb20+Cisg
KiAgICBTY290dCAgQmF1ZXIgICAgICA8c2NvdHQuYmF1ZXJAaW50ZWwuY29tPgorICoKKyAqIFRo
aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdO
VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorICogdmVyc2lvbiAyLCBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCisgKiBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO
VEFCSUxJVFkgb3IKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IKKyAqIG1vcmUgZGV0YWlscy4KKyAqLwor
CisjaWZuZGVmIExJTlVYX09QQUxfSAorI2RlZmluZSBMSU5VWF9PUEFMX0gKKworI2luY2x1ZGUg
PGxpbnV4L3NlZC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorCitzdHJ1Y3Qgb3BhbF9z
dXNwZW5kX3VubGsgeworCXZvaWQgKnN1Ym1pdF9kYXRhOworCWRldl90IGRldjsKKwlzZWRfc2Vj
X3N1Ym1pdCAqc3VibWl0X2ZuOworfTsKKworaW50IG9wYWxfc2F2ZShzdHJ1Y3QgYmxvY2tfZGV2
aWNlICpiZGV2LCBzdHJ1Y3Qgc2VkX2tleSAqa2V5LAorCSAgICAgIHZvaWQgKnNibXRfZGF0YSwg
c2VkX3NlY19zdWJtaXQgKnN1Ym1pdF9mbik7CitpbnQgb3BhbF9sb2NrX3VubG9jayhzdHJ1Y3Qg
YmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3Qgc2VkX2tleSAqa2V5LAorCQkgICAgIHZvaWQgKnNi
bXRfZGF0YSwgc2VkX3NlY19zdWJtaXQgKnN1Ym1pdF9mbik7CitpbnQgb3BhbF90YWtlX293bmVy
c2hpcChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3Qgc2VkX2tleSAqa2V5LAorCQkJ
dm9pZCAqc2JtdF9kYXRhLCBzZWRfc2VjX3N1Ym1pdCAqc3VibWl0X2ZuKTsKK2ludCBvcGFsX2Fj
dGl2YXRlX2xzcChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3Qgc2VkX2tleSAqa2V5
LAorCQkgICAgICB2b2lkICpzYm10X2RhdGEsIHNlZF9zZWNfc3VibWl0ICpzdWJtaXRfZm4pOwor
aW50IG9wYWxfc2V0X25ld19wdyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3Qgc2Vk
X2tleSAqa2V5LAorCQkgICAgdm9pZCAqc2JtdF9kYXRhLCBzZWRfc2VjX3N1Ym1pdCAqc3VibWl0
X2ZuKTsKK2ludCBvcGFsX2FjdGl2YXRlX3VzZXIoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwg
c3RydWN0IHNlZF9rZXkgKmtleSwKKwkJICAgICAgIHZvaWQgKnNibXRfZGF0YSwgc2VkX3NlY19z
dWJtaXQgKnN1Ym1pdF9mbik7CitpbnQgb3BhbF9yZXZlcnR0cGVyKHN0cnVjdCBibG9ja19kZXZp
Y2UgKmJkZXYsIHN0cnVjdCBzZWRfa2V5ICprZXksCisJCSAgICB2b2lkICpzYm10X2RhdGEsIHNl
ZF9zZWNfc3VibWl0ICpzdWJtaXRfZm4pOworaW50IG9wYWxfc2V0dXBfbG9ja2luZ19yYW5nZShz
dHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3Qgc2VkX2tleSAqa2V5LAorCQkJICAgICB2
b2lkICpzYm10X2RhdGEsIHNlZF9zZWNfc3VibWl0ICpzdWJtaXRfZm4pOworaW50IG9wYWxfYWRk
X3VzZXJfdG9fbHIoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgc3RydWN0IHNlZF9rZXkgKmtl
eSwKKwkJCXZvaWQgKnNibXRfZGF0YSwgc2VkX3NlY19zdWJtaXQgKnN1Ym1pdF9mbik7CitpbnQg
b3BhbF9lbmFibGVfZGlzYWJsZV9zaGFkb3dfbWJyKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYs
IHN0cnVjdCBzZWRfa2V5ICprZXksCisJCQkJICAgdm9pZCAqc2JtdF9kYXRhLCBzZWRfc2VjX3N1
Ym1pdCAqc3VibWl0X2ZuKTsKK2ludCBvcGFsX2VyYXNlX2xvY2tpbmdfcmFuZ2Uoc3RydWN0IGJs
b2NrX2RldmljZSAqYmRldiwgc3RydWN0IHNlZF9rZXkgKmtleSwKKwkJCSAgICAgdm9pZCAqc2Jt
dF9kYXRhLCBzZWRfc2VjX3N1Ym1pdCAqc3VibWl0X2ZuKTsKK2ludCBvcGFsX3NlY3VyZV9lcmFz
ZV9sb2NraW5nX3JhbmdlKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsCisJCQkJICAgIHN0cnVj
dCBzZWRfa2V5ICprZXksIHZvaWQgKnNibXRfZGF0YSwKKwkJCQkgICAgc2VkX3NlY19zdWJtaXQg
KnN1Ym1pdF9mbik7CitpbnQgb3BhbF91bmxvY2tfZnJvbV9zdXNwZW5kKHN0cnVjdCBvcGFsX3N1
c3BlbmRfdW5sayAqZGF0YSk7CisKKyNlbmRpZiAvKiBMSU5VWF9PUEFMX0ggKi8KZGlmZiAtLWdp
dCBhL2luY2x1ZGUvbGludXgvc2VkLmggYi9pbmNsdWRlL2xpbnV4L3NlZC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjM2I2OWIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNs
dWRlL2xpbnV4L3NlZC5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBTZWxmLUVuY3J5cHRpbmcg
RHJpdmUgaW50ZXJmYWNlIC0gc2VkLmgKKyAqCisgKiBDb3B5cmlnaHQgwqkgMjAxNiBJbnRlbCBD
b3Jwb3JhdGlvbgorICoKKyAqIEF1dGhvcnM6CisgKiAgICBSYWZhZWwgQW50b2dub2xsaSA8cmFm
YWVsLmFudG9nbm9sbGlAaW50ZWwuY29tPgorICogICAgU2NvdHQgIEJhdWVyICAgICAgPHNjb3R0
LmJhdWVyQGludGVsLmNvbT4KKyAqICAgIEpvbmF0aGFuIERlcnJpY2sgIDxqb25hdGhhbi5kZXJy
aWNrQGludGVsLmNvbT4KKyAqCisgKiBUaGlzIGNvZGUgaXMgdGhlIGdlbmVyaWMgbGF5ZXIgdG8g
aW50ZXJmYWNlIHdpdGggc2VsZi1lbmNyeXB0aW5nCisgKiBkcml2ZXMuIFNwZWNpZmljIGNvbW1h
bmQgc2V0cyBzaG91bGQgYWR2ZXJ0aXNlIHN1cHBvcnQgdG8gc2VkIHVhcGkKKyAqCisgKiBUaGlz
IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
IG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAqIHZlcnNpb24gMiwgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAorICogQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRB
QklMSVRZIG9yCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCisgKiBtb3JlIGRldGFpbHMuCisgKgorICov
CisKKyNpZm5kZWYgTElOVVhfU0VEX0gKKyNkZWZpbmUgTElOVVhfU0VEX0gKKworI2luY2x1ZGUg
PGxpbnV4L2Jsa2Rldi5oPgorI2luY2x1ZGUgPHVhcGkvbGludXgvc2VkLmg+CisKKworLyoKKyAq
IFRoZXNlIGNvbnN0YW50IHZhbHVlcyBjb21lIGZyb206CisgKiBUQ0cgU3RvcmFnZSBBcmNoaXRl
Y3R1cmUgQ29yZSBTcGVjIHYyLjAxIHIxCisgKiBTZWN0aW9uOiAzLjMgSW50ZXJmYWNlIENvbW11
bmljYXRpb25zCisgKi8KK2VudW0geworCVRDR19TRUNQXzAwID0gMCwKKwlUQ0dfU0VDUF8wMSwK
K307CisKKy8qCisgKiBzZWRfc2VjX3N1Ym1pdCAtIHRyYW5zcG9ydCBzcGVjaWZpYyBUcnVzdGVk
IFNlbmQvUmVjZWl2ZSBmdW5jdGlvbnMKKyAqIFNlZSBTUEMtNCBmb3Igc3BlY2lmaWMgZGVmaW5p
dGlvbnMKKyAqCisgKiBAc2VjX3NlY19zdWJtaXQ6IHNlbmRzIG9yIHJlY2lldmVzIHRoZSBwYXls
b2FkIHRvIHRoZSB0cnVzdGVkIHBlcmlwaGVyYWwKKyAqCVNQU1A6IFNlY3VyaXR5IFByb3RvY29s
IFNwZWNpZmljCisgKglTRUNQOiBTZWN1cml0eSBQcm90b2NvbAorICoJYnVmZmVyOiBQYXlsb2Fk
CisgKglsZW46IFBheWxvYWQgbGVuZ3RoCisgKiAgICAgIGJvb2w6IFdldGhlciB0byBzZW5kKHRy
dWUpIG9yIHRvIHJlY2lldmUoZmFsc2UpCisgKi8KKwordHlwZWRlZiBpbnQgKHNlZF9zZWNfc3Vi
bWl0KSh2b2lkICpkYXRhLCB1MTYgc3BzcCwgdTggc2VjcCwKKwkJCSAgICAgdm9pZCAqYnVmZmVy
LCBzaXplX3QgbGVuLCBib29sIHNlbmQpOworCitpbnQgc2VkX3NhdmUoc3RydWN0IGJsb2NrX2Rl
dmljZSAqYmRldiwgc3RydWN0IHNlZF9rZXkgKmtleSwKKyAgICAgICAgICAgICAgICAgdm9pZCAq
c2JtdF9kYXRhLCBzZWRfc2VjX3N1Ym1pdCAqc3VibWl0X2ZuKTsKK2ludCBzZWRfbG9ja191bmxv
Y2soc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgc3RydWN0IHNlZF9rZXkgKmtleSwKKyAgICAg
ICAgICAgICAgICAgdm9pZCAqc2JtdF9kYXRhLCBzZWRfc2VjX3N1Ym1pdCAqc3VibWl0X2ZuKTsK
K2ludCBzZWRfdGFrZV9vd25lcnNoaXAoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgc3RydWN0
IHNlZF9rZXkgKmtleSwKKyAgICAgICAgICAgICAgICAgdm9pZCAqc2JtdF9kYXRhLCBzZWRfc2Vj
X3N1Ym1pdCAqc3VibWl0X2ZuKTsKK2ludCBzZWRfYWN0aXZhdGVfbHNwKHN0cnVjdCBibG9ja19k
ZXZpY2UgKmJkZXYsIHN0cnVjdCBzZWRfa2V5ICprZXksCisgICAgICAgICAgICAgICAgIHZvaWQg
KnNibXRfZGF0YSwgc2VkX3NlY19zdWJtaXQgKnN1Ym1pdF9mbik7CitpbnQgc2VkX3NldF9wdyhz
dHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3Qgc2VkX2tleSAqa2V5LAorICAgICAgICAg
ICAgICAgICB2b2lkICpzYm10X2RhdGEsIHNlZF9zZWNfc3VibWl0ICpzdWJtaXRfZm4pOworaW50
IHNlZF9hY3RpdmF0ZV91c2VyKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHN0cnVjdCBzZWRf
a2V5ICprZXksCisgICAgICAgICAgICAgICAgIHZvaWQgKnNibXRfZGF0YSwgc2VkX3NlY19zdWJt
aXQgKnN1Ym1pdF9mbik7CitpbnQgc2VkX3JldmVydHRwZXIoc3RydWN0IGJsb2NrX2RldmljZSAq
YmRldiwgc3RydWN0IHNlZF9rZXkgKmtleSwKKyAgICAgICAgICAgICAgICAgdm9pZCAqc2JtdF9k
YXRhLCBzZWRfc2VjX3N1Ym1pdCAqc3VibWl0X2ZuKTsKK2ludCBzZWRfc2V0dXBfbG9ja2luZ19y
YW5nZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3Qgc2VkX2tleSAqa2V5LAorICAg
ICAgICAgICAgICAgICB2b2lkICpzYm10X2RhdGEsIHNlZF9zZWNfc3VibWl0ICpzdWJtaXRfZm4p
OworaW50IHNlZF9hZGR1c2VyX3RvX2xyKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHN0cnVj
dCBzZWRfa2V5ICprZXksCisgICAgICAgICAgICAgICAgIHZvaWQgKnNibXRfZGF0YSwgc2VkX3Nl
Y19zdWJtaXQgKnN1Ym1pdF9mbik7CitpbnQgc2VkX2RvX21icihzdHJ1Y3QgYmxvY2tfZGV2aWNl
ICpiZGV2LCBzdHJ1Y3Qgc2VkX2tleSAqa2V5LAorICAgICAgICAgICAgICAgICB2b2lkICpzYm10
X2RhdGEsIHNlZF9zZWNfc3VibWl0ICpzdWJtaXRfZm4pOworaW50IHNlZF9lcmFzZV9scihzdHJ1
Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzdHJ1Y3Qgc2VkX2tleSAqa2V5LAorICAgICAgICAgICAg
ICAgICB2b2lkICpzYm10X2RhdGEsIHNlZF9zZWNfc3VibWl0ICpzdWJtaXRfZm4pOworaW50IHNl
ZF9zZWN1cmVfZXJhc2VfbHIoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgc3RydWN0IHNlZF9r
ZXkgKmtleSwKKwkJCXZvaWQgKnNibXRfZGF0YSwgc2VkX3NlY19zdWJtaXQgKnN1Ym1pdF9mbik7
CitpbnQgYmxrZGV2X3NlZF9pb2N0bChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBmbW9kZV90
IGZtb2RlLCB1bnNpZ25lZCBpbnQgY21kLAorCQkgICAgIHVuc2lnbmVkIGxvbmcgYXJnLCB2b2lk
ICpzYm10X2N0cmxfZGF0YSwKKwkJICAgICBzZWRfc2VjX3N1Ym1pdCAqc3VibWl0X2ZuKTsKKwor
I2VuZGlmIC8qIExJTlVYX1NFRF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgv
c2VkLW9wYWwuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9zZWQtb3BhbC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0Njg5YTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRl
L3VhcGkvbGludXgvc2VkLW9wYWwuaApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdo
dCDCqSAyMDE2IEludGVsIENvcnBvcmF0aW9uCisgKgorICogQXV0aG9yczoKKyAqICAgIFJhZmFl
bCBBbnRvZ25vbGxpIDxyYWZhZWwuYW50b2dub2xsaUBpbnRlbC5jb20+CisgKiAgICBTY290dCAg
QmF1ZXIgICAgICA8c2NvdHQuYmF1ZXJAaW50ZWwuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0
CisgKiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlLAorICogdmVyc2lvbiAyLCBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCisgKiBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IK
KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IKKyAqIG1vcmUgZGV0YWlscy4KKyAqLworCisjaWZuZGVmIF9V
QVBJX09QQUxfSAorI2RlZmluZSBfVUFQSV9PUEFMX0gKKworI2luY2x1ZGUgPGxpbnV4L3R5cGVz
Lmg+CisKKyNkZWZpbmUgT1BBTF9LRVlfTUFYIDI1NgorCitlbnVtIG9wYWxfbWJyIHsKKwlPUEFM
X01CUl9FTkFCTEUsCisJT1BBTF9NQlJfRElTQUJMRSwKK307CisKK2VudW0gb3BhbF91c2VyIHsK
KwlPUEFMX0FETUlOMSwKKwlPUEFMX1VTRVIxLAorCU9QQUxfVVNFUjIsCisJT1BBTF9VU0VSMywK
KwlPUEFMX1VTRVI0LAorCU9QQUxfVVNFUjUsCisJT1BBTF9VU0VSNiwKKwlPUEFMX1VTRVI3LAor
CU9QQUxfVVNFUjgsCisJT1BBTF9VU0VSOSwKK307CisKK3N0cnVjdCBvcGFsX3VzZXJfaW5mbyB7
CisJYm9vbCBTVU07CisJZW51bSBvcGFsX3VzZXIgd2hvOworfTsKKworZW51bSBvcGFsX2tleV90
eXBlIHsKKwlPUEFMX0tFWV9QTEFJTiwKKwlPUEFMX0tFWV9LRVlSSU5HLAorfTsKKworZW51bSBv
cGFsX2xvY2tfc3RhdGUgeworCU9QQUxfUk8gPSAweDAxLCAvKiAwMDAxICovCisJT1BBTF9SVyA9
IDB4MDIsIC8qIDAwMTAgKi8KKwlPUEFMX0xLID0gMHgwNCwgLyogMDEwMCAqLworfTsKKworc3Ry
dWN0IG9wYWxfa2V5IHsKKwlfX3U4CWxyOworCV9fdTgJa2V5X3R5cGU7CisJX191OAlrZXlfbGVu
OworCV9fdTgJa2V5W09QQUxfS0VZX01BWF07Cit9OworCitzdHJ1Y3Qgb3BhbF9rZXlfYW5kX3Vz
ZXIgeworCXN0cnVjdCBvcGFsX3VzZXJfaW5mbyB3aG87CisJc3RydWN0IG9wYWxfa2V5IGtleTsK
K307CisKK3N0cnVjdCBvcGFsX3VzZXJfbHJfc2V0dXAgeworCXN0cnVjdCBvcGFsX3VzZXJfaW5m
byB3aG87CisJc3RydWN0IG9wYWxfa2V5IGtleTsKKwlzaXplX3QgcmFuZ2Vfc3RhcnQ7CisJc2l6
ZV90IHJhbmdlX2xlbmd0aDsKKwlpbnQgICAgUkxFOyAvKiBSZWFkIExvY2sgZW5hYmxlZCAqLwor
CWludCAgICBXTEU7IC8qIFdyaXRlIExvY2sgRW5hYmxlZCAqLworfTsKKworc3RydWN0IG9wYWxf
bG9ja191bmxvY2sgeworCXN0cnVjdCBvcGFsX3VzZXJfaW5mbyBhdXRob3JpdHk7CisJZW51bSBv
cGFsX2xvY2tfc3RhdGUgbF9zdGF0ZTsKKwlzdHJ1Y3Qgb3BhbF9rZXkga2V5OworfTsKKworc3Ry
dWN0IG9wYWxfbmV3X3B3IHsKKwlzdHJ1Y3Qgb3BhbF91c2VyX2luZm8gd2hvOworCisJLyogV2hl
biB3ZSdyZSBub3Qgb3BlcmF0aW5nIGluIFNVTSwgYW5kIHdlIGZpcnN0IHNldAorCSAqIHBhc3N3
b3JkcyB3ZSBuZWVkIHRvIHNldCB0aGVtIHZpYSBBRE1JTiBhdXRob3JpdHkuCisJICogQWZ0ZXIg
cGFzc3dvcmRzIGFyZSBjaGFuZ2VkLCB3ZSBjYW4gc2V0IHRoZW0gdmlhLAorCSAqIFVzZXIgYXV0
aG9yaXRpZXMuCisJICogQmVjYXVzZSBvZiB0aGlzIHJlc3RyaWN0aW9uIHdlIG5lZWQgdG8ga25v
dyBhYm91dAorCSAqIFR3byBkaWZmZXJlbnQgdXNlcnMuIE9uZSBpbiAnd2hvJyB3aGljaCB3ZSB3
aWxsIHVzZQorCSAqIHRvIHN0YXJ0IHRoZSBzZXNzaW9uIGFuZCB1c2VyX2Zvcl9wdyBhcyB0aGUg
dXNlciB3ZSdyZQorCSAqIGNoYW5pbmcgdGhlIHB3IGZvci4KKwkgKi8KKwllbnVtIG9wYWxfdXNl
ciB1c2VyX2Zvcl9wdzsKKwlzdHJ1Y3Qgb3BhbF9rZXkgY3VycmVudF9waW47CisJc3RydWN0IG9w
YWxfa2V5IG5ld19waW47Cit9OworCitzdHJ1Y3Qgb3BhbF9tYnJfZGF0YSB7CisJdTggZW5hYmxl
X2Rpc2FibGU7CisJc3RydWN0IG9wYWxfa2V5IGtleTsKK307CisKKyNlbmRpZiAvKiBfVUFQSV9T
RURfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3NlZC5oIGIvaW5jbHVkZS91
YXBpL2xpbnV4L3NlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5YWFj
ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL3VhcGkvbGludXgvc2VkLmgKQEAgLTAsMCAr
MSw2NCBAQAorLyoKKyAqIERlZmluaXRpb25zIGZvciB0aGUgc2VsZi1lbmNyeXB0aW5nIGRyaXZl
IGludGVyZmFjZQorICogQ29weXJpZ2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisg
KiBBdXRob3JzOgorICogICAgUmFmYWVsIEFudG9nbm9sbGkgPHJhZmFlbC5hbnRvZ25vbGxpQGlu
dGVsLmNvbT4KKyAqICAgIFNjb3R0ICBCYXVlciAgICAgIDxzY290dC5iYXVlckBpbnRlbC5jb20+
CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9u
cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgKiB2ZXJzaW9uIDIsIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJv
Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ
VEhPVVQKKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mIE1FUkNIQU5UQUJJTElUWSBvcgorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvcgorICogbW9yZSBkZXRh
aWxzLgorICovCisKKyNpZm5kZWYgX1VBUElfU0VEX0gKKyNkZWZpbmUgX1VBUElfU0VEX0gKKwor
I2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSAic2VkLW9wYWwuaCIKKworZW51bSBz
ZWRfa2V5X3R5cGUgeworCU9QQUwsCisJT1BBTF9QVywKKwlPUEFMX0FDVF9VU1IsCisJT1BBTF9M
Ul9TRVRVUCwKKwlPUEFMX0xPQ0tfVU5MT0NLLAorCU9QQUxfTUJSX0RBVEEsCit9OworCitzdHJ1
Y3Qgc2VkX2tleSB7CisJX191MzIgc2VkX3R5cGU7CisJdW5pb24geworCQlzdHJ1Y3Qgb3BhbF9r
ZXkgICAgICAgICAgICBvcGFsOworCQlzdHJ1Y3Qgb3BhbF9uZXdfcHcgICAgICAgICBvcGFsX3B3
OworCQlzdHJ1Y3Qgb3BhbF9rZXlfYW5kX3VzZXIgICBvcGFsX2FjdDsKKwkJc3RydWN0IG9wYWxf
dXNlcl9scl9zZXR1cCAgb3BhbF9scnM7CisJCXN0cnVjdCBvcGFsX2xvY2tfdW5sb2NrICAgIG9w
YWxfbGtfdW5sazsKKwkJc3RydWN0IG9wYWxfbWJyX2RhdGEgICAgICAgb3BhbF9tYnI7CisJCS8q
IGFkZGl0aW9uYWwgY29tbWFuZCBzZXQga2V5IHR5cGVzICovCisJfTsKK307CisKKyNkZWZpbmUg
SU9DX1NFRF9TQVZFCQkgICBfSU9XKCdwJywgMjIwLCBzdHJ1Y3Qgc2VkX2tleSkKKyNkZWZpbmUg
SU9DX1NFRF9MT0NLX1VOTE9DSwkgICBfSU9XKCdwJywgMjIxLCBzdHJ1Y3Qgc2VkX2tleSkKKyNk
ZWZpbmUgSU9DX1NFRF9UQUtFX09XTkVSU0hJUAkgICBfSU9XKCdwJywgMjIyLCBzdHJ1Y3Qgc2Vk
X2tleSkKKyNkZWZpbmUgSU9DX1NFRF9BQ1RJVkFURV9MU1AgICAgICAgX0lPVygncCcsIDIyMywg
c3RydWN0IHNlZF9rZXkpCisjZGVmaW5lIElPQ19TRURfU0VUX1BXICAgICAgICAgICAgIF9JT1co
J3AnLCAyMjQsIHN0cnVjdCBzZWRfa2V5KQorI2RlZmluZSBJT0NfU0VEX0FDVElWQVRFX1VTUiAg
ICAgICBfSU9XKCdwJywgMjI1LCBzdHJ1Y3Qgc2VkX2tleSkKKyNkZWZpbmUgSU9DX1NFRF9SRVZF
UlRfVFBSICAgICAgICAgX0lPVygncCcsIDIyNiwgc3RydWN0IHNlZF9rZXkpCisjZGVmaW5lIElP
Q19TRURfTFJfU0VUVVAgICAgICAgICAgIF9JT1coJ3AnLCAyMjcsIHN0cnVjdCBzZWRfa2V5KQor
I2RlZmluZSBJT0NfU0VEX0FERF9VU1JfVE9fTFIgICAgICBfSU9XKCdwJywgMjI4LCBzdHJ1Y3Qg
c2VkX2tleSkKKyNkZWZpbmUgSU9DX1NFRF9FTkFCTEVfRElTQUJMRV9NQlIgX0lPVygncCcsIDIy
OSwgc3RydWN0IHNlZF9rZXkpCisjZGVmaW5lIElPQ19TRURfRVJBU0VfTFIgICAgICAgICAgIF9J
T1coJ3AnLCAyMzAsIHN0cnVjdCBzZWRfa2V5KQorI2RlZmluZSBJT0NfU0VEX1NFQ1VSRV9FUkFT
RV9MUiAgICBfSU9XKCdwJywgMjMxLCBzdHJ1Y3Qgc2VkX2tleSkKKworc3RhdGljIGlubGluZSBp
bnQgaXNfc2VkX2lvY3RsKHVuc2lnbmVkIGludCBjbWQpCit7CisJcmV0dXJuIChjbWQgPj0gSU9D
X1NFRF9TQVZFICYmIGNtZCA8PSBJT0NfU0VEX1NFQ1VSRV9FUkFTRV9MUik7Cit9CisjZW5kaWYg
LyogX1VBUElfU0VEX0ggKi8KLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KTGludXgtbnZtZSBtYWlsaW5nIGxpc3QKTGludXgtbnZtZUBs
aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz
dGluZm8vbGludXgtbnZtZQo=

WARNING: multiple messages have this Message-ID (diff)
From: scott.bauer@intel.com (Scott Bauer)
Subject: [PATCH v2 1/4] include: Add definitions for sed
Date: Tue, 29 Nov 2016 14:51:59 -0700	[thread overview]
Message-ID: <1480456322-27339-2-git-send-email-scott.bauer@intel.com> (raw)
In-Reply-To: <1480456322-27339-1-git-send-email-scott.bauer@intel.com>

This patch adds the definitions and structures for the SED
Opal code.

Signed-off-by: Scott Bauer <scott.bauer at intel.com>
Signed-off-by: Rafael Antognolli <Rafael.Antognolli at intel.com>
---
 include/linux/sed-opal.h      |  57 ++++++++++++++++++++++
 include/linux/sed.h           |  85 +++++++++++++++++++++++++++++++++
 include/uapi/linux/sed-opal.h | 108 ++++++++++++++++++++++++++++++++++++++++++
 include/uapi/linux/sed.h      |  64 +++++++++++++++++++++++++
 4 files changed, 314 insertions(+)
 create mode 100644 include/linux/sed-opal.h
 create mode 100644 include/linux/sed.h
 create mode 100644 include/uapi/linux/sed-opal.h
 create mode 100644 include/uapi/linux/sed.h

diff --git a/include/linux/sed-opal.h b/include/linux/sed-opal.h
new file mode 100644
index 0000000..9c6d849
--- /dev/null
+++ b/include/linux/sed-opal.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright ? 2016 Intel Corporation
+ *
+ * Authors:
+ *    Rafael Antognolli <rafael.antognolli at intel.com>
+ *    Scott  Bauer      <scott.bauer at intel.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ */
+
+#ifndef LINUX_OPAL_H
+#define LINUX_OPAL_H
+
+#include <linux/sed.h>
+#include <linux/kernel.h>
+
+struct opal_suspend_unlk {
+	void *submit_data;
+	dev_t dev;
+	sed_sec_submit *submit_fn;
+};
+
+int opal_save(struct block_device *bdev, struct sed_key *key,
+	      void *sbmt_data, sed_sec_submit *submit_fn);
+int opal_lock_unlock(struct block_device *bdev, struct sed_key *key,
+		     void *sbmt_data, sed_sec_submit *submit_fn);
+int opal_take_ownership(struct block_device *bdev, struct sed_key *key,
+			void *sbmt_data, sed_sec_submit *submit_fn);
+int opal_activate_lsp(struct block_device *bdev, struct sed_key *key,
+		      void *sbmt_data, sed_sec_submit *submit_fn);
+int opal_set_new_pw(struct block_device *bdev, struct sed_key *key,
+		    void *sbmt_data, sed_sec_submit *submit_fn);
+int opal_activate_user(struct block_device *bdev, struct sed_key *key,
+		       void *sbmt_data, sed_sec_submit *submit_fn);
+int opal_reverttper(struct block_device *bdev, struct sed_key *key,
+		    void *sbmt_data, sed_sec_submit *submit_fn);
+int opal_setup_locking_range(struct block_device *bdev, struct sed_key *key,
+			     void *sbmt_data, sed_sec_submit *submit_fn);
+int opal_add_user_to_lr(struct block_device *bdev, struct sed_key *key,
+			void *sbmt_data, sed_sec_submit *submit_fn);
+int opal_enable_disable_shadow_mbr(struct block_device *bdev, struct sed_key *key,
+				   void *sbmt_data, sed_sec_submit *submit_fn);
+int opal_erase_locking_range(struct block_device *bdev, struct sed_key *key,
+			     void *sbmt_data, sed_sec_submit *submit_fn);
+int opal_secure_erase_locking_range(struct block_device *bdev,
+				    struct sed_key *key, void *sbmt_data,
+				    sed_sec_submit *submit_fn);
+int opal_unlock_from_suspend(struct opal_suspend_unlk *data);
+
+#endif /* LINUX_OPAL_H */
diff --git a/include/linux/sed.h b/include/linux/sed.h
new file mode 100644
index 0000000..7c3b69b
--- /dev/null
+++ b/include/linux/sed.h
@@ -0,0 +1,85 @@
+/*
+ * Self-Encrypting Drive interface - sed.h
+ *
+ * Copyright ? 2016 Intel Corporation
+ *
+ * Authors:
+ *    Rafael Antognolli <rafael.antognolli at intel.com>
+ *    Scott  Bauer      <scott.bauer at intel.com>
+ *    Jonathan Derrick  <jonathan.derrick at intel.com>
+ *
+ * This code is the generic layer to interface with self-encrypting
+ * drives. Specific command sets should advertise support to sed uapi
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ */
+
+#ifndef LINUX_SED_H
+#define LINUX_SED_H
+
+#include <linux/blkdev.h>
+#include <uapi/linux/sed.h>
+
+
+/*
+ * These constant values come from:
+ * TCG Storage Architecture Core Spec v2.01 r1
+ * Section: 3.3 Interface Communications
+ */
+enum {
+	TCG_SECP_00 = 0,
+	TCG_SECP_01,
+};
+
+/*
+ * sed_sec_submit - transport specific Trusted Send/Receive functions
+ * See SPC-4 for specific definitions
+ *
+ * @sec_sec_submit: sends or recieves the payload to the trusted peripheral
+ *	SPSP: Security Protocol Specific
+ *	SECP: Security Protocol
+ *	buffer: Payload
+ *	len: Payload length
+ *      bool: Wether to send(true) or to recieve(false)
+ */
+
+typedef int (sed_sec_submit)(void *data, u16 spsp, u8 secp,
+			     void *buffer, size_t len, bool send);
+
+int sed_save(struct block_device *bdev, struct sed_key *key,
+                 void *sbmt_data, sed_sec_submit *submit_fn);
+int sed_lock_unlock(struct block_device *bdev, struct sed_key *key,
+                 void *sbmt_data, sed_sec_submit *submit_fn);
+int sed_take_ownership(struct block_device *bdev, struct sed_key *key,
+                 void *sbmt_data, sed_sec_submit *submit_fn);
+int sed_activate_lsp(struct block_device *bdev, struct sed_key *key,
+                 void *sbmt_data, sed_sec_submit *submit_fn);
+int sed_set_pw(struct block_device *bdev, struct sed_key *key,
+                 void *sbmt_data, sed_sec_submit *submit_fn);
+int sed_activate_user(struct block_device *bdev, struct sed_key *key,
+                 void *sbmt_data, sed_sec_submit *submit_fn);
+int sed_reverttper(struct block_device *bdev, struct sed_key *key,
+                 void *sbmt_data, sed_sec_submit *submit_fn);
+int sed_setup_locking_range(struct block_device *bdev, struct sed_key *key,
+                 void *sbmt_data, sed_sec_submit *submit_fn);
+int sed_adduser_to_lr(struct block_device *bdev, struct sed_key *key,
+                 void *sbmt_data, sed_sec_submit *submit_fn);
+int sed_do_mbr(struct block_device *bdev, struct sed_key *key,
+                 void *sbmt_data, sed_sec_submit *submit_fn);
+int sed_erase_lr(struct block_device *bdev, struct sed_key *key,
+                 void *sbmt_data, sed_sec_submit *submit_fn);
+int sed_secure_erase_lr(struct block_device *bdev, struct sed_key *key,
+			void *sbmt_data, sed_sec_submit *submit_fn);
+int blkdev_sed_ioctl(struct block_device *bdev, fmode_t fmode, unsigned int cmd,
+		     unsigned long arg, void *sbmt_ctrl_data,
+		     sed_sec_submit *submit_fn);
+
+#endif /* LINUX_SED_H */
diff --git a/include/uapi/linux/sed-opal.h b/include/uapi/linux/sed-opal.h
new file mode 100644
index 0000000..34689a9
--- /dev/null
+++ b/include/uapi/linux/sed-opal.h
@@ -0,0 +1,108 @@
+/*
+ * Copyright ? 2016 Intel Corporation
+ *
+ * Authors:
+ *    Rafael Antognolli <rafael.antognolli at intel.com>
+ *    Scott  Bauer      <scott.bauer at intel.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ */
+
+#ifndef _UAPI_OPAL_H
+#define _UAPI_OPAL_H
+
+#include <linux/types.h>
+
+#define OPAL_KEY_MAX 256
+
+enum opal_mbr {
+	OPAL_MBR_ENABLE,
+	OPAL_MBR_DISABLE,
+};
+
+enum opal_user {
+	OPAL_ADMIN1,
+	OPAL_USER1,
+	OPAL_USER2,
+	OPAL_USER3,
+	OPAL_USER4,
+	OPAL_USER5,
+	OPAL_USER6,
+	OPAL_USER7,
+	OPAL_USER8,
+	OPAL_USER9,
+};
+
+struct opal_user_info {
+	bool SUM;
+	enum opal_user who;
+};
+
+enum opal_key_type {
+	OPAL_KEY_PLAIN,
+	OPAL_KEY_KEYRING,
+};
+
+enum opal_lock_state {
+	OPAL_RO = 0x01, /* 0001 */
+	OPAL_RW = 0x02, /* 0010 */
+	OPAL_LK = 0x04, /* 0100 */
+};
+
+struct opal_key {
+	__u8	lr;
+	__u8	key_type;
+	__u8	key_len;
+	__u8	key[OPAL_KEY_MAX];
+};
+
+struct opal_key_and_user {
+	struct opal_user_info who;
+	struct opal_key key;
+};
+
+struct opal_user_lr_setup {
+	struct opal_user_info who;
+	struct opal_key key;
+	size_t range_start;
+	size_t range_length;
+	int    RLE; /* Read Lock enabled */
+	int    WLE; /* Write Lock Enabled */
+};
+
+struct opal_lock_unlock {
+	struct opal_user_info authority;
+	enum opal_lock_state l_state;
+	struct opal_key key;
+};
+
+struct opal_new_pw {
+	struct opal_user_info who;
+
+	/* When we're not operating in SUM, and we first set
+	 * passwords we need to set them via ADMIN authority.
+	 * After passwords are changed, we can set them via,
+	 * User authorities.
+	 * Because of this restriction we need to know about
+	 * Two different users. One in 'who' which we will use
+	 * to start the session and user_for_pw as the user we're
+	 * chaning the pw for.
+	 */
+	enum opal_user user_for_pw;
+	struct opal_key current_pin;
+	struct opal_key new_pin;
+};
+
+struct opal_mbr_data {
+	u8 enable_disable;
+	struct opal_key key;
+};
+
+#endif /* _UAPI_SED_H */
diff --git a/include/uapi/linux/sed.h b/include/uapi/linux/sed.h
new file mode 100644
index 0000000..a9aacd1
--- /dev/null
+++ b/include/uapi/linux/sed.h
@@ -0,0 +1,64 @@
+/*
+ * Definitions for the self-encrypting drive interface
+ * Copyright ? 2016 Intel Corporation
+ *
+ * Authors:
+ *    Rafael Antognolli <rafael.antognolli at intel.com>
+ *    Scott  Bauer      <scott.bauer at intel.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ */
+
+#ifndef _UAPI_SED_H
+#define _UAPI_SED_H
+
+#include <linux/types.h>
+#include "sed-opal.h"
+
+enum sed_key_type {
+	OPAL,
+	OPAL_PW,
+	OPAL_ACT_USR,
+	OPAL_LR_SETUP,
+	OPAL_LOCK_UNLOCK,
+	OPAL_MBR_DATA,
+};
+
+struct sed_key {
+	__u32 sed_type;
+	union {
+		struct opal_key            opal;
+		struct opal_new_pw         opal_pw;
+		struct opal_key_and_user   opal_act;
+		struct opal_user_lr_setup  opal_lrs;
+		struct opal_lock_unlock    opal_lk_unlk;
+		struct opal_mbr_data       opal_mbr;
+		/* additional command set key types */
+	};
+};
+
+#define IOC_SED_SAVE		   _IOW('p', 220, struct sed_key)
+#define IOC_SED_LOCK_UNLOCK	   _IOW('p', 221, struct sed_key)
+#define IOC_SED_TAKE_OWNERSHIP	   _IOW('p', 222, struct sed_key)
+#define IOC_SED_ACTIVATE_LSP       _IOW('p', 223, struct sed_key)
+#define IOC_SED_SET_PW             _IOW('p', 224, struct sed_key)
+#define IOC_SED_ACTIVATE_USR       _IOW('p', 225, struct sed_key)
+#define IOC_SED_REVERT_TPR         _IOW('p', 226, struct sed_key)
+#define IOC_SED_LR_SETUP           _IOW('p', 227, struct sed_key)
+#define IOC_SED_ADD_USR_TO_LR      _IOW('p', 228, struct sed_key)
+#define IOC_SED_ENABLE_DISABLE_MBR _IOW('p', 229, struct sed_key)
+#define IOC_SED_ERASE_LR           _IOW('p', 230, struct sed_key)
+#define IOC_SED_SECURE_ERASE_LR    _IOW('p', 231, struct sed_key)
+
+static inline int is_sed_ioctl(unsigned int cmd)
+{
+	return (cmd >= IOC_SED_SAVE && cmd <= IOC_SED_SECURE_ERASE_LR);
+}
+#endif /* _UAPI_SED_H */
-- 
2.7.4

  reply	other threads:[~2016-11-29 21:51 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-29 21:51 [PATCH v2 0/4] SED OPAL Library Scott Bauer
2016-11-29 21:51 ` Scott Bauer
2016-11-29 21:51 ` Scott Bauer [this message]
2016-11-29 21:51   ` [PATCH v2 1/4] include: Add definitions for sed Scott Bauer
2016-11-29 21:52 ` [PATCH v2 2/4] block: Add Sed-opal library Scott Bauer
2016-11-29 21:52   ` Scott Bauer
2016-11-30 18:13   ` Keith Busch
2016-11-30 18:13     ` Keith Busch
2016-11-30 18:09     ` Scott Bauer
2016-11-30 18:09       ` Scott Bauer
2016-12-01  0:50   ` Keith Busch
2016-12-01  0:50     ` Keith Busch
2016-12-01 10:04     ` Christoph Hellwig
2016-12-01 10:04       ` Christoph Hellwig
2016-12-01 17:53       ` Scott Bauer
2016-12-01 17:53         ` Scott Bauer
2016-12-01 18:22         ` Keith Busch
2016-12-01 18:22           ` Keith Busch
2016-12-09 17:45           ` Scott Bauer
2016-12-09 17:45             ` Scott Bauer
2016-12-09 18:30             ` Christoph Hellwig
2016-12-09 18:30               ` Christoph Hellwig
2016-12-09 18:50               ` Scott Bauer
2016-12-09 18:50                 ` Scott Bauer
2016-11-29 21:52 ` [PATCH v2 3/4] nvme: Implement resume_from_suspend and sed block ioctl Scott Bauer
2016-11-29 21:52   ` Scott Bauer
2016-12-01  0:50   ` Keith Busch
2016-12-01  0:50     ` Keith Busch
2016-11-29 21:52 ` [PATCH v2 4/4] Maintainers: Add Information for SED Opal library Scott Bauer
2016-11-29 21:52   ` Scott Bauer
2017-02-10 16:46   ` Elliott, Robert (Persistent Memory)
2017-02-10 16:44     ` Scott Bauer
2017-02-11  2:24       ` Elliott, Robert (Persistent Memory)
2017-02-13  8:04       ` hch

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1480456322-27339-2-git-send-email-scott.bauer@intel.com \
    --to=scott.bauer@intel.com \
    --cc=Rafael.Antognolli@intel.com \
    --cc=axboe@fb.com \
    --cc=hch@infradead.org \
    --cc=j.naumann@fu-berlin.de \
    --cc=jonathan.derrick@intel.com \
    --cc=keith.busch@intel.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=sagi@grimberg.me \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.