From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 2/7] docs: Improve documentation and parsing for iommu= Date: Wed, 16 Jan 2019 09:00:45 +0000 Message-ID: <1547629250-1405-3-git-send-email-andrew.cooper3@citrix.com> References: <1547629250-1405-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1547629250-1405-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Juergen Gross , Stefano Stabellini , Wei Liu , Andrew Cooper , Julien Grall , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VXBkYXRlIHBhcnNlX2lvbW11X3BhcmFtKCkgdG8gdW5pZm9ybWx5IHVzZSBwYXJzZV9ib29sZWFu KCksIHNvIHRoZSBzdWIKYm9vbGVhbnMgYmVoYXZlIGxpa2Ugb3RoZXIgWGVuIGJvb2xlYW4gb3B0 aW9ucy4gIFJlcG9zaXRpb24gdGhlCmN1c3RvbV9wYXJhbSgpIHRvIGF2b2lkIGEgZm9yd2FyZCBk ZWNsYXJhdGlvbiBvZiBwYXJzZV9pb21tdV9wYXJhbSgpLgoKUmV3cml0ZSB0aGUgY29tbWFuZCBs aW5lIGRvY3VtZW50YXRpb24gYWxtb3N0IGZyb20gc2NyYXRjaCwgaW5jbHVkaW5nCmZhciBtb3Jl IGRldGFpbC4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNp dHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgpDQzogV2Vp IExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBh dUBjaXRyaXguY29tPgpDQzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwu b3JnPgpDQzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ0M6IEp1ZXJnZW4g R3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KCnYzOgogKiBOZXcKLS0tCiBkb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5wYW5kb2MgfCAxNTMgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgICB8ICA2MyArKysrKy0tLS0t LS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDExNyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5wYW5kb2MgYi9kb2Nz L21pc2MveGVuLWNvbW1hbmQtbGluZS5wYW5kb2MKaW5kZXggMjQzMTkzZC4uYWI0ODZlMCAxMDA2 NDQKLS0tIGEvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUucGFuZG9jCisrKyBiL2RvY3MvbWlz Yy94ZW4tY29tbWFuZC1saW5lLnBhbmRvYwpAQCAtMTE0NiwxMDQgKzExNDYsMTEzIEBAIGRldGVj dGlvbiBvZiBzeXN0ZW1zIGtub3duIHRvIG1pc2JlaGF2ZSB1cG9uIGFjY2Vzc2VzIHRvIHRoYXQg cG9ydC4KID4gRGVmYXVsdDogYG5ld2AgdW5sZXNzIGRpcmVjdGVkLUVPSSBpcyBzdXBwb3J0ZWQK IAogIyMjIGlvbW11Ci0+IGA9IExpc3Qgb2YgWyA8Ym9vbGVhbj4gfCBmb3JjZSB8IHJlcXVpcmVk IHwgaW50cmVtYXAgfCBpbnRwb3N0IHwgcWludmFsIHwgc25vb3AgfCBzaGFyZXB0IHwgZG9tMC1w YXNzdGhyb3VnaCB8IGRvbTAtc3RyaWN0IHwgYW1kLWlvbW11LXBlcmRldi1pbnRyZW1hcCB8IHdv cmthcm91bmRfYmlvc19idWcgfCBpZ2Z4IHwgdmVyYm9zZSB8IGRlYnVnIF1gCisgICAgPSBMaXN0 IG9mIFsgPGJvb2w+LCB2ZXJib3NlLCBkZWJ1ZywgZm9yY2UsIHJlcXVpcmVkLAorICAgICAgICAg ICAgICAgIHNoYXJlcHQsIGludHJlbWFwLCBpbnRwb3N0LAorICAgICAgICAgICAgICAgIHNub29w LCBxaW52YWwsIGlnZngsIHdvcmthcm91bmRfYmlvc19idWcsCisgICAgICAgICAgICAgICAgYW1k LWlvbW11LXBlcmRldi1pbnRyZW1hcCwKKyAgICAgICAgICAgICAgICBkb20wLXtwYXNzdGhyb3Vn aCxzdHJpY3R9IF0KIAotPiBTdWItb3B0aW9uczoKKyAgICBBbGwgc3ViLW9wdGlvbnMgYXJlIGJv b2xlYW4gaW4gbmF0dXJlLgogCi0+IGA8Ym9vbGVhbj5gCitJL08gTWVtb3J5IE1lbW9yeSBVbml0 cyBwZXJmb3JtIGEgZnVuY3Rpb24gc2ltaWxhciB0byB0aGUgQ1BVIE1NVSAoaGVuY2UgdGhlCitu YW1lKSwgYnV0IHR5cGljYWxseSBleGlzdCBhcyBhIGRpc2NyZXRlIGRldmljZSwgaW50ZWdyYXRl ZCBhcyBwYXJ0IG9mIGEgUENJCitSb290IENvbXBsZXguICBUaGUgbW9zdCBjb21tb24gY29uZmln dXJhdGlvbiBpcyB0byBoYXZlIG9uZSBJT01NVSBwZXIgcGFja2FnZQorKGZvciBvbi1kaWUgUENJ ZSBkZXZpY2VzIGFuZCBkaXJlY3RseSBhdHRhY2hlZCBQQ0llIGxhbmVzKSwgYW5kIG9uZSBJT01N VQorY292ZXJpbmcgdGhlIHJlbWFpbmluZyBJL08gaW4gdGhlIHN5c3RlbS4KIAotPiBEZWZhdWx0 OiBgb25gCi0KLT4+IENvbnRyb2wgdGhlIHVzZSBvZiBJT01NVShzKSBpbiB0aGUgc3lzdGVtLgot Ci0+IEFsbCBvdGhlciBzdWItb3B0aW9ucyBhcmUgb2YgYm9vbGVhbiBraW5kIGFuZCBjYW4gYmUg cHJlZml4ZWQgd2l0aCBgbm8tYCB0bwotPiBlZmZlY3QgdGhlIGludmVyc2UgbWVhbmluZy4KLQot PiBgZm9yY2VgIG9yIGByZXF1aXJlZGAKK1RoZSBmdW5jdGlvbmFsaXR5IGluIGFuIElPTU1VIGNv bW1vbmx5IGZhbGxzIGludG8gdHdvIG9ydGhvZ29uYWwgY2F0ZWdvcmllczoKIAotPiBEZWZhdWx0 OiBgZmFsc2VgCi0KLT4+IERvbid0IGNvbnRpbnVlIGJvb3RpbmcgdW5sZXNzIElPTU1VIHN1cHBv cnQgaXMgZm91bmQgYW5kIGNhbiBiZSBpbml0aWFsaXplZAotPj4gc3VjY2Vzc2Z1bGx5LgorMS4g IERNQSByZW1hcHBpbmcgd2hpY2ggdXNlcyBhIHBhZ2V0YWJsZS1saWtlIGhpZXJhcmNoaWNhbCBz dHJ1Y3R1cmUgYW5kIG1hcHMKKyAgICBJL08gVmlydHVhbCBBZGRyZXNzZXMgKERGTnMgLSBEZXZp Y2UgRnJhbWUgTnVtYmVycyBpbiBYZW4ncyB0ZXJtaW5vbG9neSkKKyAgICB0byBTeXN0ZW0gUGh5 c2ljYWwgQWRkcmVzc2VzIChNRk5zIC0gTWFjaGluZSBGcmFtZSBOdW1iZXJzIGluIFhlbidzCisg ICAgdGVybWlub2xvZ3kpLgogCi0+IGBpbnRyZW1hcGAKKzIuICBJbnRlcnJ1cHQgUmVtYXBwaW5n LCB3aGljaCBjb250cm9scyBpbmNvbWluZyBNZXNzYWdlIFNpZ25hbGxlZCBJbnRlcnJ1cHQKKyAg ICByZXF1ZXN0cywgaW5jbHVkaW5nIHRoZWlyIHJvdXRpbmcgdG8gc3BlY2lmaWMgQ1BVcy4KIAot PiBEZWZhdWx0OiBgdHJ1ZWAKK0lPTU1VIGZ1bmN0aW9uYWxpdHkgY2FuIGJlIHVzZWQgZWl0aGVy IHRvIHByb3ZpZGUgYSB0cmFuc2xhdGlvbiB3aGljaCB0aGUKK2hhcmR3YXJlIGRldmljZSBkcml2 ZXIgaXNuJ3QgYXdhcmUgb2YgKGUuZy4gUENJIFBhc3N0aHJvdWdoIGFuZCBhIG5hdGl2ZQorZHJp dmVyIGluc2lkZSB0aGUgZ3Vlc3QpIG9yIHRvIGVuZm9yY2UgZmluZS1ncmFpbmVkIGNvbnRyb2wg b3ZlciB0aGUgbWVtb3J5CithbmQgaW50ZXJydXB0cyB3aGljaCBhIGRldmljZSBpcyBhdHRlbXB0 aW5nIHRvIGFjY2Vzcy4KIAotPj4gQ29udHJvbCB0aGUgdXNlIG9mIGludGVycnVwdCByZW1hcHBp bmcgKERNQSByZW1hcHBpbmcgd2lsbCBhbHdheXMgYmUgZW5hYmxlZAotPj4gaWYgSU9NTVUgZnVu Y3Rpb25hbGl0eSBpcyBlbmFibGVkKS4KK0J5IGRlZmF1bHQsIElPTU1VcyBhcmUgY29uZmlndXJl ZCBmb3IgdXNlIGlmIHRoZXkgYXJlIGF2YWlsYWJsZS4gIEFuIG92ZXJhbGwKK2Jvb2xlYW4gKGUu Zy4gYGlvbW11PW5vYCkgY2FuIG92ZXJyaWRlIHRoaXMgYW5kIGxlYXZlIHRoZSBJT01NVXMgZGlz YWJsZWQuCiAKLT4gYGludHBvc3RgCisqICAgVGhlIGB2ZXJib3NlYCBhbmQgYGRlYnVnYCBib29s ZWFucyBjYW4gYmUgdXNlZCB0byBwcmludCBhZGRpdGlvbmFsCisgICAgZGlhZ25vc3RpYyBpbmZv cm1hdGlvbi4gIE5laXRoZXIgYXJlIGFjdGl2ZSBieSBkZWZhdWx0LgogCi0+IERlZmF1bHQ6IGBm YWxzZWAKKyogICBUaGUgYGZvcmNlYCBhbmQgYHJlcXVpcmVkYCBib29sZWFucyBhcmUgc3lub255 bW91cyBhbmQsIHdoZW4gcmVxdWVzdGVkLCB3aWxsCisgICAgcHJldmVudCBYZW4gZnJvbSBib290 aW5nIGlmIElPTU1VcyBhcmVuJ3QgZGlzY292ZXJlZCBhbmQgZW5hYmxlZAorICAgIHN1Y2Nlc3Nm dWxseS4KIAotPj4gQ29udHJvbCB0aGUgdXNlIG9mIGludGVycnVwdCBwb3N0aW5nLCB3aGljaCBk ZXBlbmRzIG9uIHRoZSBhdmFpbGFiaWxpdHkgb2YKLT4+IGludGVycnVwdCByZW1hcHBpbmcuCi0K LT4gYHFpbnZhbGAgKFZULWQpCi0KLT4gRGVmYXVsdDogYHRydWVgCi0KLT4+IENvbnRyb2wgdGhl IHVzZSBvZiBRdWV1ZWQgSW52YWxpZGF0aW9uLgotCi0+IGBzbm9vcGAgKEludGVsKQotCi0+IERl ZmF1bHQ6IGB0cnVlYAorKiAgIFRoZSBgc2hhcmVwdGAgYm9vbGVhbiBjb250cm9scyB3aGV0aGVy IHRoZSBJT01NVSBwYWdldGFibGVzIGFyZSBzaGFyZWQgd2l0aAorICAgIHRoZSBDUFUtc2lkZSBI QVAgcGFnZXRhYmxlcywgb3IgYWxsb2NhdGVkIHNlcGFyYXRlbHkuICBTaGFyaW5nIHJlZHVjZXMg dGhlCisgICAgbWVtb3J5IG92ZXJoZWFkLCBidXQgZG9lc24ndCB3b3JrIGluIGNvbWJpbmF0aW9u IHdpdGggQ1BVLXNpZGUKKyAgICBwYWdlZmF1bHQtYmFzZWQgZmVhdHVyZXMsIGUuZy4gZGlydHkg VlJBTSB0cmFja2luZyB3aGVuIGEgUENJIGRldmljZSBpcworICAgIGFzc2lnbmVkLgogCi0+PiBD b250cm9sIHRoZSB1c2Ugb2YgU25vb3AgQ29udHJvbC4KLQotPiBgc2hhcmVwdGAKLQotPiBEZWZh dWx0OiBgdHJ1ZWAKLQotPj4gQ29udHJvbCB3aGV0aGVyIENQVSBhbmQgSU9NTVUgcGFnZSB0YWJs ZXMgc2hvdWxkIGJlIHNoYXJlZC4KLQotPiBgZG9tMC1wYXNzdGhyb3VnaGAKLQotPiAqKldBUk5J Tkc6IFRoaXMgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBkZXByZWNhdGVkLCBhbmQgc3VwZXJzZWRl ZCBieQotPiBfZG9tMC1pb21tdT1wYXNzdGhyb3VnaF8gLSB1c2luZyBib3RoIG9wdGlvbnMgaW4g Y29tYmluYXRpb24gaXMgdW5kZWZpbmVkLioqCi0KLT4gYGRvbTAtc3RyaWN0YAorICAgIER1ZSB0 byBpbXBsZW1lbnRhdGlvbiBjaG9pY2VzLCBzaGFyaW5nIHBhZ2V0YWJsZXMgZG9lc24ndCB3b3Jr IG9uIEFNRAorICAgIGhhcmR3YXJlLCBhbmQgdGhpcyBvcHRpb24gaXMgaWdub3JlZC4gIEl0IGlz IGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBJbnRlbAorICAgIHN5c3RlbXMuCiAKLT4gKipXQVJOSU5H OiBUaGlzIGNvbW1hbmQgbGluZSBvcHRpb24gaXMgZGVwcmVjYXRlZCwgYW5kIHN1cGVyc2VkZWQg YnkKLT4gX2RvbTAtaW9tbXU9c3RyaWN0XyAtIHVzaW5nIGJvdGggb3B0aW9ucyBpbiBjb21iaW5h dGlvbiBpcyB1bmRlZmluZWQuKioKKyAgICBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIG9uIEFSTSwg YW5kIHRoZSBwYWdldGFibGVzIGFyZSBhbHdheXMgc2hhcmVkLgogCi0+IGBhbWQtaW9tbXUtcGVy ZGV2LWludHJlbWFwYAorKiAgIFRoZSBgaW50cmVtYXBgIGJvb2xlYW4gY29udHJvbHMgdGhlIElu dGVycnVwdCBSZW1hcHBpbmcgc3ViLWZlYXR1cmUsIGFuZCBpcworICAgIGFjdGl2ZSBieSBkZWZh dWx0IG9uIGNvbXBhdGlibGUgaGFyZHdhcmUuICBPbiB4ODYgc3lzdGVtcywgdGhlIGZpcnN0Cisg ICAgZ2VuZXJhdGlvbiBvZiBJT01NVXMgb25seSBzdXBwb3J0ZWQgRE1BIHJlbWFwcGluZywgYW5k IEludGVycnVwdCBSZW1hcHBpbmcKKyAgICBhcHBlYXJlZCBpbiB0aGUgc2Vjb25kIGdlbmVyYXRp b24uCiAKLT4gRGVmYXVsdDogYHRydWVgCisqICAgVGhlIGBpbnRwb3N0YCBib29sZWFuIGNvbnRy b2xzIHRoZSBQb3N0ZWQgSW50ZXJydXB0IHN1Yi1mZWF0dXJlLiAgSW4KKyAgICBjb21iaW5hdGlv biB3aXRoIEFQSUMgYWNjZWxlcmF0aW9uIChWVC14IEFQSUNWLCBTVk0gQVZJQyksIHRoZSBJT01N VSBjYW4KKyAgICBiZSBjb25maWd1cmVkIHRvIGRlbGl2ZXIgaW50ZXJydXB0cyBmcm9tIGFzc2ln bmVkIFBDSSBkZXZpY2VzIGRpcmVjdGx5CisgICAgaW50byB0aGUgZ3Vlc3QsIHdpdGhvdXQgdHJh cHBpbmcgb3V0IGludG8gaHlwZXJ2aXNvciBjb250ZXh0LgogCi0+PiBDb250cm9sIHdoZXRoZXIg dG8gc2V0IHVwIGludGVycnVwdCByZW1hcHBpbmcgZGF0YSBzdHJ1Y3R1cmVzIHBlciBkZXZpY2UK LT4+IHJhdGhlciB0aGF0IG9uY2UgZm9yIHRoZSBlbnRpcmUgc3lzdGVtLiBUdXJuaW5nIHRoaXMg b2ZmIGlzIG1ha2luZyBQQ0kKLT4+IGRldmljZSBwYXNzLXRocm91Z2ggaW5zZWN1cmUgYW5kIGhl bmNlIHVuc3VwcG9ydGVkLgorICAgIFRoaXMgb3B0aW9uIGRlcGVuZHMgb24gYGludHJlbWFwYCwg YW5kIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQgZHVlIHRvIHNvbWUKKyAgICBjb3JuZXIgY2FzZXMg aW4gdGhlIGltcGxlbWVudGF0aW9uIHdoaWNoIGhhdmUgeWV0IHRvIGJlIHJlc29sdmVkLgogCi0+ IGB3b3JrYXJvdW5kX2Jpb3NfYnVnYCAoVlQtZCkKK1RoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUg c3BlY2lmaWMgdG8gSW50ZWwgVlQtZCBoYXJkd2FyZToKIAotPiBEZWZhdWx0OiBgZmFsc2VgCisq ICAgVGhlIGBzbm9vcGAgYm9vbGVhbiBjb250cm9scyB0aGUgU25vb3AgQ29udHJvbCBzdWItZmVh dHVyZSwgYW5kIGlzCisgICAgYWN0aXZlIGJ5IGRlZmF1bHQgb24gY29tcGF0aWJsZSBoYXJkd2Fy ZS4KIAotPj4gQ2F1c2VzIERSSEQgZW50cmllcyB3aXRob3V0IGFueSBQQ0kgZGlzY292ZXJhYmxl IGRldmljZXMgdW5kZXIgdGhlbSB0byBiZQotPj4gaWdub3JlZCAobm9ybWFsbHkgSU9NTVUgc2V0 dXAgZmFpbHMgaWYgYW55IG9mIHRoZSBkZXZpY2VzIGxpc3RlZCBieSBhIERSSEQKLT4+IGVudHJ5 IGFyZW4ndCBQQ0kgZGlzY292ZXJhYmxlKS4KKyAgICBBbiBpbmNvbW1pbmcgRE1BIHJlcXVlc3Qg bWF5IHNwZWNpZnkgX1Nub29wZWRfIChxdWVyeSB0aGUgQ1BVIGNhY2hlcworICAgIGZvciB0aGUg YXBwcm9wcmlhdGUgbGluZXMpIG9yIF9Ob24tU25vb3BlZF8gKGRvbid0IHF1ZXJ5IHRoZSBDUFUK KyAgICBjYWNoZXMpLiAgX05vbi1Tbm9vcGVkXyBhY2Nlc3NlcyBpbmN1ciBsZXNzIGxhdGVuY3ks IGJ1dAorICAgIGJlaGluZC10aGUtc2NlbmVzIGh5cGVydmlzb3IgYWN0aXZpdHkgY2FuIGludmFs aWRhdGUgdGhlCisgICAgZXhwZWN0YXRpb25zIG9mIHRoZSBkZXZpY2UgZHJpdmVyLCBhbmQgU25v b3AgQ29udHJvbCBhbGxvd3MgdGhlCisgICAgaHlwZXJ2aXNvciB0byBmb3JjZSBETUEgcmVxdWVz dHMgdG8gYmUgX1Nub29wZWRfIHdoZW4gdGhleSB3b3VsZAorICAgIG90aGVyd2lzZSBub3QgYmUu CiAKLT4gYGlnZnhgIChWVC1kKQorKiAgIFRoZSBgcWludmFsYCBib29sZWFuIGNvbnRyb2xzIHRo ZSBRdWV1ZWQgSW52YWxpZGF0aW9uIHN1Yi1mZWF0dXJlLCBhbmQgaXMKKyAgICBhY3RpdmUgYnkg ZGVmYXVsdCBvbiBjb21wYXRpYmxlIGhhcmR3YXJlLiAgUXVldWVkIEludmFsaWRhdGlvbiBpcyBh CisgICAgZmVhdHVyZSBpbiBzZWNvbmQtZ2VuZXJhdGlvbiBJT01NVXMgYW5kIGlzIGEgZnVuY3Rp b25hbCBwcmVyZXF1aXNpdGUgZm9yCisgICAgSW50ZXJydXB0IFJlbWFwcGluZy4KIAotPiBEZWZh dWx0OiBgdHJ1ZWAKKyogICBUaGUgYGlnZnhgIGJvb2xlYW4gaXMgYWN0aXZlIGJ5IGRlZmF1bHQs IGFuZCBjb250cm9scyB3aGV0aGVyIHRoZQorICAgIElPTU1VIGluIGZyb250IG9mIGFuIEludGVs IEdyYXBoaWNzIERldmljZSBpcyBlbmFibGVkIG9yIG5vdC4KIAotPj4gRW5hYmxlIElPTU1VIGZv ciBJbnRlbCBncmFwaGljcyBkZXZpY2VzLiBUaGUgaW50ZW5kZWQgdXNhZ2Ugb2YgdGhpcyBvcHRp b24KLT4+IGlzIGBuby1pZ2Z4YCwgd2hpY2ggaXMgc2ltaWxhciB0byBMaW51eCBgaW50ZWxfaW9t bXU9aWdmeF9vZmZgIG9wdGlvbiB1c2VkCi0+PiB0byB3b3JrYXJvdW5kIGdyYXBoaWNzIGlzc3Vl cy4gSWYgYWRkaW5nIGBuby1pZ2Z4YCBmaXhlcyBhbnl0aGluZywgeW91Ci0+PiBzaG91bGQgZmls ZSBhIGJ1ZyByZXBvcnRpbmcgdGhlIHByb2JsZW0uCisgICAgSXQgaXMgaW50ZW5kZWQgYXMgYSBk ZWJ1Z2dpbmcgbWVjaGFuaXNtIGZvciBncmFwaGljcyBpc3N1ZXMsIGFuZCB0bworICAgIGJlIHNp bWlsYXIgdG8gTGludXgncyBgaW50ZWxfaW9tbXU9aWdmeF9vZmZgIG9wdGlvbi4gIElmIHNwZWNp ZnlpbmcKKyAgICBgbm8taWdmeGAgZml4ZXMgYW55dGhpbmcsIHBsZWFzZSByZXBvcnQgdGhlIHBy b2JsZW0uCiAKLT4gYHZlcmJvc2VgCisqICAgVGhlIGB3b3JrYXJvdW5kX2Jpb3NfYnVnYCBib29s ZWFuIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuICBJdCBjYW4gYmUKKyAgICB1c2VkIHRvIGlnbm9y ZSBlcnJvcnMgd2hlbiBwYXJzaW5nIHRoZSBBQ1BJIHRhYmxlcywgYW5kIGZpbmRpbmcgYQorICAg IGxpc3RlZCBQQ0kgZGV2aWNlIHdoaWNoIGRvZXNuJ3QgYXBwZWFyIHRvIGV4aXN0IGluIHRoZSBz eXN0ZW0uCiAKLT4gRGVmYXVsdDogYGZhbHNlYAotCi0+PiBJbmNyZWFzZSBJT01NVSBjb2RlJ3Mg dmVyYm9zaXR5LgorVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSBzcGVjaWZpYyB0byBBTUQtVmkg aGFyZHdhcmU6CiAKLT4gYGRlYnVnYAorKiAgIFRoZSBgYW1kLWlvbW11LXBlcmRldi1pbnRyZW1h cGAgYm9vbGVhbiBjb250cm9scyB3aGV0aGVyIHRoZSBpbnRlcnJ1cHQKKyAgICByZW1hcHBpbmcg dGFibGUgaXMgcGVyIGRldmljZSAodGhlIGRlZmF1bHQpLCBvciBhIHNpbmdsZSBnbG9iYWwKKyAg ICB0YWJsZSBmb3IgdGhlIGVudGlyZSBzeXN0ZW0uCiAKLT4gRGVmYXVsdDogYGZhbHNlYAorICAg IFVzaW5nIGEgZ2xvYmFsIHRhYmxlIGlzIG5vdCBzZWN1cml0eSBzdXBwb3J0ZWQgYXMgaXQgYWxs b3dzIGFsbAorICAgIGRldmljZXMgdG8gaW1wZXJzb25hdGUgZWFjaCBvdGhlciBhcyBmYXIgYXMg aW50ZXJydXB0cyBhcyBjb25jZXJuZWQKKyAgICAoc2VlIFhTQS0zNiksIGJ1dCBpdCBpcyBhIHdv cmthcm91bmQgZm9yIFNQNTEwMCBFcnJhdHVtIDI4LgogCi0+PiBFbmFibGUgSU9NTVUgZGVidWdn aW5nIGNvZGUgKGltcGxpZXMgYHZlcmJvc2VgKS4KKyoqV0FSTklORzogVGhlIGBkb20wLXBhc3N0 aHJvdWdoYCBhbmQgYGRvbTAtc3RyaWN0YCBib29sZWFucyBhcmUgYm90aAorZGVwcmVjYXRlZCwg YW5kIHN1cGVyc2VkZWQgYnkgX2RvbTAtaW9tbXU9e3Bhc3N0aHJvdWdoLHN0cmljdH1fCityZXNw ZWN0aXZlbHkgLSB1c2luZyBib3RoIHRoZSBvbGQgYW5kIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9u cyBpbgorY29tYmluYXRpb24gaXMgdW5kZWZpbmVkLioqCiAKICMjIyBpb21tdV9kZXZfaW90bGJf dGltZW91dAogPiBgPSA8aW50ZWdlcj5gCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwppbmRleCBiZDFh ZjM1Li45YWM5ZTA1IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5j CisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTIxLDM0ICsyMSwxMSBA QAogI2luY2x1ZGUgPHhlbi9rZXloYW5kbGVyLmg+CiAjaW5jbHVkZSA8eHNtL3hzbS5oPgogCi1z dGF0aWMgaW50IHBhcnNlX2lvbW11X3BhcmFtKGNvbnN0IGNoYXIgKnMpOwogc3RhdGljIHZvaWQg aW9tbXVfZHVtcF9wMm1fdGFibGUodW5zaWduZWQgY2hhciBrZXkpOwogCiB1bnNpZ25lZCBpbnQg X19yZWFkX21vc3RseSBpb21tdV9kZXZfaW90bGJfdGltZW91dCA9IDEwMDA7CiBpbnRlZ2VyX3Bh cmFtKCJpb21tdV9kZXZfaW90bGJfdGltZW91dCIsIGlvbW11X2Rldl9pb3RsYl90aW1lb3V0KTsK IAotLyoKLSAqIFRoZSAnaW9tbXUnIHBhcmFtZXRlciBlbmFibGVzIHRoZSBJT01NVS4gIE9wdGlv bmFsIGNvbW1hIHNlcGFyYXRlZAotICogdmFsdWUgbWF5IGNvbnRhaW46Ci0gKgotICogICBvZmZ8 bm98ZmFsc2V8ZGlzYWJsZSAgICAgICBEaXNhYmxlIElPTU1VIChkZWZhdWx0KQotICogICBmb3Jj ZXxyZXF1aXJlZCAgICAgICAgICAgICBEb24ndCBib290IHVubGVzcyBJT01NVSBpcyBlbmFibGVk Ci0gKiAgIG5vLWludHJlbWFwICAgICAgICAgICAgICAgIERpc2FibGUgaW50ZXJydXB0IHJlbWFw cGluZwotICogICBpbnRwb3N0ICAgICAgICAgICAgICAgICAgICBFbmFibGUgVlQtZCBJbnRlcnJ1 cHQgcG9zdGluZwotICogICB2ZXJib3NlICAgICAgICAgICAgICAgICAgICBCZSBtb3JlIHZlcmJv c2UKLSAqICAgZGVidWcgICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIGRlYnVnZ2luZyBtZXNz YWdlcyBhbmQgY2hlY2tzCi0gKiAgIHdvcmthcm91bmRfYmlvc19idWcgICAgICAgIFdvcmthcm91 bmQgc29tZSBiaW9zIGlzc3VlIHRvIHN0aWxsIGVuYWJsZQotICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBWVC1kLCBkb24ndCBndWFyYW50ZWUgc2VjdXJpdHkKLSAqICAgZG9tMC1wYXNz dGhyb3VnaCAgICAgICAgICAgTm8gRE1BIHRyYW5zbGF0aW9uIGF0IGFsbCBmb3IgRG9tMAotICog ICBkb20wLXN0cmljdCAgICAgICAgICAgICAgICBObyAxOjEgbWVtb3J5IG1hcHBpbmcgZm9yIERv bTAKLSAqICAgbm8tc2hhcmVwdCAgICAgICAgICAgICAgICAgRG9uJ3Qgc2hhcmUgVlQtZCBhbmQg RVBUIHBhZ2UgdGFibGVzCi0gKiAgIG5vLXNub29wICAgICAgICAgICAgICAgICAgIERpc2FibGUg VlQtZCBTbm9vcCBDb250cm9sCi0gKiAgIG5vLXFpbnZhbCAgICAgICAgICAgICAgICAgIERpc2Fi bGUgVlQtZCBRdWV1ZWQgSW52YWxpZGF0aW9uCi0gKiAgIG5vLWlnZnggICAgICAgICAgICAgICAg ICAgIERpc2FibGUgVlQtZCBmb3IgSUdEIGRldmljZXMgKGluc2VjdXJlKQotICogICBuby1hbWQt aW9tbXUtcGVyZGV2LWludHJlbWFwIERvbid0IHVzZSBwZXItZGV2aWNlIGludGVycnVwdCByZW1h cHBpbmcKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVzIChpbnNlY3VyZSkK LSAqLwotY3VzdG9tX3BhcmFtKCJpb21tdSIsIHBhcnNlX2lvbW11X3BhcmFtKTsKIGJvb2xfdCBf X2luaXRkYXRhIGlvbW11X2VuYWJsZSA9IDE7CiBib29sX3QgX19yZWFkX21vc3RseSBpb21tdV9l bmFibGVkOwogYm9vbF90IF9fcmVhZF9tb3N0bHkgZm9yY2VfaW9tbXU7CkBAIC04NCw1MCArNjEs NDUgQEAgc3RhdGljIHN0cnVjdCB0YXNrbGV0IGlvbW11X3B0X2NsZWFudXBfdGFza2xldDsKIHN0 YXRpYyBpbnQgX19pbml0IHBhcnNlX2lvbW11X3BhcmFtKGNvbnN0IGNoYXIgKnMpCiB7CiAgICAg Y29uc3QgY2hhciAqc3M7Ci0gICAgaW50IHZhbCwgYiwgcmMgPSAwOworICAgIGludCB2YWwsIHJj ID0gMDsKIAogICAgIGRvIHsKLSAgICAgICAgdmFsID0gISFzdHJuY21wKHMsICJuby0iLCAzKTsK LSAgICAgICAgaWYgKCAhdmFsICkKLSAgICAgICAgICAgIHMgKz0gMzsKLQogICAgICAgICBzcyA9 IHN0cmNocihzLCAnLCcpOwogICAgICAgICBpZiAoICFzcyApCiAgICAgICAgICAgICBzcyA9IHN0 cmNocihzLCAnXDAnKTsKIAotICAgICAgICBiID0gcGFyc2VfYm9vbChzLCBzcyk7Ci0gICAgICAg IGlmICggYiA+PSAwICkKLSAgICAgICAgICAgIGlvbW11X2VuYWJsZSA9IGI7Ci0gICAgICAgIGVs c2UgaWYgKCAhY21kbGluZV9zdHJjbXAocywgImZvcmNlIikgfHwKLSAgICAgICAgICAgICAgICAg ICFjbWRsaW5lX3N0cmNtcChzLCAicmVxdWlyZWQiKSApCisgICAgICAgIGlmICggKHZhbCA9IHBh cnNlX2Jvb2wocywgc3MpKSA+PSAwICkKKyAgICAgICAgICAgIGlvbW11X2VuYWJsZSA9IHZhbDsK KyAgICAgICAgZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29sZWFuKCJmb3JjZSIsIHMsIHNzKSkg Pj0gMCB8fAorICAgICAgICAgICAgICAgICAgKHZhbCA9IHBhcnNlX2Jvb2xlYW4oInJlcXVpcmVk Iiwgcywgc3MpKSA+PSAwICkKICAgICAgICAgICAgIGZvcmNlX2lvbW11ID0gdmFsOwotICAgICAg ICBlbHNlIGlmICggIWNtZGxpbmVfc3RyY21wKHMsICJ3b3JrYXJvdW5kX2Jpb3NfYnVnIikgKQor ICAgICAgICBlbHNlIGlmICggKHZhbCA9IHBhcnNlX2Jvb2xlYW4oIndvcmthcm91bmRfYmlvc19i dWciLCBzLCBzcykpID49IDAgKQogICAgICAgICAgICAgaW9tbXVfd29ya2Fyb3VuZF9iaW9zX2J1 ZyA9IHZhbDsKLSAgICAgICAgZWxzZSBpZiAoICFjbWRsaW5lX3N0cmNtcChzLCAiaWdmeCIpICkK KyAgICAgICAgZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29sZWFuKCJpZ2Z4Iiwgcywgc3MpKSA+ PSAwICkKICAgICAgICAgICAgIGlvbW11X2lnZnggPSB2YWw7Ci0gICAgICAgIGVsc2UgaWYgKCAh Y21kbGluZV9zdHJjbXAocywgInZlcmJvc2UiKSApCisgICAgICAgIGVsc2UgaWYgKCAodmFsID0g cGFyc2VfYm9vbGVhbigidmVyYm9zZSIsIHMsIHNzKSkgPj0gMCApCiAgICAgICAgICAgICBpb21t dV92ZXJib3NlID0gdmFsOwotICAgICAgICBlbHNlIGlmICggIWNtZGxpbmVfc3RyY21wKHMsICJz bm9vcCIpICkKKyAgICAgICAgZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29sZWFuKCJzbm9vcCIs IHMsIHNzKSkgPj0gMCApCiAgICAgICAgICAgICBpb21tdV9zbm9vcCA9IHZhbDsKLSAgICAgICAg ZWxzZSBpZiAoICFjbWRsaW5lX3N0cmNtcChzLCAicWludmFsIikgKQorICAgICAgICBlbHNlIGlm ICggKHZhbCA9IHBhcnNlX2Jvb2xlYW4oInFpbnZhbCIsIHMsIHNzKSkgPj0gMCApCiAgICAgICAg ICAgICBpb21tdV9xaW52YWwgPSB2YWw7Ci0gICAgICAgIGVsc2UgaWYgKCAhY21kbGluZV9zdHJj bXAocywgImludHJlbWFwIikgKQorICAgICAgICBlbHNlIGlmICggKHZhbCA9IHBhcnNlX2Jvb2xl YW4oImludHJlbWFwIiwgcywgc3MpKSA+PSAwICkKICAgICAgICAgICAgIGlvbW11X2ludHJlbWFw ID0gdmFsOwotICAgICAgICBlbHNlIGlmICggIWNtZGxpbmVfc3RyY21wKHMsICJpbnRwb3N0Iikg KQorICAgICAgICBlbHNlIGlmICggKHZhbCA9IHBhcnNlX2Jvb2xlYW4oImludHBvc3QiLCBzLCBz cykpID49IDAgKQogICAgICAgICAgICAgaW9tbXVfaW50cG9zdCA9IHZhbDsKLSAgICAgICAgZWxz ZSBpZiAoICFjbWRsaW5lX3N0cmNtcChzLCAiZGVidWciKSApCisgICAgICAgIGVsc2UgaWYgKCAo dmFsID0gcGFyc2VfYm9vbGVhbigiZGVidWciLCBzLCBzcykpID49IDAgKQogICAgICAgICB7CiAg ICAgICAgICAgICBpb21tdV9kZWJ1ZyA9IHZhbDsKICAgICAgICAgICAgIGlmICggdmFsICkKICAg ICAgICAgICAgICAgICBpb21tdV92ZXJib3NlID0gMTsKICAgICAgICAgfQotICAgICAgICBlbHNl IGlmICggIWNtZGxpbmVfc3RyY21wKHMsICJhbWQtaW9tbXUtcGVyZGV2LWludHJlbWFwIikgKQor ICAgICAgICBlbHNlIGlmICggKHZhbCA9IHBhcnNlX2Jvb2xlYW4oImFtZC1pb21tdS1wZXJkZXYt aW50cmVtYXAiLCBzLCBzcykpID49IDAgKQogICAgICAgICAgICAgYW1kX2lvbW11X3BlcmRldl9p bnRyZW1hcCA9IHZhbDsKLSAgICAgICAgZWxzZSBpZiAoICFjbWRsaW5lX3N0cmNtcChzLCAiZG9t MC1wYXNzdGhyb3VnaCIpICkKKyAgICAgICAgZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29sZWFu KCJkb20wLXBhc3N0aHJvdWdoIiwgcywgc3MpKSA+PSAwICkKICAgICAgICAgICAgIGlvbW11X2h3 ZG9tX3Bhc3N0aHJvdWdoID0gdmFsOwotICAgICAgICBlbHNlIGlmICggIWNtZGxpbmVfc3RyY21w KHMsICJkb20wLXN0cmljdCIpICkKKyAgICAgICAgZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29s ZWFuKCJkb20wLXN0cmljdCIsIHMsIHNzKSkgPj0gMCApCiAgICAgICAgICAgICBpb21tdV9od2Rv bV9zdHJpY3QgPSB2YWw7Ci0gICAgICAgIGVsc2UgaWYgKCAhY21kbGluZV9zdHJjbXAocywgInNo YXJlcHQiKSApCisgICAgICAgIGVsc2UgaWYgKCAodmFsID0gcGFyc2VfYm9vbGVhbigic2hhcmVw dCIsIHMsIHNzKSkgPj0gMCApCiAgICAgICAgICAgICBpb21tdV9oYXBfcHRfc2hhcmUgPSB2YWw7 CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKQEAgLTEzNyw2ICsxMDks NyBAQCBzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9pb21tdV9wYXJhbShjb25zdCBjaGFyICpzKQog CiAgICAgcmV0dXJuIHJjOwogfQorY3VzdG9tX3BhcmFtKCJpb21tdSIsIHBhcnNlX2lvbW11X3Bh cmFtKTsKIAogc3RhdGljIGludCBfX2luaXQgcGFyc2VfZG9tMF9pb21tdV9wYXJhbShjb25zdCBj aGFyICpzKQogewotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5w cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v eGVuLWRldmVs