From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changlong Xie Subject: [PATCH v11 24/27] COLO nic: implement COLO nic subkind Date: Fri, 4 Mar 2016 16:41:28 +0800 Message-ID: <1457080891-26054-25-git-send-email-xiecl.fnst@cn.fujitsu.com> References: <1457080891-26054-1-git-send-email-xiecl.fnst@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1457080891-26054-1-git-send-email-xiecl.fnst@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen devel , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Campbell , Ian Jackson , Wei Liu Cc: Lars Kurth , Changlong Xie , Wen Congyang , Gui Jianfeng , Jiang Yunhong , Dong Eddie , Anthony Perard , Shriram Rajagopalan , Yang Hongyang List-Id: xen-devel@lists.xenproject.org RnJvbTogV2VuIENvbmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4KCmltcGxlbWVudCBDT0xP IG5pYyBzdWJraW5kLgoKU2lnbmVkLW9mZi1ieTogWWFuZyBIb25neWFuZyA8aG9uZ3lhbmcueWFu Z0BlYXN5c3RhY2suY24+ClNpZ25lZC1vZmYtYnk6IFdlbiBDb25neWFuZyA8d2VuY3lAY24uZnVq aXRzdS5jb20+ClNpZ25lZC1vZmYtYnk6IENoYW5nbG9uZyBYaWUgPHhpZWNsLmZuc3RAY24uZnVq aXRzdS5jb20+Ci0tLQogdG9vbHMvaG90cGx1Zy9MaW51eC9NYWtlZmlsZSAgICAgICAgIHwgICAx ICsKIHRvb2xzL2hvdHBsdWcvTGludXgvY29sby1wcm94eS1zZXR1cCB8IDEzNSArKysrKysrKysr KysrKysKIHRvb2xzL2xpYnhsL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMSArCiB0b29s cy9saWJ4bC9saWJ4bF9jb2xvLmggICAgICAgICAgICAgfCAgMTAgKysKIHRvb2xzL2xpYnhsL2xp YnhsX2NvbG9fbmljLmMgICAgICAgICB8IDMxNSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCAgICAgICAgIHwgICAyICsKIHRv b2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbCAgICAgICAgICB8ICAgMSArCiA3IGZpbGVzIGNoYW5n ZWQsIDQ2NSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA3NTUgdG9vbHMvaG90cGx1Zy9M aW51eC9jb2xvLXByb3h5LXNldHVwCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvbGlieGwvbGli eGxfY29sb19uaWMuYwoKZGlmZiAtLWdpdCBhL3Rvb2xzL2hvdHBsdWcvTGludXgvTWFrZWZpbGUg Yi90b29scy9ob3RwbHVnL0xpbnV4L01ha2VmaWxlCmluZGV4IDZlMTAxMTguLjliYjg1MmIgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2hvdHBsdWcvTGludXgvTWFrZWZpbGUKKysrIGIvdG9vbHMvaG90cGx1 Zy9MaW51eC9NYWtlZmlsZQpAQCAtMjgsNiArMjgsNyBAQCBYRU5fU0NSSVBUUyArPSBibG9jay1p c2NzaQogWEVOX1NDUklQVFMgKz0gYmxvY2stdGFwCiBYRU5fU0NSSVBUUyArPSBibG9jay1kcmJk LXByb2JlCiBYRU5fU0NSSVBUUyArPSAkKFhFTl9TQ1JJUFRTLXkpCitYRU5fU0NSSVBUUyArPSBj b2xvLXByb3h5LXNldHVwCiAKIFNVQkRJUlMtJChDT05GSUdfU1lTVEVNRCkgKz0gc3lzdGVtZAog CmRpZmYgLS1naXQgYS90b29scy9ob3RwbHVnL0xpbnV4L2NvbG8tcHJveHktc2V0dXAgYi90b29s cy9ob3RwbHVnL0xpbnV4L2NvbG8tcHJveHktc2V0dXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5k ZXggMDAwMDAwMC4uOTRlMjAzNAotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2hvdHBsdWcvTGlu dXgvY29sby1wcm94eS1zZXR1cApAQCAtMCwwICsxLDEzNSBAQAorIyEgL2Jpbi9iYXNoCisKK2Rp cj0kKGRpcm5hbWUgIiQwIikKKy4gIiRkaXIveGVuLWhvdHBsdWctY29tbW9uLnNoIgorLiAiJGRp ci9ob3RwbHVncGF0aC5zaCIKKworZmluZENvbW1hbmQgIiRAIgorCitpZiBbICIkY29tbWFuZCIg IT0gInNldHVwIiAtYSAgIiRjb21tYW5kIiAhPSAidGVhcmRvd24iIF0KK3RoZW4KKyAgICBlY2hv ICJJbnZhbGlkIGNvbW1hbmQ6ICRjb21tYW5kIgorICAgIGxvZyBlcnIgIkludmFsaWQgY29tbWFu ZDogJGNvbW1hbmQiCisgICAgZXhpdCAxCitmaQorCitldmFsVmFyaWFibGVzICIkQCIKKworOiAk e3ZpZm5hbWU6P30KKzogJHtmb3J3YXJkZGV2Oj99Cis6ICR7bW9kZTo/fQorOiAke2luZGV4Oj99 Cis6ICR7YnJpZGdlOj99CisKK2ZvcndhcmRicj0iY29sb2JyMCIKKworaWYgWyAiJG1vZGUiICE9 ICJwcmltYXJ5IiAtYSAiJG1vZGUiICE9ICJzZWNvbmRhcnkiIF0KK3RoZW4KKyAgICBlY2hvICJJ bnZhbGlkIG1vZGU6ICRtb2RlIgorICAgIGxvZyBlcnIgIkludmFsaWQgbW9kZTogJG1vZGUiCisg ICAgZXhpdCAxCitmaQorCitpZiBbICRpbmRleCAtbHQgMCBdIHx8IFsgJGluZGV4IC1ndCAxMDAg XTsgdGhlbgorICAgIGVjaG8gImluZGV4IG92ZXJmbG93IgorICAgIGV4aXQgMQorZmkKKworZnVu Y3Rpb24gc2V0dXBfcHJpbWFyeSgpCit7CisgICAgZG9fd2l0aG91dF9lcnJvciB0YyBxZGlzYyBh ZGQgZGV2ICR2aWZuYW1lIHJvb3QgaGFuZGxlIDE6IHByaW8KKyAgICBkb193aXRob3V0X2Vycm9y IHRjIGZpbHRlciBhZGQgZGV2ICR2aWZuYW1lIHBhcmVudCAxOiBwcm90b2NvbCBpcCBwcmlvIDEw IFwKKyAgICAgICAgdTMyIG1hdGNoIHUzMiAwIDAgZmxvd2lkIDE6MiBhY3Rpb24gbWlycmVkIGVn cmVzcyBtaXJyb3IgZGV2ICRmb3J3YXJkZGV2CisgICAgZG9fd2l0aG91dF9lcnJvciB0YyBmaWx0 ZXIgYWRkIGRldiAkdmlmbmFtZSBwYXJlbnQgMTogcHJvdG9jb2wgYXJwIHByaW8gMTEgXAorICAg ICAgICB1MzIgbWF0Y2ggdTMyIDAgMCBmbG93aWQgMToyIGFjdGlvbiBtaXJyZWQgZWdyZXNzIG1p cnJvciBkZXYgJGZvcndhcmRkZXYKKyAgICBkb193aXRob3V0X2Vycm9yIHRjIGZpbHRlciBhZGQg ZGV2ICR2aWZuYW1lIHBhcmVudCAxOiBwcm90b2NvbCBpcHY2IHByaW8gXAorICAgICAgICAxMiB1 MzIgbWF0Y2ggdTMyIDAgMCBmbG93aWQgMToyIGFjdGlvbiBtaXJyZWQgZWdyZXNzIG1pcnJvciBc CisgICAgICAgIGRldiAkZm9yd2FyZGRldgorCisgICAgZG9fd2l0aG91dF9lcnJvciBtb2Rwcm9i ZSBuZl9jb25udHJhY2tfaXB2NAorICAgIGRvX3dpdGhvdXRfZXJyb3IgbW9kcHJvYmUgeHRfUE1Z Q09MTyBzZWNfZGV2PSRmb3J3YXJkZGV2CisKKyAgICBpcHRhYmxlcyAtdCBtYW5nbGUgLUkgUFJF Uk9VVElORyAtbSBwaHlzZGV2IC0tcGh5c2Rldi1pbiBcCisgICAgICAgICR2aWZuYW1lIC1qIFBN WUNPTE8gLS1pbmRleCAkaW5kZXgKKyAgICBpcDZ0YWJsZXMgLXQgbWFuZ2xlIC1JIFBSRVJPVVRJ TkcgLW0gcGh5c2RldiAtLXBoeXNkZXYtaW4gXAorICAgICAgICAkdmlmbmFtZSAtaiBQTVlDT0xP IC0taW5kZXggJGluZGV4CisgICAgZG9fd2l0aG91dF9lcnJvciBhcnB0YWJsZXMgLUkgSU5QVVQg LWkgJGZvcndhcmRkZXYgLWogTUFSSyAtLXNldC1tYXJrICRpbmRleAorfQorCitmdW5jdGlvbiB0 ZWFyZG93bl9wcmltYXJ5KCkKK3sKKyAgICBkb193aXRob3V0X2Vycm9yIHRjIGZpbHRlciBkZWwg ZGV2ICR2aWZuYW1lIHBhcmVudCAxOiBwcm90b2NvbCBpcCBwcmlvIDEwIHUzMiBtYXRjaCB1MzIg XAorICAgICAgICAwIDAgZmxvd2lkIDE6MiBhY3Rpb24gbWlycmVkIGVncmVzcyBtaXJyb3IgZGV2 ICRmb3J3YXJkZGV2CisgICAgZG9fd2l0aG91dF9lcnJvciB0YyBmaWx0ZXIgZGVsIGRldiAkdmlm bmFtZSBwYXJlbnQgMTogcHJvdG9jb2wgYXJwIHByaW8gMTEgdTMyIG1hdGNoIHUzMiBcCisgICAg ICAgIDAgMCBmbG93aWQgMToyIGFjdGlvbiBtaXJyZWQgZWdyZXNzIG1pcnJvciBkZXYgJGZvcndh cmRkZXYKKyAgICBkb193aXRob3V0X2Vycm9yIHRjIGZpbHRlciBkZWwgZGV2ICR2aWZuYW1lIHBh cmVudCAxOiBwcm90b2NvbCBpcHY2IHByaW8gMTIgdTMyIG1hdGNoIHUzMiBcCisgICAgICAgIDAg MCBmbG93aWQgMToyIGFjdGlvbiBtaXJyZWQgZWdyZXNzIG1pcnJvciBkZXYgJGZvcndhcmRkZXYK KyAgICBkb193aXRob3V0X2Vycm9yIHRjIHFkaXNjIGRlbCBkZXYgJHZpZm5hbWUgcm9vdCBoYW5k bGUgMTogcHJpbworCisgICAgZG9fd2l0aG91dF9lcnJvciBpcHRhYmxlcyAtdCBtYW5nbGUgLUQg UFJFUk9VVElORyAtbSBwaHlzZGV2IC0tcGh5c2Rldi1pbiBcCisgICAgICAgICR2aWZuYW1lIC1q IFBNWUNPTE8gLS1pbmRleCAkaW5kZXgKKyAgICBkb193aXRob3V0X2Vycm9yIGlwNnRhYmxlcyAt dCBtYW5nbGUgLUQgUFJFUk9VVElORyAtbSBwaHlzZGV2IC0tcGh5c2Rldi1pbiBcCisgICAgICAg ICR2aWZuYW1lIC1qIFBNWUNPTE8gLS1pbmRleCAkaW5kZXgKKyAgICBkb193aXRob3V0X2Vycm9y IGFycHRhYmxlcyAtRgorICAgIGRvX3dpdGhvdXRfZXJyb3Igcm1tb2QgeHRfUE1ZQ09MTworfQor CitmdW5jdGlvbiBzZXR1cF9zZWNvbmRhcnkoKQoreworICAgIGRvX3dpdGhvdXRfZXJyb3IgYnJj dGwgZGVsaWYgJGJyaWRnZSAkdmlmbmFtZQorICAgIGRvX3dpdGhvdXRfZXJyb3IgYnJjdGwgYWRk YnIgJGZvcndhcmRicgorICAgIGRvX3dpdGhvdXRfZXJyb3IgYnJjdGwgYWRkaWYgJGZvcndhcmRi ciAkdmlmbmFtZQorICAgIGRvX3dpdGhvdXRfZXJyb3IgYnJjdGwgYWRkaWYgJGZvcndhcmRiciAk Zm9yd2FyZGRldgorICAgIGRvX3dpdGhvdXRfZXJyb3IgaXAgbGluayBzZXQgZGV2ICRmb3J3YXJk YnIgdXAKKyAgICBkb193aXRob3V0X2Vycm9yIG1vZHByb2JlIHh0X1NFQ0NPTE8KKworICAgIGlw dGFibGVzIC10IG1hbmdsZSAtSSBQUkVST1VUSU5HIC1tIHBoeXNkZXYgLS1waHlzZGV2LWluIFwK KyAgICAgICAgJHZpZm5hbWUgLWogU0VDQ09MTyAtLWluZGV4ICRpbmRleAorICAgIGlwNnRhYmxl cyAtdCBtYW5nbGUgLUkgUFJFUk9VVElORyAtbSBwaHlzZGV2IC0tcGh5c2Rldi1pbiBcCisgICAg ICAgICR2aWZuYW1lIC1qIFNFQ0NPTE8gLS1pbmRleCAkaW5kZXgKK30KKworZnVuY3Rpb24gdGVh cmRvd25fc2Vjb25kYXJ5KCkKK3sKKyAgICBkb193aXRob3V0X2Vycm9yIGJyY3RsIGRlbGlmICRm b3J3YXJkYnIgJGZvcndhcmRkZXYKKyAgICBkb193aXRob3V0X2Vycm9yIGJyY3RsIGRlbGlmICRm b3J3YXJkYnIgJHZpZm5hbWUKKyAgICBkb193aXRob3V0X2Vycm9yIGJyY3RsIGRlbGJyICRmb3J3 YXJkYnIKKyAgICBkb193aXRob3V0X2Vycm9yIGJyY3RsIGFkZGlmICRicmlkZ2UgJHZpZm5hbWUK KworICAgIGRvX3dpdGhvdXRfZXJyb3IgaXB0YWJsZXMgLXQgbWFuZ2xlIC1EIFBSRVJPVVRJTkcg LW0gcGh5c2RldiAtLXBoeXNkZXYtaW4gXAorICAgICAgICAkdmlmbmFtZSAtaiBTRUNDT0xPIC0t aW5kZXggJGluZGV4CisgICAgZG9fd2l0aG91dF9lcnJvciBpcDZ0YWJsZXMgLXQgbWFuZ2xlIC1E IFBSRVJPVVRJTkcgLW0gcGh5c2RldiAtLXBoeXNkZXYtaW4gXAorICAgICAgICAkdmlmbmFtZSAt aiBTRUNDT0xPIC0taW5kZXggJGluZGV4CisgICAgZG9fd2l0aG91dF9lcnJvciBybW1vZCB4dF9T RUNDT0xPCit9CisKK2Nhc2UgIiRjb21tYW5kIiBpbgorICAgIHNldHVwKQorICAgICAgICBpZiBb ICIkbW9kZSIgPSAicHJpbWFyeSIgXQorICAgICAgICB0aGVuCisgICAgICAgICAgICBzZXR1cF9w cmltYXJ5CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNldHVwX3NlY29uZGFyeQorICAgICAg ICBmaQorCisgICAgICAgIHN1Y2Nlc3MKKyAgICAgICAgOzsKKyAgICB0ZWFyZG93bikKKyAgICAg ICAgaWYgWyAiJG1vZGUiID0gInByaW1hcnkiIF0KKyAgICAgICAgdGhlbgorICAgICAgICAgICAg dGVhcmRvd25fcHJpbWFyeQorICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZWFyZG93bl9zZWNv bmRhcnkKKyAgICAgICAgZmkKKyAgICAgICAgOzsKK2VzYWMKKworaWYgWyAiJG1vZGUiID0gInBy aW1hcnkiIF0KK3RoZW4KKyAgICBsb2cgZGVidWcgIlN1Y2Nlc3NmdWwgY29sby1wcm94eS1zZXR1 cCAkY29tbWFuZCBmb3IgJHZpZm5hbWUuIiBcCisgICAgICAgICAgICAgICIgdmlmbmFtZTogJHZp Zm5hbWUsIGluZGV4OiAkaW5kZXgsIGZvcndhcmRkZXY6ICRmb3J3YXJkZGV2LiIKK2Vsc2UKKyAg ICBsb2cgZGVidWcgIlN1Y2Nlc3NmdWwgY29sby1wcm94eS1zZXR1cCAkY29tbWFuZCBmb3IgJHZp Zm5hbWUuIiBcCisgICAgICAgICAgICAgICIgdmlmbmFtZTogJHZpZm5hbWUsIGluZGV4OiAkaW5k ZXgsIGZvcndhcmRkZXY6ICRmb3J3YXJkZGV2LCJcCisgICAgICAgICAgICAgICIgZm9yd2FyZGJy OiAkZm9yd2FyZGJyLiIKK2ZpCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9NYWtlZmlsZSBiL3Rv b2xzL2xpYnhsL01ha2VmaWxlCmluZGV4IDZmZWE5ZTAuLmFlZmMzNzggMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL01ha2VmaWxlCisrKyBiL3Rvb2xzL2xpYnhsL01ha2VmaWxlCkBAIC02OCw2ICs2 OCw3IEBAIExJQlhMX09CSlMteSArPSBsaWJ4bF9yZW11cy5vIGxpYnhsX2NoZWNrcG9pbnRfZGV2 aWNlLm8gbGlieGxfcmVtdXNfZGlza19kcmJkLm8KIExJQlhMX09CSlMteSArPSBsaWJ4bF9jb2xv X3Jlc3RvcmUubyBsaWJ4bF9jb2xvX3NhdmUubwogTElCWExfT0JKUy15ICs9IGxpYnhsX2NvbG9f cWRpc2subwogTElCWExfT0JKUy15ICs9IGxpYnhsX2NvbG9fcHJveHkubworTElCWExfT0JKUy15 ICs9IGxpYnhsX2NvbG9fbmljLm8KIAogTElCWExfT0JKUy0kKENPTkZJR19YODYpICs9IGxpYnhs X2NwdWlkLm8gbGlieGxfeDg2Lm8gbGlieGxfcHNyLm8KIExJQlhMX09CSlMtJChDT05GSUdfQVJN KSArPSBsaWJ4bF9ub2NwdWlkLm8gbGlieGxfYXJtLm8gbGlieGxfbGliZmR0X2NvbXBhdC5vCmRp ZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9jb2xvLmggYi90b29scy9saWJ4bC9saWJ4bF9j b2xvLmgKaW5kZXggNzM2OTI3ZS4uMDk0Nzk1MyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGli eGxfY29sby5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG8uaApAQCAtMzksNiArMzksMTEg QEAgZW51bSBjb2xvX25ldGxpbmtfb3AgewogICAgIENPTE9fUFJPWFlfUkVTRVQsIC8qIFVOVVNF RCwgd2lsbCBiZSB1c2VkIGZvciBjb250aW51b3VzIEZUICovCiB9OwogCit0eXBlZGVmIHN0cnVj dCBsaWJ4bF9fY29sb19kZXZpY2VfbmljIHsKKyAgICBpbnQgZGV2aWQ7CisgICAgY29uc3QgY2hh ciAqdmlmOworfSBsaWJ4bF9fY29sb19kZXZpY2VfbmljOworCiB0eXBlZGVmIHN0cnVjdCBsaWJ4 bF9fY29sb19xZGlzayB7CiAgICAgYm9vbCBzZXR1cGVkOwogfSBsaWJ4bF9fY29sb19xZGlzazsK QEAgLTY5LDYgKzc0LDcgQEAgc3RydWN0IGxpYnhsX19jb2xvX3Jlc3RvcmVfc3RhdGUgewogICAg IGludCByZWN2X2ZkOwogICAgIGludCBodm07CiAgICAgbGlieGxfX2NvbG9fY2FsbGJhY2sgKmNh bGxiYWNrOworICAgIGNoYXIgKmNvbG9fcHJveHlfc2NyaXB0OwogCiAgICAgLyogcHJpdmF0ZSwg Y29sbyByZXN0b3JlIGNoZWNrcG9pbnQgc3RhdGUgKi8KICAgICBsaWJ4bF9fZG9tYWluX2NyZWF0 ZV9jYiAqc2F2ZWRfY2I7CkBAIC04OCw2ICs5NCwxMCBAQCBpbnQgaW5pdF9zdWJraW5kX3FkaXNr KHN0cnVjdCBsaWJ4bF9fY2hlY2twb2ludF9kZXZpY2VzX3N0YXRlICpjZHMpOwogCiB2b2lkIGNs ZWFudXBfc3Via2luZF9xZGlzayhzdHJ1Y3QgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlc19zdGF0 ZSAqY2RzKTsKIAoraW50IGluaXRfc3Via2luZF9jb2xvX25pYyhzdHJ1Y3QgbGlieGxfX2NoZWNr cG9pbnRfZGV2aWNlc19zdGF0ZSAqY2RzKTsKKwordm9pZCBjbGVhbnVwX3N1YmtpbmRfY29sb19u aWMoc3RydWN0IGxpYnhsX19jaGVja3BvaW50X2RldmljZXNfc3RhdGUgKmNkcyk7CisKIGV4dGVy biB2b2lkIGxpYnhsX19jb2xvX3Jlc3RvcmVfc2V0dXAoc3RydWN0IGxpYnhsX19lZ2MgKmVnYywK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2NvbG9fcmVzdG9y ZV9zdGF0ZSAqY3JzKTsKIGV4dGVybiB2b2lkIGxpYnhsX19jb2xvX3Jlc3RvcmVfdGVhcmRvd24o c3RydWN0IGxpYnhsX19lZ2MgKmVnYywgdm9pZCAqZGNzX3ZvaWQsCmRpZmYgLS1naXQgYS90b29s cy9saWJ4bC9saWJ4bF9jb2xvX25pYy5jIGIvdG9vbHMvbGlieGwvbGlieGxfY29sb19uaWMuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmI0MTYzCi0tLSAvZGV2L251bGwK KysrIGIvdG9vbHMvbGlieGwvbGlieGxfY29sb19uaWMuYwpAQCAtMCwwICsxLDMxNSBAQAorLyoK KyAqIENvcHlyaWdodCAoQykgMjAxNCBGVUpJVFNVIExJTUlURUQKKyAqIEF1dGhvcjogV2VuIENv bmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkCisgKiBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9u IDIuMSBvbmx5LiB3aXRoIHRoZSBzcGVjaWFsCisgKiBleGNlcHRpb24gb24gbGlua2luZyBkZXNj cmliZWQgaW4gZmlsZSBMSUNFTlNFLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor ICovCisKKyNpbmNsdWRlICJsaWJ4bF9vc2RlcHMuaCIgLyogbXVzdCBjb21lIGJlZm9yZSBhbnkg b3RoZXIgaGVhZGVycyAqLworCisjaW5jbHVkZSAibGlieGxfaW50ZXJuYWwuaCIKKworZW51bSB7 CisgICAgcHJpbWFyeSwKKyAgICBzZWNvbmRhcnksCit9OworCisvKiA9PT09PT09PT09IGluaXQo KSBhbmQgY2xlYW51cCgpID09PT09PT09PT0gKi8KK2ludCBpbml0X3N1YmtpbmRfY29sb19uaWMo bGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlc19zdGF0ZSAqY2RzKQoreworICAgIHJldHVybiAwOwor fQorCit2b2lkIGNsZWFudXBfc3Via2luZF9jb2xvX25pYyhsaWJ4bF9fY2hlY2twb2ludF9kZXZp Y2VzX3N0YXRlICpjZHMpCit7Cit9CisKKy8qID09PT09PT09PT0gaGVscGVyIGZ1bmN0aW9ucyA9 PT09PT09PT09ICovCitzdGF0aWMgdm9pZCBjb2xvX3NhdmVfc2V0dXBfc2NyaXB0X2NiKGxpYnhs X19lZ2MgKmVnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9f YXN5bmNfZXhlY19zdGF0ZSAqYWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCByYywgaW50IHN0YXR1cyk7CitzdGF0aWMgdm9pZCBjb2xvX3NhdmVfdGVhcmRvd25f c2NyaXB0X2NiKGxpYnhsX19lZ2MgKmVnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfX2FzeW5jX2V4ZWNfc3RhdGUgKmFlcywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjLCBpbnQgc3RhdHVzKTsKKworLyoKKyAq IElmIHRoZSBkZXZpY2UgaGFzIGEgdmlmbmFtZSwgdGhlbiB1c2UgdGhhdCBpbnN0ZWFkIG9mCisg KiB0aGUgdmlmWC5ZIGZvcm1hdC4KKyAqIGl0IG11c3QgT05MWSBiZSB1c2VkIGZvciByZW11cyBi ZWNhdXNlIGlmIGRyaXZlciBkb21haW5zCisgKiB3ZXJlIGluIHVzZSBpdCB3b3VsZCBjb25zdGl0 dXRlIGEgc2VjdXJpdHkgdnVsbmVyYWJpbGl0eS4KKyAqLworc3RhdGljIGNvbnN0IGNoYXIgKmdl dF92aWZuYW1lKGxpYnhsX19jaGVja3BvaW50X2RldmljZSAqZGV2LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2RldmljZV9uaWMgKm5pYykKK3sKKyAgICBjb25z dCBjaGFyICp2aWZuYW1lID0gTlVMTDsKKyAgICBjb25zdCBjaGFyICpwYXRoOworICAgIGludCBy YzsKKworICAgIFNUQVRFX0FPX0dDKGRldi0+Y2RzLT5hbyk7CisKKyAgICAvKiBDb252ZW5pZW5j ZSBhbGlhc2VzICovCisgICAgY29uc3QgdWludDMyX3QgZG9taWQgPSBkZXYtPmNkcy0+ZG9taWQ7 CisKKyAgICBwYXRoID0gR0NTUFJJTlRGKCIlcy9iYWNrZW5kL3ZpZi8lZC8lZC92aWZuYW1lIiwK KyAgICAgICAgICAgICAgICAgICAgIGxpYnhsX194c19nZXRfZG9tcGF0aChnYywgMCksIGRvbWlk LCBuaWMtPmRldmlkKTsKKyAgICByYyA9IGxpYnhsX194c19yZWFkX2NoZWNrZWQoZ2MsIFhCVF9O VUxMLCBwYXRoLCAmdmlmbmFtZSk7CisgICAgaWYgKCFyYyAmJiAhdmlmbmFtZSkgeworICAgICAg ICB2aWZuYW1lID0gbGlieGxfX2RldmljZV9uaWNfZGV2bmFtZShnYywgZG9taWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pYy0+ZGV2aWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5pYy0+bmljdHlwZSk7CisgICAg fQorCisgICAgcmV0dXJuIHZpZm5hbWU7Cit9CisKKy8qCisgKiB0aGUgc2NyaXB0IG5lZWRzIHRo ZSBmb2xsb3dpbmcgZW52ICYgYXJncworICogJHZpZm5hbWUKKyAqICRmb3J3YXJkZGV2CisgKiAk bW9kZShwcmltYXJ5L3NlY29uZGFyeSkKKyAqICRpbmRleAorICogJGJyaWRnZQorICogc2V0dXAv dGVhcmRvd24gYXMgY29tbWFuZCBsaW5lIGFyZy4KKyAqLworc3RhdGljIHZvaWQgc2V0dXBfYXN5 bmNfZXhlYyhsaWJ4bF9fY2hlY2twb2ludF9kZXZpY2UgKmRldiwgY2hhciAqb3AsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19jb2xvX3Byb3h5X3N0YXRlICpjcHMsIGludCBz aWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpjb2xvX3Byb3h5X3Njcmlw dCkKK3sKKyAgICBpbnQgYXJyYXlzaXplLCBuciA9IDA7CisgICAgY2hhciAqKmVudiA9IE5VTEws ICoqYXJncyA9IE5VTEw7CisgICAgbGlieGxfX2NvbG9fZGV2aWNlX25pYyAqY29sb19uaWMgPSBk ZXYtPmNvbmNyZXRlX2RhdGE7CisgICAgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlc19zdGF0ZSAq Y2RzID0gZGV2LT5jZHM7CisgICAgbGlieGxfX2FzeW5jX2V4ZWNfc3RhdGUgKmFlcyA9ICZkZXYt PmFvZGV2LmFlczsKKyAgICBjb25zdCBsaWJ4bF9kZXZpY2VfbmljICpuaWMgPSBkZXYtPmJhY2tl bmRfZGV2OworCisgICAgU1RBVEVfQU9fR0MoY2RzLT5hbyk7CisKKyAgICAvKiBDb252ZW5pZW5j ZSBhbGlhc2VzICovCisgICAgY29uc3QgY2hhciAqY29uc3QgdmlmID0gY29sb19uaWMtPnZpZjsK KworICAgIGFycmF5c2l6ZSA9IDExOworICAgIEdDTkVXX0FSUkFZKGVudiwgYXJyYXlzaXplKTsK KyAgICBlbnZbbnIrK10gPSAidmlmbmFtZSI7CisgICAgZW52W25yKytdID0gbGlieGxfX3N0cmR1 cChnYywgdmlmKTsKKyAgICBlbnZbbnIrK10gPSAiZm9yd2FyZGRldiI7CisgICAgZW52W25yKytd ID0gbGlieGxfX3N0cmR1cChnYywgbmljLT5mb3J3YXJkZGV2KTsKKyAgICBlbnZbbnIrK10gPSAi bW9kZSI7CisgICAgaWYgKHNpZGUgPT0gcHJpbWFyeSkKKyAgICAgICAgZW52W25yKytdID0gInBy aW1hcnkiOworICAgIGVsc2UKKyAgICAgICAgZW52W25yKytdID0gInNlY29uZGFyeSI7CisgICAg ZW52W25yKytdID0gImluZGV4IjsKKyAgICBlbnZbbnIrK10gPSBHQ1NQUklOVEYoIiVkIiwgY3Bz LT5pbmRleCk7CisgICAgZW52W25yKytdID0gImJyaWRnZSI7CisgICAgZW52W25yKytdID0gbGli eGxfX3N0cmR1cChnYywgbmljLT5icmlkZ2UpOworICAgIGVudltucisrXSA9IE5VTEw7CisgICAg YXNzZXJ0KG5yID09IGFycmF5c2l6ZSk7CisKKyAgICBhcnJheXNpemUgPSAzOyBuciA9IDA7Cisg ICAgR0NORVdfQVJSQVkoYXJncywgYXJyYXlzaXplKTsKKyAgICBhcmdzW25yKytdID0gY29sb19w cm94eV9zY3JpcHQ7CisgICAgYXJnc1tucisrXSA9IG9wOworICAgIGFyZ3NbbnIrK10gPSBOVUxM OworICAgIGFzc2VydChuciA9PSBhcnJheXNpemUpOworCisgICAgYWVzLT5hbyA9IGRldi0+Y2Rz LT5hbzsKKyAgICBhZXMtPndoYXQgPSBHQ1NQUklOVEYoIiVzICVzIiwgYXJnc1swXSwgYXJnc1sx XSk7CisgICAgYWVzLT5lbnYgPSBlbnY7CisgICAgYWVzLT5hcmdzID0gYXJnczsKKyAgICBhZXMt PnRpbWVvdXRfbXMgPSBMSUJYTF9IT1RQTFVHX1RJTUVPVVQgKiAxMDAwOworICAgIGFlcy0+c3Rk ZmRzWzBdID0gLTE7CisgICAgYWVzLT5zdGRmZHNbMV0gPSAtMTsKKyAgICBhZXMtPnN0ZGZkc1sy XSA9IC0xOworCisgICAgaWYgKCFzdHJjbXAob3AsICJ0ZWFyZG93biIpKQorICAgICAgICBhZXMt PmNhbGxiYWNrID0gY29sb19zYXZlX3RlYXJkb3duX3NjcmlwdF9jYjsKKyAgICBlbHNlCisgICAg ICAgIGFlcy0+Y2FsbGJhY2sgPSBjb2xvX3NhdmVfc2V0dXBfc2NyaXB0X2NiOworfQorCisvKiA9 PT09PT09PT09IHNldHVwKCkgYW5kIHRlYXJkb3duKCkgPT09PT09PT09PSAqLworc3RhdGljIHZv aWQgY29sb19uaWNfc2V0dXAobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fY2hlY2twb2ludF9kZXZp Y2UgKmRldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19jb2xvX3Byb3h5X3N0 YXRlICpjcHMsIGludCBzaWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqY29s b19wcm94eV9zY3JpcHQpCit7CisgICAgaW50IHJjOworICAgIGxpYnhsX19jb2xvX2RldmljZV9u aWMgKmNvbG9fbmljOworICAgIGNvbnN0IGxpYnhsX2RldmljZV9uaWMgKm5pYyA9IGRldi0+YmFj a2VuZF9kZXY7CisKKyAgICBTVEFURV9BT19HQyhkZXYtPmNkcy0+YW8pOworCisgICAgLyoKKyAg ICAgKiB0aGVycydzIG5vIHN1YmtpbmQgb2YgbmljIGRldmljZXMsIHNvIG5pYyBvcHMgaXMgYWx3 YXlzIG1hdGNoZWQKKyAgICAgKiB3aXRoIG5pYyBkZXZpY2VzLCB3ZSBiZWdpbiB0byBzZXR1cCB0 aGUgbmljIGRldmljZQorICAgICAqLworICAgIGRldi0+bWF0Y2hlZCA9IDE7CisKKyAgICBpZiAo IW5pYy0+Zm9yd2FyZGRldikgeworICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CisgICAgICAgIGdv dG8gb3V0OworICAgIH0KKworICAgIEdDTkVXKGNvbG9fbmljKTsKKyAgICBkZXYtPmNvbmNyZXRl X2RhdGEgPSBjb2xvX25pYzsKKyAgICBjb2xvX25pYy0+ZGV2aWQgPSBuaWMtPmRldmlkOworICAg IGNvbG9fbmljLT52aWYgPSBnZXRfdmlmbmFtZShkZXYsIG5pYyk7CisgICAgaWYgKCFjb2xvX25p Yy0+dmlmKSB7CisgICAgICAgIHJjID0gRVJST1JfRkFJTDsKKyAgICAgICAgZ290byBvdXQ7Cisg ICAgfQorCisgICAgc2V0dXBfYXN5bmNfZXhlYyhkZXYsICJzZXR1cCIsIGNwcywgc2lkZSwgY29s b19wcm94eV9zY3JpcHQpOworICAgIHJjID0gbGlieGxfX2FzeW5jX2V4ZWNfc3RhcnQoJmRldi0+ YW9kZXYuYWVzKTsKKyAgICBpZiAocmMpCisgICAgICAgIGdvdG8gb3V0OworCisgICAgcmV0dXJu OworCitvdXQ6CisgICAgZGV2LT5hb2Rldi5yYyA9IHJjOworICAgIGRldi0+YW9kZXYuY2FsbGJh Y2soZWdjLCAmZGV2LT5hb2Rldik7Cit9CisKK3N0YXRpYyB2b2lkIGNvbG9fc2F2ZV9zZXR1cF9z Y3JpcHRfY2IobGlieGxfX2VnYyAqZWdjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9fYXN5bmNfZXhlY19zdGF0ZSAqYWVzLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgcmMsIGludCBzdGF0dXMpCit7CisgICAgbGlieGxfX2Fv X2RldmljZSAqYW9kZXYgPSBDT05UQUlORVJfT0YoYWVzLCAqYW9kZXYsIGFlcyk7CisgICAgbGli eGxfX2NoZWNrcG9pbnRfZGV2aWNlICpkZXYgPSBDT05UQUlORVJfT0YoYW9kZXYsICpkZXYsIGFv ZGV2KTsKKyAgICBsaWJ4bF9fY29sb19kZXZpY2VfbmljICpjb2xvX25pYyA9IGRldi0+Y29uY3Jl dGVfZGF0YTsKKyAgICBsaWJ4bF9fY2hlY2twb2ludF9kZXZpY2VzX3N0YXRlICpjZHMgPSBkZXYt PmNkczsKKyAgICBjb25zdCBjaGFyICpvdXRfcGF0aF9iYXNlLCAqaG90cGx1Z19lcnJvciA9IE5V TEw7CisKKyAgICBFR0NfR0M7CisKKyAgICAvKiBDb252ZW5pZW5jZSBhbGlhc2VzICovCisgICAg Y29uc3QgdWludDMyX3QgZG9taWQgPSBjZHMtPmRvbWlkOworICAgIGNvbnN0IGludCBkZXZpZCA9 IGNvbG9fbmljLT5kZXZpZDsKKyAgICBjb25zdCBjaGFyICpjb25zdCB2aWYgPSBjb2xvX25pYy0+ dmlmOworCisgICAgaWYgKHN0YXR1cyAmJiAhcmMpCisgICAgICAgIHJjID0gRVJST1JfRkFJTDsK KyAgICBpZiAocmMpCisgICAgICAgIGdvdG8gb3V0OworCisgICAgb3V0X3BhdGhfYmFzZSA9IEdD U1BSSU5URigiJXMvY29sb19wcm94eS8lZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaWJ4bF9feHNfbGlieGxfcGF0aChnYywgZG9taWQpLCBkZXZpZCk7CisKKyAgICByYyA9IGxp YnhsX194c19yZWFkX2NoZWNrZWQoZ2MsIFhCVF9OVUxMLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHQ1NQUklOVEYoIiVzL2hvdHBsdWctZXJyb3IiLCBvdXRfcGF0aF9iYXNlKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhvdHBsdWdfZXJyb3IpOworICAgIGlm IChyYykKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICBpZiAoaG90cGx1Z19lcnJvcikgeworICAg ICAgICBMT0coRVJST1IsICJjb2xvX3Byb3h5IHNjcmlwdCAlcyBzZXR1cCBmYWlsZWQgZm9yIHZp ZiAlczogJXMiLAorICAgICAgICAgICAgYWVzLT5hcmdzWzBdLCB2aWYsIGhvdHBsdWdfZXJyb3Ip OworICAgICAgICByYyA9IEVSUk9SX0ZBSUw7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKwor ICAgIGlmIChzdGF0dXMpIHsKKyAgICAgICAgcmMgPSBFUlJPUl9GQUlMOworICAgICAgICBnb3Rv IG91dDsKKyAgICB9CisKKyAgICByYyA9IDA7CisKK291dDoKKyAgICBhb2Rldi0+cmMgPSByYzsK KyAgICBhb2Rldi0+Y2FsbGJhY2soZWdjLCBhb2Rldik7Cit9CisKK3N0YXRpYyB2b2lkIGNvbG9f bmljX3RlYXJkb3duKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlICpk ZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fY29sb19wcm94eV9zdGF0 ZSAqY3BzLCBpbnQgc2lkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmNv bG9fcHJveHlfc2NyaXB0KQoreworICAgIGludCByYzsKKyAgICBsaWJ4bF9fY29sb19kZXZpY2Vf bmljICpjb2xvX25pYyA9IGRldi0+Y29uY3JldGVfZGF0YTsKKworICAgIGlmICghY29sb19uaWMg fHwgIWNvbG9fbmljLT52aWYpIHsKKyAgICAgICAgLyogY29sbyBuaWMgaGFzIG5vdCB5ZXQgYmVl biBzZXQgdXAsIGp1c3QgcmV0dXJuICovCisgICAgICAgIHJjID0gMDsKKyAgICAgICAgZ290byBv dXQ7CisgICAgfQorCisgICAgc2V0dXBfYXN5bmNfZXhlYyhkZXYsICJ0ZWFyZG93biIsIGNwcywg c2lkZSwgY29sb19wcm94eV9zY3JpcHQpOworCisgICAgcmMgPSBsaWJ4bF9fYXN5bmNfZXhlY19z dGFydCgmZGV2LT5hb2Rldi5hZXMpOworICAgIGlmIChyYykKKyAgICAgICAgZ290byBvdXQ7CisK KyAgICByZXR1cm47CisKK291dDoKKyAgICBkZXYtPmFvZGV2LnJjID0gcmM7CisgICAgZGV2LT5h b2Rldi5jYWxsYmFjayhlZ2MsICZkZXYtPmFvZGV2KTsKK30KKworc3RhdGljIHZvaWQgY29sb19z YXZlX3RlYXJkb3duX3NjcmlwdF9jYihsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19hc3luY19leGVjX3N0YXRlICphZXMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYywgaW50IHN0YXR1 cykKK3sKKyAgICBsaWJ4bF9fYW9fZGV2aWNlICphb2RldiA9IENPTlRBSU5FUl9PRihhZXMsICph b2RldiwgYWVzKTsKKworICAgIGlmIChzdGF0dXMgJiYgIXJjKQorICAgICAgICByYyA9IEVSUk9S X0ZBSUw7CisgICAgZWxzZQorICAgICAgICByYyA9IDA7CisKKyAgICBhb2Rldi0+cmMgPSByYzsK KyAgICBhb2Rldi0+Y2FsbGJhY2soZWdjLCBhb2Rldik7Cit9CisKKy8qID09PT09PT09IHByaW1h cnkgPT09PT09PT0gKi8KK3N0YXRpYyB2b2lkIGNvbG9fbmljX3NhdmVfc2V0dXAobGlieGxfX2Vn YyAqZWdjLCBsaWJ4bF9fY2hlY2twb2ludF9kZXZpY2UgKmRldikKK3sKKyAgICBsaWJ4bF9fY29s b19zYXZlX3N0YXRlICpjc3MgPSBkZXYtPmNkcy0+Y29uY3JldGVfZGF0YTsKKworICAgIGNvbG9f bmljX3NldHVwKGVnYywgZGV2LCAmY3NzLT5jcHMsIHByaW1hcnksIGNzcy0+Y29sb19wcm94eV9z Y3JpcHQpOworfQorCitzdGF0aWMgdm9pZCBjb2xvX25pY19zYXZlX3RlYXJkb3duKGxpYnhsX19l Z2MgKmVnYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2NoZWNr cG9pbnRfZGV2aWNlICpkZXYpCit7CisgICAgbGlieGxfX2NvbG9fc2F2ZV9zdGF0ZSAqY3NzID0g ZGV2LT5jZHMtPmNvbmNyZXRlX2RhdGE7CisKKyAgICBjb2xvX25pY190ZWFyZG93bihlZ2MsIGRl diwgJmNzcy0+Y3BzLCBwcmltYXJ5LCBjc3MtPmNvbG9fcHJveHlfc2NyaXB0KTsKK30KKworY29u c3QgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlX2luc3RhbmNlX29wcyBjb2xvX3NhdmVfZGV2aWNl X25pYyA9IHsKKyAgICAua2luZCA9IExJQlhMX19ERVZJQ0VfS0lORF9WSUYsCisgICAgLnNldHVw ID0gY29sb19uaWNfc2F2ZV9zZXR1cCwKKyAgICAudGVhcmRvd24gPSBjb2xvX25pY19zYXZlX3Rl YXJkb3duLAorfTsKKworLyogPT09PT09PT0gc2Vjb25kYXJ5ID09PT09PT09ICovCitzdGF0aWMg dm9pZCBjb2xvX25pY19yZXN0b3JlX3NldHVwKGxpYnhsX19lZ2MgKmVnYywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlICpkZXYpCit7 CisgICAgbGlieGxfX2NvbG9fcmVzdG9yZV9zdGF0ZSAqY3JzID0gZGV2LT5jZHMtPmNvbmNyZXRl X2RhdGE7CisKKyAgICBjb2xvX25pY19zZXR1cChlZ2MsIGRldiwgJmNycy0+Y3BzLCBzZWNvbmRh cnksIGNycy0+Y29sb19wcm94eV9zY3JpcHQpOworfQorCitzdGF0aWMgdm9pZCBjb2xvX25pY19y ZXN0b3JlX3RlYXJkb3duKGxpYnhsX19lZ2MgKmVnYywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGlieGxfX2NoZWNrcG9pbnRfZGV2aWNlICpkZXYpCit7CisgICAgbGli eGxfX2NvbG9fcmVzdG9yZV9zdGF0ZSAqY3JzID0gZGV2LT5jZHMtPmNvbmNyZXRlX2RhdGE7CisK KyAgICBjb2xvX25pY190ZWFyZG93bihlZ2MsIGRldiwgJmNycy0+Y3BzLCBzZWNvbmRhcnksIGNy cy0+Y29sb19wcm94eV9zY3JpcHQpOworfQorCitjb25zdCBsaWJ4bF9fY2hlY2twb2ludF9kZXZp Y2VfaW5zdGFuY2Vfb3BzIGNvbG9fcmVzdG9yZV9kZXZpY2VfbmljID0geworICAgIC5raW5kID0g TElCWExfX0RFVklDRV9LSU5EX1ZJRiwKKyAgICAuc2V0dXAgPSBjb2xvX25pY19yZXN0b3JlX3Nl dHVwLAorICAgIC50ZWFyZG93biA9IGNvbG9fbmljX3Jlc3RvcmVfdGVhcmRvd24sCit9OwpkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhs X2ludGVybmFsLmgKaW5kZXggNDk0MGI1OS4uZGRhYWZjNiAxMDA2NDQKLS0tIGEvdG9vbHMvbGli eGwvbGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBA IC0zMTg0LDYgKzMxODQsNyBAQCB0eXBlZGVmIHN0cnVjdCBsaWJ4bF9fY29sb19zYXZlX3N0YXRl IGxpYnhsX19jb2xvX3NhdmVfc3RhdGU7CiBzdHJ1Y3QgbGlieGxfX2NvbG9fc2F2ZV9zdGF0ZSB7 CiAgICAgaW50IHNlbmRfZmQ7CiAgICAgaW50IHJlY3ZfZmQ7CisgICAgY2hhciAqY29sb19wcm94 eV9zY3JpcHQ7CiAKICAgICAvKiBwcml2YXRlICovCiAgICAgbGlieGxfX3N0cmVhbV9yZWFkX3N0 YXRlIHNyczsKQEAgLTM1MjMsNiArMzUyNCw3IEBAIHN0cnVjdCBsaWJ4bF9fZG9tYWluX2NyZWF0 ZV9zdGF0ZSB7CiAgICAgbGlieGxfYXN5bmNwcm9ncmVzc19ob3cgYW9wX2NvbnNvbGVfaG93Owog ICAgIC8qIHByaXZhdGUgdG8gZG9tYWluX2NyZWF0ZSAqLwogICAgIGludCBndWVzdF9kb21pZDsK KyAgICBjb25zdCBjaGFyICpjb2xvX3Byb3h5X3NjcmlwdDsKICAgICBsaWJ4bF9fZG9tYWluX2J1 aWxkX3N0YXRlIGJ1aWxkX3N0YXRlOwogICAgIGxpYnhsX19jb2xvX3Jlc3RvcmVfc3RhdGUgY3Jz OwogICAgIGxpYnhsX19jaGVja3BvaW50X2RldmljZXNfc3RhdGUgY2RzOwpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRs CmluZGV4IGEyMDc4ZDEuLjZiNTdhYmEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5 cGVzLmlkbAorKysgYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKQEAgLTU5OSw2ICs1OTks NyBAQCBsaWJ4bF9kZXZpY2VfbmljID0gU3RydWN0KCJkZXZpY2VfbmljIiwgWwogICAgICgicmF0 ZV9ieXRlc19wZXJfaW50ZXJ2YWwiLCB1aW50NjQpLAogICAgICgicmF0ZV9pbnRlcnZhbF91c2Vj cyIsIHVpbnQzMiksCiAgICAgKCJnYXRld2F5ZGV2Iiwgc3RyaW5nKSwKKyAgICAoImZvcndhcmRk ZXYiLCBzdHJpbmcpCiAgICAgXSkKIAogbGlieGxfZGV2aWNlX3BjaSA9IFN0cnVjdCgiZGV2aWNl X3BjaSIsIFsKLS0gCjEuOS4zCgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=