From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhongze Liu Subject: [PATCH 3/6] libxl:xl: add parsing code to parse "libxl_static_sshm" from xl config files Date: Wed, 23 Aug 2017 02:08:37 +0800 Message-ID: <20170822180840.20981-4-blackskygg@gmail.com> References: <20170822180840.20981-1-blackskygg@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170822180840.20981-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 LgoKWzFdIGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2 ZWwvMjAxNy0wNy9tc2cwMzA0Ny5odG1sCgpTaWduZWQtb2ZmLWJ5OiBaaG9uZ3plIExpdSA8Ymxh Y2tza3lnZ0BnbWFpbC5jb20+CgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0 cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4K Q2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQu d2lsa0BvcmFjbGUuY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJu ZWwub3JnPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1 MkBjaXRyaXguY29tPgpDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ2M6 IHhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCi0tLQogdG9vbHMvbGlieGwvTWFrZWZpbGUgICAgICB8 ICAgMiArLQogdG9vbHMvbGlieGwvbGlieGx1X3NzaG0uYyB8IDIxMCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0b29scy9saWJ4bC9saWJ4bHV0aWwuaCAg IHwgICA2ICsrCiB0b29scy94bC94bF9wYXJzZS5jICAgICAgIHwgIDI0ICsrKysrLQogNCBmaWxl cyBjaGFuZ2VkLCAyNDAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0b29scy9saWJ4bC9saWJ4bHVfc3NobS5jCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGli eGwvTWFrZWZpbGUgYi90b29scy9saWJ4bC9NYWtlZmlsZQppbmRleCAwODJhZjhmNzE2Li4zYjYz ZmIyY2FkIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9NYWtlZmlsZQorKysgYi90b29scy9saWJ4 bC9NYWtlZmlsZQpAQCAtMTc1LDcgKzE3NSw3IEBAIEFVVE9JTkNTPSBsaWJ4bHVfY2ZnX3kuaCBs aWJ4bHVfY2ZnX2wuaCBfbGlieGxfbGlzdC5oIF9wYXRocy5oIFwKIEFVVE9TUkNTPSBsaWJ4bHVf Y2ZnX3kuYyBsaWJ4bHVfY2ZnX2wuYwogQVVUT1NSQ1MgKz0gX2xpYnhsX3NhdmVfbXNnc19jYWxs b3V0LmMgX2xpYnhsX3NhdmVfbXNnc19oZWxwZXIuYwogTElCWExVX09CSlMgPSBsaWJ4bHVfY2Zn X3kubyBsaWJ4bHVfY2ZnX2wubyBsaWJ4bHVfY2ZnLm8gXAotCWxpYnhsdV9kaXNrX2wubyBsaWJ4 bHVfZGlzay5vIGxpYnhsdV92aWYubyBsaWJ4bHVfcGNpLm8KKwlsaWJ4bHVfZGlza19sLm8gbGli eGx1X2Rpc2subyBsaWJ4bHVfdmlmLm8gbGlieGx1X3BjaS5vIGxpYnhsdV9zc2htLm8KICQoTElC WExVX09CSlMpOiBDRkxBR1MgKz0gJChDRkxBR1NfbGlieGVuY3RybCkgIyBGb3IgeGVudG9vbGxv Zy5oCiAKICQoVEVTVF9QUk9HX09CSlMpIF9saWJ4bC5hcGktZm9yLWNoZWNrOiBDRkxBR1MgKz0g JChDRkxBR1NfbGlieGVudG9vbGxvZykKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsdV9z c2htLmMgYi90b29scy9saWJ4bC9saWJ4bHVfc3NobS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLjg2NDc2NjUyMTMKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9saWJ4 bC9saWJ4bHVfc3NobS5jCkBAIC0wLDAgKzEsMjEwIEBACisjaW5jbHVkZSAibGlieGxfb3NkZXBz LmgiIC8qIG11c3QgY29tZSBiZWZvcmUgYW55IG90aGVyIGhlYWRlcnMgKi8KKyNpbmNsdWRlICJs aWJ4bHVfaW50ZXJuYWwuaCIKKworI2luY2x1ZGUgPGN0eXBlLmg+CisKKyNkZWZpbmUgUEFSQU1f UkUoRVhQUikgIl5cXHMqIiBFWFBSICJcXHMqKCx8JCkiCisjZGVmaW5lIFdPUkRfUkUgICAgICAg ICAiKFtfYS16QS1aMC05XSspIgorI2RlZmluZSBFUVVfUkUgICAgICAgICBQQVJBTV9SRShXT1JE X1JFICJcXHMqPVxccyoiIFdPUkRfUkUpCisKKyNkZWZpbmUgUEFHRV9TSVpFX01BU0sgKCh1aW50 NjRfdCkweGZmZikKKworI2RlZmluZSBSRVRfSU5WQUwobXNnLCBjdXJyX3N0cikgIGRvIHsgICAg ICAgICAgICAgIFwKKyAgICAgICAgeGx1X19zc2htX2VycihjZmcsIG1zZywgY3Vycl9zdHIpOyAg ICAgICAgICBcCisgICAgICAgIHJjID0gRUlOVkFMOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICBnb3RvIG91dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICB9IHdoaWxlKDApCisKKy8qIHNldCBhIG1lbWJlciBpbiBsaWJ4bF9zdGF0aWNf c2htIGFuZCByZXBvcnQgYW4gZXJyb3IgaWYgaXQncyByZXNwZWNpZmllZCwKKyAqIEBjdXJyX3N0 ciBpbmRpY2F0ZXMgdGhlIGhlYWQgb2YgdGhlIHJlbWFpbmluZyBzdHJpbmcuICovCisjZGVmaW5l IFNFVF9WQUwodmFyLCBuYW1lLCB0eXBlLCB2YWx1ZSwgY3Vycl9zdHIpICBkbyB7ICAgICAgICAg ICAgICAgICBcCisgICAgICAgIGlmICgodmFyKSAhPSBMSUJYTF9TU0hNXyMjdHlwZSMjX1VOS05P V04gJiYgKHZhcikgIT0gdmFsdWUpIHsgICBcCisgICAgICAgICAgICBSRVRfSU5WQUwoIlwiIiBu YW1lICJcIiByZXNwZWNpZmllZCIsIGN1cnJfc3RyKTsgICAgICAgICAgICBcCisgICAgICAgIH0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisgICAgICAgICh2YXIpID0gdmFsdWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSgwKQorCisKK3N0YXRpYyB2b2lk IHhsdV9fc3NobV9lcnIoWExVX0NvbmZpZyAqY2ZnLCBjb25zdCBjaGFyICptc2csCisgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmN1cnJfc3RyKSB7CisgICAgZnByaW50Zihj ZmctPnJlcG9ydCwKKyAgICAgICAgICAgICIlczogY29uZmlnIHBhcnNpbmcgZXJyb3IgaW4gc2hh cmVkX21lbW9yeTogJXMgYXQgJyVzJ1xuIiwKKyAgICAgICAgICAgIGNmZy0+Y29uZmlnX3NvdXJj ZSwgbXNnLCBjdXJyX3N0cik7Cit9CisKK3N0YXRpYyBpbnQgcGFyc2VfcHJvdChYTFVfQ29uZmln ICpjZmcsIGNoYXIgKnN0ciwgbGlieGxfc3NobV9wcm90ICpwcm90KQoreworICAgIGludCByYzsK KyAgICBsaWJ4bF9zc2htX3Byb3QgbmV3X3Byb3Q7CisKKyAgICBpZiAoIXN0cmNtcChzdHIsICJy dyIpKSB7CisgICAgICAgIG5ld19wcm90ID0gTElCWExfU1NITV9QUk9UX1JXOworICAgIH0gZWxz ZSB7CisgICAgICAgIFJFVF9JTlZBTCgiaW52YWxpZCBwZXJtaXNzaW9uIGZsYWdzIiwgc3RyKTsK KyAgICB9CisKKyAgICBTRVRfVkFMKCpwcm90LCAicGVybWlzc2lvbiBmbGFncyIsIFBST1QsIG5l d19wcm90LCBzdHIpOworCisgICAgcmMgPSAwOworCisgb3V0OgorICAgIHJldHVybiByYzsKK30K Kworc3RhdGljIGludCBwYXJzZV9jYWNoZXBvbGljeShYTFVfQ29uZmlnICpjZmcsIGNoYXIgKnN0 ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfc3NobV9jYWNoZXBvbGljeSAq cG9saWN5KQoreworICAgIGludCByYzsKKyAgICBsaWJ4bF9zc2htX2NhY2hlcG9saWN5IG5ld19w b2xpY3k7CisKKyAgICBpZiAoIXN0cmNtcChzdHIsICJBUk1fbm9ybWFsIikpIHsKKyAgICAgICAg bmV3X3BvbGljeSA9IExJQlhMX1NTSE1fQ0FDSEVQT0xJQ1lfQVJNX05PUk1BTDsKKyAgICB9IGVs c2UgaWYgKCFzdHJjbXAoc3RyLCAieDg2X25vcm1hbCIpKSB7CisgICAgICAgIG5ld19wb2xpY3kg PSBMSUJYTF9TU0hNX0NBQ0hFUE9MSUNZX1g4Nl9OT1JNQUw7CisgICAgfSBlbHNlIHsKKyAgICAg ICAgUkVUX0lOVkFMKCJpbnZhbGlkIGNhY2hlIHBvbGljeSIsIHN0cik7CisgICAgfQorCisgICAg U0VUX1ZBTCgqcG9saWN5LCAiY2FjaGUgcG9saWN5IiwgQ0FDSEVQT0xJQ1ksIG5ld19wb2xpY3ks IHN0cik7CisgICAgcmMgPSAwOworCisgb3V0OgorICAgIHJldHVybiByYzsKK30KKworLyogaGFu ZGxlIGtleSA9IHZhbHVlIHBhaXJzICovCitzdGF0aWMgaW50IGhhbmRsZV9lcXUoWExVX0NvbmZp ZyAqY2ZnLCBjaGFyICprZXksIGNoYXIgKnZhbCwKKyAgICAgICAgICAgICAgICAgICAgICBsaWJ4 bF9zdGF0aWNfc2htICpzc2htKQoreworICAgIGludCByYzsKKworICAgIGlmICghc3RyY21wKGtl eSwgImlkIikpIHsKKyAgICAgICAgaWYgKHN0cmxlbih2YWwpID4gTElCWExfU1NITV9JRF9NQVhM RU4pIHsgUkVUX0lOVkFMKCJpZCB0b28gbG9uZyIsIHZhbCk7IH0KKyAgICAgICAgaWYgKHNzaG0t PmlkICYmICFzdHJjbXAoc3NobS0+aWQsIHZhbCkpIHsKKyAgICAgICAgICAgIFJFVF9JTlZBTCgi aWQgcmVzcGVjaWZpZWQiLCB2YWwpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKE5VTEwgPT0g KHNzaG0tPmlkID0gc3RyZHVwKHZhbCkpKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwg InNzaG0gcGFyc2VyIG91dCBvZiBtZW1vcnlcbiIpOworICAgICAgICAgICAgcmMgPSBFTk9NRU07 CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoIXN0cmNt cChrZXksICJyb2xlIikpIHsKKyAgICAgICAgbGlieGxfc3NobV9yb2xlIG5ld19yb2xlOworCisg ICAgICAgIGlmICghc3RyY21wKCJtYXN0ZXIiLCB2YWwpKSB7CisgICAgICAgICAgICBuZXdfcm9s ZSA9IExJQlhMX1NTSE1fUk9MRV9NQVNURVI7CisgICAgICAgIH0gZWxzZSBpZiAoIXN0cmNtcCgi c2xhdmUiLCB2YWwpKSB7CisgICAgICAgICAgICBuZXdfcm9sZSA9IExJQlhMX1NTSE1fUk9MRV9T TEFWRTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFJFVF9JTlZBTCgiaW52YWxpZCBy b2xlIiwgdmFsKTsKKyAgICAgICAgfQorCisgICAgICAgIFNFVF9WQUwoc3NobS0+cm9sZSwgInJv bGUiLCBST0xFLCBuZXdfcm9sZSwgdmFsKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoa2V5LCAi YmVnaW4iKSB8fAorICAgICAgICAgICAgICAgIXN0cmNtcChrZXksICJlbmQiKSB8fAorICAgICAg ICAgICAgICAgIXN0cmNtcChrZXksICJvZmZzZXQiKSkgeworICAgICAgICBjaGFyICplbmRwdHI7 CisgICAgICAgIGludCBiYXNlID0gMTA7CisgICAgICAgIHVpbnQ2NF90IG5ld19hZGRyOworCisg ICAgICAgIC8qIENvdWxkIGJlIGluIGhleCBmb3JtLiBOb3RlIHRoYXQgd2UgZG9uJ3QgbmVlZCB0 byBjaGVjayB0aGUgbGVuZ3RoIGhlcmUsCisgICAgICAgICAqIGZvciB2YWxbXSBpcyBOVUxMLXRl cm1pbmF0ZWQgKi8KKyAgICAgICAgaWYgKCcwJyA9PSB2YWxbMF0gJiYgJ3gnID09IHZhbFsxXSkg eyBiYXNlID0gMTY7IH0KKyAgICAgICAgbmV3X2FkZHIgPSBzdHJ0b3VsbCh2YWwsICZlbmRwdHIs IGJhc2UpOworICAgICAgICBpZiAoRVJBTkdFID09IGVycm5vIHx8ICplbmRwdHIpIHsKKyAgICAg ICAgICAgIFJFVF9JTlZBTCgiaW52YWxpZCBiZWdpbi9lbmQvb2Zmc2V0IiwgdmFsKTsKKyAgICAg ICAgfQorICAgICAgICBpZiAobmV3X2FkZHIgJiBQQUdFX1NJWkVfTUFTSykKKyAgICAgICAgICAg IFJFVF9JTlZBTCgiYmVnaW4vZW5kL29mZnNldCBpcyBub3QgYSBtdWx0aXBsZSBvZiA0SyIsIHZh bCk7CisKKyAgICAgICAgLyogYmVnaW4gb3IgZW5kICovCisgICAgICAgIGlmICgnYicgPT0ga2V5 WzBdKSB7CisgICAgICAgICAgICBTRVRfVkFMKHNzaG0tPmJlZ2luLCAiYmVnaW5uaW5nIGFkZHJl c3MiLCBSQU5HRSwgbmV3X2FkZHIsIHZhbCk7CisgICAgICAgIH0gZWxzZSBpZignZScgPT0ga2V5 WzBdKXsKKyAgICAgICAgICAgIFNFVF9WQUwoc3NobS0+ZW5kLCAiZW5kaW5nIGFkZHJlc3MiLCBS QU5HRSwgbmV3X2FkZHIsIHZhbCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBTRVRf VkFMKHNzaG0tPm9mZnNldCwgIm9mZnNldCIsIFJBTkdFLCBuZXdfYWRkciwgdmFsKTsKKyAgICAg ICAgfQorICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJwcm90IikpIHsKKyAgICAgICAgcmMg PSBwYXJzZV9wcm90KGNmZywgdmFsLCAmc3NobS0+cHJvdCk7CisgICAgICAgIGlmIChyYykgeyBn b3RvIG91dDsgfQorICAgIH0gZWxzZSBpZiAoIXN0cmNtcChrZXksICJjYWNoZV9wb2xpY3kiKSkg eworICAgICAgICByYyA9IHBhcnNlX2NhY2hlcG9saWN5KGNmZywgdmFsLCAmc3NobS0+Y2FjaGVf cG9saWN5KTsKKyAgICAgICAgaWYgKHJjKSB7IGdvdG8gb3V0OyB9CisgICAgfSBlbHNlIHsKKyAg ICAgICAgUkVUX0lOVkFMKCJpbnZhbGlkIG9wdGlvbiIsIGtleSk7CisgICAgfQorCisgICAgcmMg PSAwOworCisgb3V0OgorICAgIHJldHVybiByYzsKK30KKworaW50IHhsdV9zc2htX3BhcnNlKFhM VV9Db25maWcgKmNmZywgY29uc3QgY2hhciAqc3BlYywKKyAgICAgICAgICAgICAgICAgICBsaWJ4 bF9zdGF0aWNfc2htICpzc2htKQoreworICAgIGludCByYzsKKyAgICByZWdleF90IGVxdV9yZWM7 CisgICAgY2hhciAqYnVmMiA9IE5VTEwsICpwdHIgPSBOVUxMOworICAgIHJlZ21hdGNoX3QgcG1h dGNoWzNdOworCisgICAgcmMgPSByZWdjb21wKCZlcXVfcmVjLCBFUVVfUkUsIFJFR19FWFRFTkRF RCk7CisgICAgaWYgKHJjKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAic3NobSBwYXJzZXIg ZmFpbGVkIHRvIGluaXRpYWxpemVcbiIpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAg ICBpZiAoTlVMTCA9PSAoYnVmMiA9IHB0ciA9IHN0cmR1cChzcGVjKSkpIHsKKyAgICAgICAgZnBy aW50ZihzdGRlcnIsICJzc2htIHBhcnNlciBvdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgICAgcmMg PSBFTk9NRU07CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIC8qIG1haW4gcGFyc2lu ZyBsb29wICovCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgaWYgKCEqcHRyKSB7IGJyZWFr OyB9CisgICAgICAgIGlmIChyZWdleGVjKCZlcXVfcmVjLCBwdHIsIDMsIHBtYXRjaCwgMCkpCisg ICAgICAgICAgICBSRVRfSU5WQUwoInVucmVjb2duaXplZCB0b2tlbiIsIHB0cik7CisKKyAgICAg ICAgcHRyW3BtYXRjaFsxXS5ybV9lb10gPSAnXDAnOworICAgICAgICBwdHJbcG1hdGNoWzJdLnJt X2VvXSA9ICdcMCc7CisgICAgICAgIHJjID0gaGFuZGxlX2VxdShjZmcsIHB0ciArIHBtYXRjaFsx XS5ybV9zbywKKyAgICAgICAgICAgICAgICAgICAgICAgIHB0ciArIHBtYXRjaFsyXS5ybV9zbywg c3NobSk7CisgICAgICAgIGlmIChyYykgeyBnb3RvIG91dDsgfQorCisgICAgICAgIHB0ciArPSBw bWF0Y2hbMF0ucm1fZW87CisgICAgfQorCisgICAgaWYgKCpwdHIpIHsgUkVUX0lOVkFMKCJpbnZh bGlkIHN5bnRheCIsIHB0cik7IH0KKworICAgIC8qIGRvIHNvbWUgZWFybHkgY2hlY2tzICovCisg ICAgaWYgKCFzc2htLT5pZCkgeworICAgICAgICBSRVRfSU5WQUwoImlkIG5vdCBzcGVjaWZpZWQi LCBzcGVjKTsKKyAgICB9CisgICAgaWYgKHNzaG0tPmJlZ2luID09IExJQlhMX1NTSE1fUkFOR0Vf VU5LTk9XTikgeworICAgICAgICBSRVRfSU5WQUwoImJlZ2luIGFkZHJlc3Mgbm90IHNwZWNpZmll ZCIsIHNwZWMpOworICAgIH0KKyAgICBpZiAoc3NobS0+ZW5kID09IExJQlhMX1NTSE1fUkFOR0Vf VU5LTk9XTikgeworICAgICAgICBSRVRfSU5WQUwoImVuZCBhZGRyZXNzIG5vdCBzcGVjaWZpZWQi LCBzcGVjKTsKKyAgICB9CisgICAgaWYgKHNzaG0tPmJlZ2luID4gc3NobS0+ZW5kKSB7CisgICAg ICAgIFJFVF9JTlZBTCgiYmVnaW4gYWRkcmVzcyBsYXJnZXIgdGhhdCBlbmQgYWRkcmVzcyIsIHNw ZWMpOworICAgIH0KKworICAgIHJjID0gMDsKKworIG91dDoKKyAgICBpZiAoYnVmMikgeyBmcmVl KGJ1ZjIpOyB9CisgICAgcmVnZnJlZSgmZXF1X3JlYyk7CisgICAgcmV0dXJuIHJjOworfQorCisv KgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1iYXNpYy1vZmZzZXQ6IDQK KyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRpZmYgLS1naXQgYS90b29s cy9saWJ4bC9saWJ4bHV0aWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsdXRpbC5oCmluZGV4IGU4MWI2 NDRjMDEuLmVlMzljYjViZGMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsdXRpbC5oCisr KyBiL3Rvb2xzL2xpYnhsL2xpYnhsdXRpbC5oCkBAIC0xMTgsNiArMTE4LDEyIEBAIGludCB4bHVf cmRtX3BhcnNlKFhMVV9Db25maWcgKmNmZywgbGlieGxfcmRtX3Jlc2VydmUgKnJkbSwgY29uc3Qg Y2hhciAqc3RyKTsKIGludCB4bHVfdmlmX3BhcnNlX3JhdGUoWExVX0NvbmZpZyAqY2ZnLCBjb25z dCBjaGFyICpyYXRlLAogICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZXZpY2VfbmljICpu aWMpOwogCisvKgorICogc3RhdGljIHNoYXJlZCBtZW1vcnkgc3BlY2lmaWNhdGlvbiBwYXJzaW5n CisgKi8KK2ludCB4bHVfc3NobV9wYXJzZShYTFVfQ29uZmlnICpjZmcsIGNvbnN0IGNoYXIgKnNw ZWMsCisgICAgICAgICAgICAgICAgICAgbGlieGxfc3RhdGljX3NobSAqc3NobSk7CisKICNlbmRp ZiAvKiBMSUJYTFVUSUxfSCAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvdG9vbHMveGwveGxfcGFyc2Uu YyBiL3Rvb2xzL3hsL3hsX3BhcnNlLmMKaW5kZXggNWMyYmYxNzIyMi4uODJkOTU1YjhiOSAxMDA2 NDQKLS0tIGEvdG9vbHMveGwveGxfcGFyc2UuYworKysgYi90b29scy94bC94bF9wYXJzZS5jCkBA IC04MTMsNyArODEzLDcgQEAgdm9pZCBwYXJzZV9jb25maWdfZGF0YShjb25zdCBjaGFyICpjb25m aWdfc291cmNlLAogICAgIGxvbmcgbCwgdmNwdXMgPSAwOwogICAgIFhMVV9Db25maWcgKmNvbmZp ZzsKICAgICBYTFVfQ29uZmlnTGlzdCAqY3B1cywgKnZiZHMsICpuaWNzLCAqcGNpcywgKmN2ZmJz LCAqY3B1aWRzLCAqdnRwbXMsCi0gICAgICAgICAgICAgICAgICAgKnVzYmN0cmxzLCAqdXNiZGV2 cywgKnA5ZGV2czsKKyAgICAgICAgICAgICAgICAgICAqdXNiY3RybHMsICp1c2JkZXZzLCAqcDlk ZXZzLCAqc3NobXM7CiAgICAgWExVX0NvbmZpZ0xpc3QgKmNoYW5uZWxzLCAqaW9wb3J0cywgKmly cXMsICppb21lbSwgKnZpcmlkaWFuLCAqZHRkZXZzLAogICAgICAgICAgICAgICAgICAgICptY2Ff Y2FwczsKICAgICBpbnQgbnVtX2lvcG9ydHMsIG51bV9pcnFzLCBudW1faW9tZW0sIG51bV9jcHVz LCBudW1fdmlyaWRpYW4sIG51bV9tY2FfY2FwczsKQEAgLTEzOTIsNiArMTM5MiwyOCBAQCB2b2lk IHBhcnNlX2NvbmZpZ19kYXRhKGNvbnN0IGNoYXIgKmNvbmZpZ19zb3VyY2UsCiAgICAgICAgIH0K ICAgICB9CiAKKyAgICBpZiAoIXhsdV9jZmdfZ2V0X2xpc3QgKGNvbmZpZywgInN0YXRpY19zaG0i LCAmc3NobXMsIDAsIDApKSB7CisgICAgICAgIGRfY29uZmlnLT5udW1fc3NobXMgPSAwOworICAg ICAgICBkX2NvbmZpZy0+c3NobXMgPSBOVUxMOworICAgICAgICB3aGlsZSAoKGJ1ZiA9IHhsdV9j ZmdfZ2V0X2xpc3RpdGVtIChzc2htcywgZF9jb25maWctPm51bV9zc2htcykpICE9IE5VTEwpIHsK KyAgICAgICAgICAgIGxpYnhsX3N0YXRpY19zaG0gKnNzaG07CisgICAgICAgICAgICBjaGFyICpi dWYyID0gc3RyZHVwKGJ1Zik7CisgICAgICAgICAgICBpbnQgcmV0OworCisgICAgICAgICAgICBz c2htID0gQVJSQVlfRVhURU5EX0lOSVRfTk9ERVZJRChkX2NvbmZpZy0+c3NobXMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkX2NvbmZpZy0+bnVtX3NzaG1z LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfc3Rh dGljX3NobV9pbml0KTsKKyAgICAgICAgICAgIHJldCA9IHhsdV9zc2htX3BhcnNlKGNvbmZpZywg YnVmMiwgc3NobSk7CisgICAgICAgICAgICBpZiAocmV0KSB7CisgICAgICAgICAgICAgICAgZnBy aW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICAgICAieGw6IEludmFsaWQgYXJndW1l bnQgZm9yIHN0YXRpY19zaG06ICVzIiwgYnVmMik7CisgICAgICAgICAgICAgICAgZXhpdChFWElU X0ZBSUxVUkUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmcmVlKGJ1ZjIpOworICAg ICAgICB9CisgICAgfQorCiAgICAgaWYgKCF4bHVfY2ZnX2dldF9saXN0KGNvbmZpZywgInA5Iiwg JnA5ZGV2cywgMCwgMCkpIHsKICAgICAgICAgbGlieGxfZGV2aWNlX3A5ICpwOTsKICAgICAgICAg Y2hhciAqc2VjdXJpdHlfbW9kZWwgPSBOVUxMOwotLSAKMi4xNC4wCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==