From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhongze Liu Subject: [PATCH v2 3/6] libxl:xl: add parsing code to parse "libxl_static_sshm" from xl config files Date: Sun, 27 Aug 2017 16:36:12 +0800 Message-ID: <20170827083615.15712-4-blackskygg@gmail.com> References: <20170827083615.15712-1-blackskygg@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170827083615.15712-1-blackskygg@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Stefano Stabellini , Wei Liu , Zhongze Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich List-Id: xen-devel@lists.xenproject.org QWRkIHRoZSBwYXJzaW5nIHV0aWxzIGZvciB0aGUgbmV3bHkgaW50cm9kdWNlZCBsaWJ4bF9zdGF0 aWNfc3NobSBzdHJ1Y3QKdG8gdGhlIGxpYnhsL2xpYnhsdV8qIGZhbWlseS4gQW5kIGFkZCByZWFs YXRlZCBwYXJzaW5nIGNvZGUgaW4geGwgdG8KcGFyc2UgdGhlIHN0cnVjdCBmcm9tIHhsIGNvbmZp ZyBmaWxlcy4gVGhpcyBpcyBmb3IgdGhlIHByb3Bvc2FsICJBbGxvdwpzZXR0aW5nIHVwIHNoYXJl ZCBtZW1vcnkgYXJlYXMgYmV0d2VlbiBWTXMgZnJvbSB4bCBjb25maWcgZmlsZSIgKHNlZSBbMV0p LgoKWzFdIGh0dHBzOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE3 LTA4L21zZzAzMjQyLmh0bWwKClNpZ25lZC1vZmYtYnk6IFpob25nemUgTGl1IDxibGFja3NreWdn QGdtYWlsLmNvbT4KCkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t PgpDYzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSWFu IEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9y YWNsZS5jb20+CkNjOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+ CkNjOiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJp eC5jb20+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogeGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKLS0tCnYyOgogICogZml4IGFsbCB0aGUgJ1lvZGEgY29uZGl0aW9u cycKICAqIHVzZSB0aGUgcHJlZGVmaW5lZCBYQ19QQUdFX01BU0sgaW5zdGVhZCBvZiBkZWZpbmlu ZyBhIG5ldyBvbmUKLS0tCiB0b29scy9saWJ4bC9NYWtlZmlsZSAgICAgIHwgICAyICstCiB0b29s cy9saWJ4bC9saWJ4bHVfc3NobS5jIHwgMjEwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIHRvb2xzL2xpYnhsL2xpYnhsdXRpbC5oICAgfCAgIDYgKysKIHRv b2xzL3hsL3hsX3BhcnNlLmMgICAgICAgfCAgMjQgKysrKystCiA0IGZpbGVzIGNoYW5nZWQsIDI0 MCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xz L2xpYnhsL2xpYnhsdV9zc2htLmMKCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9NYWtlZmlsZSBi L3Rvb2xzL2xpYnhsL01ha2VmaWxlCmluZGV4IDA4MmFmOGY3MTYuLjNiNjNmYjJjYWQgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL2xpYnhsL01ha2VmaWxlCisrKyBiL3Rvb2xzL2xpYnhsL01ha2VmaWxlCkBA IC0xNzUsNyArMTc1LDcgQEAgQVVUT0lOQ1M9IGxpYnhsdV9jZmdfeS5oIGxpYnhsdV9jZmdfbC5o IF9saWJ4bF9saXN0LmggX3BhdGhzLmggXAogQVVUT1NSQ1M9IGxpYnhsdV9jZmdfeS5jIGxpYnhs dV9jZmdfbC5jCiBBVVRPU1JDUyArPSBfbGlieGxfc2F2ZV9tc2dzX2NhbGxvdXQuYyBfbGlieGxf c2F2ZV9tc2dzX2hlbHBlci5jCiBMSUJYTFVfT0JKUyA9IGxpYnhsdV9jZmdfeS5vIGxpYnhsdV9j ZmdfbC5vIGxpYnhsdV9jZmcubyBcCi0JbGlieGx1X2Rpc2tfbC5vIGxpYnhsdV9kaXNrLm8gbGli eGx1X3ZpZi5vIGxpYnhsdV9wY2kubworCWxpYnhsdV9kaXNrX2wubyBsaWJ4bHVfZGlzay5vIGxp YnhsdV92aWYubyBsaWJ4bHVfcGNpLm8gbGlieGx1X3NzaG0ubwogJChMSUJYTFVfT0JKUyk6IENG TEFHUyArPSAkKENGTEFHU19saWJ4ZW5jdHJsKSAjIEZvciB4ZW50b29sbG9nLmgKIAogJChURVNU X1BST0dfT0JKUykgX2xpYnhsLmFwaS1mb3ItY2hlY2s6IENGTEFHUyArPSAkKENGTEFHU19saWJ4 ZW50b29sbG9nKQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGx1X3NzaG0uYyBiL3Rvb2xz L2xpYnhsL2xpYnhsdV9zc2htLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uNTI3NmZmOTM5NQotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsdV9zc2ht LmMKQEAgLTAsMCArMSwyMTAgQEAKKyNpbmNsdWRlICJsaWJ4bF9vc2RlcHMuaCIgLyogbXVzdCBj b21lIGJlZm9yZSBhbnkgb3RoZXIgaGVhZGVycyAqLworI2luY2x1ZGUgImxpYnhsdV9pbnRlcm5h bC5oIgorI2luY2x1ZGUgInhlbmN0cmwuaCIKKworI2luY2x1ZGUgPGN0eXBlLmg+CisKKyNkZWZp bmUgUEFSQU1fUkUoRVhQUikgIl5cXHMqIiBFWFBSICJcXHMqKCx8JCkiCisjZGVmaW5lIFdPUkRf UkUgICAgICAgICAiKFtfYS16QS1aMC05XSspIgorI2RlZmluZSBFUVVfUkUgICAgICAgICBQQVJB TV9SRShXT1JEX1JFICJcXHMqPVxccyoiIFdPUkRfUkUpCisKKyNkZWZpbmUgUkVUX0lOVkFMKG1z ZywgY3Vycl9zdHIpICBkbyB7ICAgICAgICAgICAgICBcCisgICAgICAgIHhsdV9fc3NobV9lcnIo Y2ZnLCBtc2csIGN1cnJfc3RyKTsgICAgICAgICAgXAorICAgICAgICByYyA9IEVJTlZBTDsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgZ290byBvdXQ7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSgwKQorCisvKiBzZXQgYSBt ZW1iZXIgaW4gbGlieGxfc3RhdGljX3NobSBhbmQgcmVwb3J0IGFuIGVycm9yIGlmIGl0J3MgcmVz cGVjaWZpZWQsCisgKiBAY3Vycl9zdHIgaW5kaWNhdGVzIHRoZSBoZWFkIG9mIHRoZSByZW1haW5p bmcgc3RyaW5nLiAqLworI2RlZmluZSBTRVRfVkFMKHZhciwgbmFtZSwgdHlwZSwgdmFsdWUsIGN1 cnJfc3RyKSAgZG8geyAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoKHZhcikgIT0gTElC WExfU1NITV8jI3R5cGUjI19VTktOT1dOICYmICh2YXIpICE9IHZhbHVlKSB7ICAgXAorICAgICAg ICAgICAgUkVUX0lOVkFMKCJcIiIgbmFtZSAiXCIgcmVzcGVjaWZpZWQiLCBjdXJyX3N0cik7ICAg ICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAodmFyKSA9IHZhbHVlOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hp bGUoMCkKKworCitzdGF0aWMgdm9pZCB4bHVfX3NzaG1fZXJyKFhMVV9Db25maWcgKmNmZywgY29u c3QgY2hhciAqbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpjdXJy X3N0cikgeworICAgIGZwcmludGYoY2ZnLT5yZXBvcnQsCisgICAgICAgICAgICAiJXM6IGNvbmZp ZyBwYXJzaW5nIGVycm9yIGluIHNoYXJlZF9tZW1vcnk6ICVzIGF0ICclcydcbiIsCisgICAgICAg ICAgICBjZmctPmNvbmZpZ19zb3VyY2UsIG1zZywgY3Vycl9zdHIpOworfQorCitzdGF0aWMgaW50 IHBhcnNlX3Byb3QoWExVX0NvbmZpZyAqY2ZnLCBjaGFyICpzdHIsIGxpYnhsX3NzaG1fcHJvdCAq cHJvdCkKK3sKKyAgICBpbnQgcmM7CisgICAgbGlieGxfc3NobV9wcm90IG5ld19wcm90OworCisg ICAgaWYgKCFzdHJjbXAoc3RyLCAicnciKSkgeworICAgICAgICBuZXdfcHJvdCA9IExJQlhMX1NT SE1fUFJPVF9SVzsKKyAgICB9IGVsc2UgeworICAgICAgICBSRVRfSU5WQUwoImludmFsaWQgcGVy bWlzc2lvbiBmbGFncyIsIHN0cik7CisgICAgfQorCisgICAgU0VUX1ZBTCgqcHJvdCwgInBlcm1p c3Npb24gZmxhZ3MiLCBQUk9ULCBuZXdfcHJvdCwgc3RyKTsKKworICAgIHJjID0gMDsKKworIG91 dDoKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQgcGFyc2VfY2FjaGVwb2xpY3koWExV X0NvbmZpZyAqY2ZnLCBjaGFyICpzdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YnhsX3NzaG1fY2FjaGVwb2xpY3kgKnBvbGljeSkKK3sKKyAgICBpbnQgcmM7CisgICAgbGlieGxf c3NobV9jYWNoZXBvbGljeSBuZXdfcG9saWN5OworCisgICAgaWYgKCFzdHJjbXAoc3RyLCAiQVJN X25vcm1hbCIpKSB7CisgICAgICAgIG5ld19wb2xpY3kgPSBMSUJYTF9TU0hNX0NBQ0hFUE9MSUNZ X0FSTV9OT1JNQUw7CisgICAgfSBlbHNlIGlmICghc3RyY21wKHN0ciwgIng4Nl9ub3JtYWwiKSkg eworICAgICAgICBuZXdfcG9saWN5ID0gTElCWExfU1NITV9DQUNIRVBPTElDWV9YODZfTk9STUFM OworICAgIH0gZWxzZSB7CisgICAgICAgIFJFVF9JTlZBTCgiaW52YWxpZCBjYWNoZSBwb2xpY3ki LCBzdHIpOworICAgIH0KKworICAgIFNFVF9WQUwoKnBvbGljeSwgImNhY2hlIHBvbGljeSIsIENB Q0hFUE9MSUNZLCBuZXdfcG9saWN5LCBzdHIpOworICAgIHJjID0gMDsKKworIG91dDoKKyAgICBy ZXR1cm4gcmM7Cit9CisKKy8qIGhhbmRsZSBrZXkgPSB2YWx1ZSBwYWlycyAqLworc3RhdGljIGlu dCBoYW5kbGVfZXF1KFhMVV9Db25maWcgKmNmZywgY2hhciAqa2V5LCBjaGFyICp2YWwsCisgICAg ICAgICAgICAgICAgICAgICAgbGlieGxfc3RhdGljX3NobSAqc3NobSkKK3sKKyAgICBpbnQgcmM7 CisKKyAgICBpZiAoIXN0cmNtcChrZXksICJpZCIpKSB7CisgICAgICAgIGlmIChzdHJsZW4odmFs KSA+IExJQlhMX1NTSE1fSURfTUFYTEVOKSB7IFJFVF9JTlZBTCgiaWQgdG9vIGxvbmciLCB2YWwp OyB9CisgICAgICAgIGlmIChzc2htLT5pZCAmJiAhc3RyY21wKHNzaG0tPmlkLCB2YWwpKSB7Cisg ICAgICAgICAgICBSRVRfSU5WQUwoImlkIHJlc3BlY2lmaWVkIiwgdmFsKTsKKyAgICAgICAgfQor CisgICAgICAgIHNzaG0tPmlkID0gc3RyZHVwKHZhbCk7CisgICAgICAgIGlmICghc3NobS0+aWQp IHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAic3NobSBwYXJzZXIgb3V0IG9mIG1lbW9y eVxuIik7CisgICAgICAgICAgICByYyA9IEVOT01FTTsKKyAgICAgICAgICAgIGdvdG8gb3V0Owor ICAgICAgICB9CisgICAgfSBlbHNlIGlmICghc3RyY21wKGtleSwgInJvbGUiKSkgeworICAgICAg ICBsaWJ4bF9zc2htX3JvbGUgbmV3X3JvbGU7CisKKyAgICAgICAgaWYgKCFzdHJjbXAoIm1hc3Rl ciIsIHZhbCkpIHsKKyAgICAgICAgICAgIG5ld19yb2xlID0gTElCWExfU1NITV9ST0xFX01BU1RF UjsKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKCJzbGF2ZSIsIHZhbCkpIHsKKyAgICAgICAg ICAgIG5ld19yb2xlID0gTElCWExfU1NITV9ST0xFX1NMQVZFOworICAgICAgICB9IGVsc2Ugewor ICAgICAgICAgICAgUkVUX0lOVkFMKCJpbnZhbGlkIHJvbGUiLCB2YWwpOworICAgICAgICB9CisK KyAgICAgICAgU0VUX1ZBTChzc2htLT5yb2xlLCAicm9sZSIsIFJPTEUsIG5ld19yb2xlLCB2YWwp OworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJiZWdpbiIpIHx8CisgICAgICAgICAgICAg ICAhc3RyY21wKGtleSwgImVuZCIpIHx8CisgICAgICAgICAgICAgICAhc3RyY21wKGtleSwgIm9m ZnNldCIpKSB7CisgICAgICAgIGNoYXIgKmVuZHB0cjsKKyAgICAgICAgaW50IGJhc2UgPSAxMDsK KyAgICAgICAgdWludDY0X3QgbmV3X2FkZHI7CisKKyAgICAgICAgLyogQ291bGQgYmUgaW4gaGV4 IGZvcm0uIE5vdGUgdGhhdCB3ZSBkb24ndCBuZWVkIHRvIGNoZWNrIHRoZSBsZW5ndGggaGVyZSwK KyAgICAgICAgICogZm9yIHZhbFtdIGlzIE5VTEwtdGVybWluYXRlZCAqLworICAgICAgICBpZiAo dmFsWzBdID09ICcwJyAmJiB2YWxbMV0gPT0gJ3gnKSB7IGJhc2UgPSAxNjsgfQorICAgICAgICBu ZXdfYWRkciA9IHN0cnRvdWxsKHZhbCwgJmVuZHB0ciwgYmFzZSk7CisgICAgICAgIGlmIChlcnJu byA9PSBFUkFOR0UgfHwgKmVuZHB0cikKKyAgICAgICAgICAgIFJFVF9JTlZBTCgiaW52YWxpZCBi ZWdpbi9lbmQvb2Zmc2V0IiwgdmFsKTsKKyAgICAgICAgaWYgKG5ld19hZGRyICYgflhDX1BBR0Vf TUFTSykKKyAgICAgICAgICAgIFJFVF9JTlZBTCgiYmVnaW4vZW5kL29mZnNldCBpcyBub3QgYSBt dWx0aXBsZSBvZiA0SyIsIHZhbCk7CisKKyAgICAgICAgLyogYmVnaW4gb3IgZW5kICovCisgICAg ICAgIGlmIChrZXlbMF0gPT0gJ2InKSB7CisgICAgICAgICAgICBTRVRfVkFMKHNzaG0tPmJlZ2lu LCAiYmVnaW5uaW5nIGFkZHJlc3MiLCBSQU5HRSwgbmV3X2FkZHIsIHZhbCk7CisgICAgICAgIH0g ZWxzZSBpZihrZXlbMF0gPT0gJ2UnKXsKKyAgICAgICAgICAgIFNFVF9WQUwoc3NobS0+ZW5kLCAi ZW5kaW5nIGFkZHJlc3MiLCBSQU5HRSwgbmV3X2FkZHIsIHZhbCk7CisgICAgICAgIH0gZWxzZSB7 CisgICAgICAgICAgICBTRVRfVkFMKHNzaG0tPm9mZnNldCwgIm9mZnNldCIsIFJBTkdFLCBuZXdf YWRkciwgdmFsKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJwcm90 IikpIHsKKyAgICAgICAgcmMgPSBwYXJzZV9wcm90KGNmZywgdmFsLCAmc3NobS0+cHJvdCk7Cisg ICAgICAgIGlmIChyYykgeyBnb3RvIG91dDsgfQorICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXks ICJjYWNoZV9wb2xpY3kiKSkgeworICAgICAgICByYyA9IHBhcnNlX2NhY2hlcG9saWN5KGNmZywg dmFsLCAmc3NobS0+Y2FjaGVfcG9saWN5KTsKKyAgICAgICAgaWYgKHJjKSB7IGdvdG8gb3V0OyB9 CisgICAgfSBlbHNlIHsKKyAgICAgICAgUkVUX0lOVkFMKCJpbnZhbGlkIG9wdGlvbiIsIGtleSk7 CisgICAgfQorCisgICAgcmMgPSAwOworCisgb3V0OgorICAgIHJldHVybiByYzsKK30KKworaW50 IHhsdV9zc2htX3BhcnNlKFhMVV9Db25maWcgKmNmZywgY29uc3QgY2hhciAqc3BlYywKKyAgICAg ICAgICAgICAgICAgICBsaWJ4bF9zdGF0aWNfc2htICpzc2htKQoreworICAgIGludCByYzsKKyAg ICByZWdleF90IGVxdV9yZWM7CisgICAgY2hhciAqYnVmMiA9IE5VTEwsICpwdHIgPSBOVUxMOwor ICAgIHJlZ21hdGNoX3QgcG1hdGNoWzNdOworCisgICAgcmMgPSByZWdjb21wKCZlcXVfcmVjLCBF UVVfUkUsIFJFR19FWFRFTkRFRCk7CisgICAgaWYgKHJjKSB7CisgICAgICAgIGZwcmludGYoc3Rk ZXJyLCAic3NobSBwYXJzZXIgZmFpbGVkIHRvIGluaXRpYWxpemVcbiIpOworICAgICAgICBnb3Rv IG91dDsKKyAgICB9CisKKyAgICBidWYyID0gcHRyID0gc3RyZHVwKHNwZWMpOworICAgIGlmICgh YnVmMikgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInNzaG0gcGFyc2VyIG91dCBvZiBtZW1v cnlcbiIpOworICAgICAgICByYyA9IEVOT01FTTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQor CisgICAgLyogbWFpbiBwYXJzaW5nIGxvb3AgKi8KKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAg ICBpZiAoISpwdHIpIHsgYnJlYWs7IH0KKyAgICAgICAgaWYgKHJlZ2V4ZWMoJmVxdV9yZWMsIHB0 ciwgMywgcG1hdGNoLCAwKSkKKyAgICAgICAgICAgIFJFVF9JTlZBTCgidW5yZWNvZ25pemVkIHRv a2VuIiwgcHRyKTsKKworICAgICAgICBwdHJbcG1hdGNoWzFdLnJtX2VvXSA9ICdcMCc7CisgICAg ICAgIHB0cltwbWF0Y2hbMl0ucm1fZW9dID0gJ1wwJzsKKyAgICAgICAgcmMgPSBoYW5kbGVfZXF1 KGNmZywgcHRyICsgcG1hdGNoWzFdLnJtX3NvLAorICAgICAgICAgICAgICAgICAgICAgICAgcHRy ICsgcG1hdGNoWzJdLnJtX3NvLCBzc2htKTsKKyAgICAgICAgaWYgKHJjKSB7IGdvdG8gb3V0OyB9 CisKKyAgICAgICAgcHRyICs9IHBtYXRjaFswXS5ybV9lbzsKKyAgICB9CisKKyAgICBpZiAoKnB0 cikgeyBSRVRfSU5WQUwoImludmFsaWQgc3ludGF4IiwgcHRyKTsgfQorCisgICAgLyogZG8gc29t ZSBlYXJseSBjaGVja3MgKi8KKyAgICBpZiAoIXNzaG0tPmlkKSB7CisgICAgICAgIFJFVF9JTlZB TCgiaWQgbm90IHNwZWNpZmllZCIsIHNwZWMpOworICAgIH0KKyAgICBpZiAoc3NobS0+YmVnaW4g PT0gTElCWExfU1NITV9SQU5HRV9VTktOT1dOKSB7CisgICAgICAgIFJFVF9JTlZBTCgiYmVnaW4g YWRkcmVzcyBub3Qgc3BlY2lmaWVkIiwgc3BlYyk7CisgICAgfQorICAgIGlmIChzc2htLT5lbmQg PT0gTElCWExfU1NITV9SQU5HRV9VTktOT1dOKSB7CisgICAgICAgIFJFVF9JTlZBTCgiZW5kIGFk ZHJlc3Mgbm90IHNwZWNpZmllZCIsIHNwZWMpOworICAgIH0KKyAgICBpZiAoc3NobS0+YmVnaW4g PiBzc2htLT5lbmQpIHsKKyAgICAgICAgUkVUX0lOVkFMKCJiZWdpbiBhZGRyZXNzIGxhcmdlciB0 aGF0IGVuZCBhZGRyZXNzIiwgc3BlYyk7CisgICAgfQorCisgICAgcmMgPSAwOworCisgb3V0Ogor ICAgIGlmIChidWYyKSB7IGZyZWUoYnVmMik7IH0KKyAgICByZWdmcmVlKCZlcXVfcmVjKTsKKyAg ICByZXR1cm4gcmM7Cit9CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisg KiBjLWJhc2ljLW9mZnNldDogNAorICogaW5kZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6Cisg Ki8KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsdXRpbC5oIGIvdG9vbHMvbGlieGwvbGli eGx1dGlsLmgKaW5kZXggZTgxYjY0NGMwMS4uZWUzOWNiNWJkYyAxMDA2NDQKLS0tIGEvdG9vbHMv bGlieGwvbGlieGx1dGlsLmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGx1dGlsLmgKQEAgLTExOCw2 ICsxMTgsMTIgQEAgaW50IHhsdV9yZG1fcGFyc2UoWExVX0NvbmZpZyAqY2ZnLCBsaWJ4bF9yZG1f cmVzZXJ2ZSAqcmRtLCBjb25zdCBjaGFyICpzdHIpOwogaW50IHhsdV92aWZfcGFyc2VfcmF0ZShY TFVfQ29uZmlnICpjZmcsIGNvbnN0IGNoYXIgKnJhdGUsCiAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX2RldmljZV9uaWMgKm5pYyk7CiAKKy8qCisgKiBzdGF0aWMgc2hhcmVkIG1lbW9yeSBz cGVjaWZpY2F0aW9uIHBhcnNpbmcKKyAqLworaW50IHhsdV9zc2htX3BhcnNlKFhMVV9Db25maWcg KmNmZywgY29uc3QgY2hhciAqc3BlYywKKyAgICAgICAgICAgICAgICAgICBsaWJ4bF9zdGF0aWNf c2htICpzc2htKTsKKwogI2VuZGlmIC8qIExJQlhMVVRJTF9IICovCiAKIC8qCmRpZmYgLS1naXQg YS90b29scy94bC94bF9wYXJzZS5jIGIvdG9vbHMveGwveGxfcGFyc2UuYwppbmRleCA1YzJiZjE3 MjIyLi44MmQ5NTViOGI5IDEwMDY0NAotLS0gYS90b29scy94bC94bF9wYXJzZS5jCisrKyBiL3Rv b2xzL3hsL3hsX3BhcnNlLmMKQEAgLTgxMyw3ICs4MTMsNyBAQCB2b2lkIHBhcnNlX2NvbmZpZ19k YXRhKGNvbnN0IGNoYXIgKmNvbmZpZ19zb3VyY2UsCiAgICAgbG9uZyBsLCB2Y3B1cyA9IDA7CiAg ICAgWExVX0NvbmZpZyAqY29uZmlnOwogICAgIFhMVV9Db25maWdMaXN0ICpjcHVzLCAqdmJkcywg Km5pY3MsICpwY2lzLCAqY3ZmYnMsICpjcHVpZHMsICp2dHBtcywKLSAgICAgICAgICAgICAgICAg ICAqdXNiY3RybHMsICp1c2JkZXZzLCAqcDlkZXZzOworICAgICAgICAgICAgICAgICAgICp1c2Jj dHJscywgKnVzYmRldnMsICpwOWRldnMsICpzc2htczsKICAgICBYTFVfQ29uZmlnTGlzdCAqY2hh bm5lbHMsICppb3BvcnRzLCAqaXJxcywgKmlvbWVtLCAqdmlyaWRpYW4sICpkdGRldnMsCiAgICAg ICAgICAgICAgICAgICAgKm1jYV9jYXBzOwogICAgIGludCBudW1faW9wb3J0cywgbnVtX2lycXMs IG51bV9pb21lbSwgbnVtX2NwdXMsIG51bV92aXJpZGlhbiwgbnVtX21jYV9jYXBzOwpAQCAtMTM5 Miw2ICsxMzkyLDI4IEBAIHZvaWQgcGFyc2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmln X3NvdXJjZSwKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmICgheGx1X2NmZ19nZXRfbGlzdCAo Y29uZmlnLCAic3RhdGljX3NobSIsICZzc2htcywgMCwgMCkpIHsKKyAgICAgICAgZF9jb25maWct Pm51bV9zc2htcyA9IDA7CisgICAgICAgIGRfY29uZmlnLT5zc2htcyA9IE5VTEw7CisgICAgICAg IHdoaWxlICgoYnVmID0geGx1X2NmZ19nZXRfbGlzdGl0ZW0gKHNzaG1zLCBkX2NvbmZpZy0+bnVt X3NzaG1zKSkgIT0gTlVMTCkgeworICAgICAgICAgICAgbGlieGxfc3RhdGljX3NobSAqc3NobTsK KyAgICAgICAgICAgIGNoYXIgKmJ1ZjIgPSBzdHJkdXAoYnVmKTsKKyAgICAgICAgICAgIGludCBy ZXQ7CisKKyAgICAgICAgICAgIHNzaG0gPSBBUlJBWV9FWFRFTkRfSU5JVF9OT0RFVklEKGRfY29u ZmlnLT5zc2htcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRfY29uZmlnLT5udW1fc3NobXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9zdGF0aWNfc2htX2luaXQpOworICAgICAgICAgICAgcmV0ID0geGx1 X3NzaG1fcGFyc2UoY29uZmlnLCBidWYyLCBzc2htKTsKKyAgICAgICAgICAgIGlmIChyZXQpIHsK KyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICJ4bDogSW52YWxpZCBhcmd1bWVudCBmb3Igc3RhdGljX3NobTogJXMiLCBidWYyKTsKKyAgICAg ICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg ICAgIGZyZWUoYnVmMik7CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAoIXhsdV9jZmdfZ2V0 X2xpc3QoY29uZmlnLCAicDkiLCAmcDlkZXZzLCAwLCAwKSkgewogICAgICAgICBsaWJ4bF9kZXZp Y2VfcDkgKnA5OwogICAgICAgICBjaGFyICpzZWN1cml0eV9tb2RlbCA9IE5VTEw7Ci0tIAoyLjE0 LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK