From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v5 12/16] x86/efi: create new early memory allocator Date: Sat, 20 Aug 2016 00:43:22 +0200 Message-ID: <1471646606-28519-13-git-send-email-daniel.kiper@oracle.com> References: <1471646606-28519-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1basXb-000355-0s for xen-devel@lists.xenproject.org; Fri, 19 Aug 2016 22:45:31 +0000 In-Reply-To: <1471646606-28519-1-git-send-email-daniel.kiper@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: jgross@suse.com, sstabellini@kernel.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, david.vrabel@citrix.com, jbeulich@suse.com, qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org VGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggcGxhY2Vfc3RyaW5nKCkgd2hpY2ggaXMgdXNlZCBhcyBl YXJseSBtZW1vcnkKYWxsb2NhdG9yLiBJdCBnZXRzIG1lbW9yeSBjaHVua3Mgc3RhcnRpbmcgZnJv bSBzdGFydCBzeW1ib2wgYW5kIGdvZXMKZG93bi4gU2FkbHkgdGhpcyBkb2VzIG5vdCB3b3JrIHdo ZW4gWGVuIGlzIGxvYWRlZCB1c2luZyBtdWx0aWJvb3QyCnByb3RvY29sIGJlY2F1c2UgdGhlbiB0 aGUgc3RhcnQgbGl2ZXMgb24gMSBNaUIgYWRkcmVzcyBhbmQgd2Ugc2hvdWxkCm5vdCBhbGxvY2F0 ZSBhIG1lbW9yeSBmcm9tIGJlbG93IG9mIGl0LiBTbywgSSB0cmllZCB0byB1c2UgbWVtX2xvd2Vy CmFkZHJlc3MgY2FsY3VsYXRlZCBieSBHUlVCMi4gSG93ZXZlciwgdGhpcyBzb2x1dGlvbiB3b3Jr cyBvbmx5IG9uIHNvbWUKbWFjaGluZXMuIFRoZXJlIGFyZSBtYWNoaW5lcyBpbiB0aGUgd2lsZCAo ZS5nLiBEZWxsIFBvd2VyRWRnZSBSODIwKQp3aGljaCB1c2VzIGZpcnN0IH42NDAgS2lCIGZvciBi b290IHNlcnZpY2VzIGNvZGUgb3IgZGF0YS4uLiA6LSgoKApIZW5jZSwgd2UgbmVlZCBuZXcgbWVt b3J5IGFsbG9jYXRvciBmb3IgWGVuIEVGSSBib290IGNvZGUgd2hpY2ggaXMKcXVpdGUgc2ltcGxl IGFuZCBnZW5lcmljIGFuZCBjb3VsZCBiZSB1c2VkIGJ5IHBsYWNlX3N0cmluZygpIGFuZAplZmlf YXJjaF9hbGxvY2F0ZV9tbWFwX2J1ZmZlcigpLiBJIHRoaW5rIGFib3V0IGZvbGxvd2luZyBzb2x1 dGlvbnM6CgoxKSBXZSBjb3VsZCB1c2UgbmF0aXZlIEVGSSBhbGxvY2F0aW9uIGZ1bmN0aW9ucyAo ZS5nLiBBbGxvY2F0ZVBvb2woKQogICBvciBBbGxvY2F0ZVBhZ2VzKCkpIHRvIGdldCBtZW1vcnkg Y2h1bmsuIEhvd2V2ZXIsIGxhdGVyIChzb21ld2hlcmUKICAgaW4gX19zdGFydF94ZW4oKSkgd2Ug bXVzdCBjb3B5IGl0cyBjb250ZW50cyB0byBzYWZlIHBsYWNlIG9yIHJlc2VydmUKICAgaXQgaW4g ZTgyMCBtZW1vcnkgbWFwIGFuZCBtYXAgaXQgaW4gWGVuIHZpcnR1YWwgYWRkcmVzcyBzcGFjZS4g VGhpcwogICBtZWFucyB0aGF0IHRoZSBjb2RlIHJlZmVycmluZyB0byBYZW4gY29tbWFuZCBsaW5l LCBsb2FkZWQgbW9kdWxlcyBhbmQKICAgRUZJIG1lbW9yeSBtYXAsIG1vc3RseSBpbiBfX3N0YXJ0 X3hlbigpLCB3aWxsIGJlIGZ1cnRoZXIgY29tcGxpY2F0ZWQKICAgYW5kIGRpdmVyZ2UgZnJvbSBs ZWdhY3kgQklPUyBjYXNlcy4gQWRkaXRpb25hbGx5LCBib3RoIGZvcm1lciB0aGluZ3MKICAgaGF2 ZSB0byBiZSBwbGFjZWQgYmVsb3cgNCBHaUIgYmVjYXVzZSB0aGVpciBhZGRyZXNzZXMgYXJlIHN0 b3JlZCBpbgogICBtdWx0aWJvb3RfaW5mb190IHN0cnVjdHVyZSB3aGljaCBoYXMgMzItYml0IHJl bGV2YW50IG1lbWJlcnMuCgoyKSBXZSBtYXkgYWxsb2NhdGUgbWVtb3J5IGFyZWEgc3RhdGljYWxs eSBzb21ld2hlcmUgaW4gWGVuIGNvZGUgd2hpY2gKICAgY291bGQgYmUgdXNlZCBhcyBtZW1vcnkg cG9vbCBmb3IgZWFybHkgZHluYW1pYyBhbGxvY2F0aW9ucy4gTG9va3MKICAgcXVpdGUgc2ltcGxl LiBBZGRpdGlvbmFsbHksIGl0IHdvdWxkIG5vdCBkZXBlbmQgb24gRUZJIGF0IGFsbCBhbmQKICAg Y291bGQgYmUgdXNlZCBvbiBsZWdhY3kgQklPUyBwbGF0Zm9ybXMgaWYgd2UgbmVlZCBpdC4gSG93 ZXZlciwgd2UKICAgbXVzdCBjYXJlZnVsbHkgY2hvb3NlIHNpemUgb2YgdGhpcyBwb29sLiBXZSBk byBub3Qgd2FudCBpbmNyZWFzZSBYZW4KICAgYmluYXJ5IHNpemUgdG9vIG11Y2ggYW5kIHdhc3Rl IHRvbyBtdWNoIG1lbW9yeSBidXQgYWxzbyB3ZSBtdXN0IGZpdAogICBhdCBsZWFzdCBtZW1vcnkg bWFwIG9uIHg4NiBFRkkgcGxhdGZvcm1zLiBBcyBJIHNhdyBvbiBzbWFsbCBtYWNoaW5lLAogICBl LmcuIElCTSBTeXN0ZW0geDM1NTAgTTIgd2l0aCA4IEdpQiBSQU0sIG1lbW9yeSBtYXAgbWF5IGNv bnRhaW4gbW9yZQogICB0aGFuIDIwMCBlbnRyaWVzLiBFdmVyeSBlbnRyeSBvbiB4ODYtNjQgcGxh dGZvcm0gaXMgNDAgYnl0ZXMgaW4gc2l6ZS4KICAgU28sIGl0IG1lYW5zIHRoYXQgd2UgbmVlZCBt b3JlIHRoYW4gOCBLaUIgZm9yIEVGSSBtZW1vcnkgbWFwIG9ubHkuCiAgIEFkZGl0aW9uYWxseSwg aWYgd2UgdXNlIHRoaXMgbWVtb3J5IHBvb2wgZm9yIFhlbiBhbmQgbW9kdWxlcyBjb21tYW5kCiAg IGxpbmUgc3RvcmFnZSAoaXQgd291bGQgYmUgdXNlZCB3aGVuIHhlbi5lZmkgaXMgZXhlY3V0ZWQg YXMgRUZJIGFwcGxpY2F0aW9uKQogICB0aGVuIHdlIHNob3VsZCBhZGQsIEkgdGhpbmssIGFib3V0 IDEgS2lCLiBJbiB0aGlzIGNhc2UsIHRvIGJlIG9uIHNhZmUKICAgc2lkZSwgd2Ugc2hvdWxkIGFz c3VtZSBhdCBsZWFzdCA2NCBLaUIgcG9vbCBmb3IgZWFybHkgbWVtb3J5IGFsbG9jYXRpb25zLgog ICBXaGljaCBpcyBhYm91dCA0IHRpbWVzIG9mIG91ciBlYXJsaWVyIGNhbGN1bGF0aW9ucy4gSG93 ZXZlciwgZHVyaW5nCiAgIGRpc2N1c3Npb24gb24gWGVuLWRldmVsIEphbiBCZXVsaWNoIHN1Z2dl c3RlZCB0aGF0IGp1c3QgaW4gY2FzZSB3ZSBzaG91bGQKICAgdXNlIDEgTWlCIG1lbW9yeSBwb29s IGxpa2UgaXQgaXMgaW4gb3JpZ2luYWwgcGxhY2Vfc3RyaW5nKCkgaW1wbGVtZW50YXRpb24uCiAg IFNvLCBsZXQncyB1c2UgMSBNaUIgYXMgaXQgd2FzIHByb3Bvc2VkLiBJZiB3ZSB0aGluayB0aGF0 IHdlIHNob3VsZCBub3QKICAgd2FzdGUgdW5hbGxvY2F0ZWQgbWVtb3J5IGluIHRoZSBwb29sIG9u IHJ1bm5pbmcgc3lzdGVtIHRoZW4gd2UgY2FuIG1hcmsKICAgdGhpcyByZWdpb24gYXMgX19pbml0 ZGF0YSBhbmQgbW92ZSBhbGwgcmVxdWlyZWQgZGF0YSB0byBkeW5hbWljYWxseQogICBhbGxvY2F0 ZWQgcGxhY2VzIHNvbWV3aGVyZSBpbiBfX3N0YXJ0X3hlbigpLgoKMmEpIFdlIGNvdWxkIHB1dCBt ZW1vcnkgcG9vbCBpbnRvIC5ic3MucGFnZV9hbGlnbmVkIHNlY3Rpb24uIFRoZW4gYWxsb2NhdGUK ICAgIG1lbW9yeSBjaHVua3Mgc3RhcnRpbmcgZnJvbSB0aGUgbG93ZXN0IGFkZHJlc3MuIEFmdGVy IGluaXQgcGhhc2Ugd2UgY2FuCiAgICBmcmVlIHVudXNlZCBwb3J0aW9uIG9mIHRoZSBtZW1vcnkg cG9vbCBhcyBpbiBjYXNlIG9mIC5pbml0LnRleHQgb3IgLmluaXQuZGF0YQogICAgc2VjdGlvbnMu IFRoaXMgd2F5IHdlIGRvIG5vdCBuZWVkIHRvIGFsbG9jYXRlIGFueSBzcGFjZSBpbiBpbWFnZSBm aWxlIGFuZAogICAgZnJlZWluZyBvZiB1bnVzZWQgYXJlYSBpbiB0aGUgbWVtb3J5IHBvb2wgaXMg dmVyeSBzaW1wbGUuCgpOb3cgIzJhIHNvbHV0aW9uIGlzIGltcGxlbWVudGVkIGJlY2F1c2UgaXQg aXMgcXVpdGUgc2ltcGxlIGFuZCByZXF1aXJlcwpsaW1pdGVkIG51bWJlciBvZiBjaGFuZ2VzLCBl c3BlY2lhbGx5IGluIF9fc3RhcnRfeGVuKCkuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgS2lwZXIg PGRhbmllbC5raXBlckBvcmFjbGUuY29tPgotLS0KdjQgLSBzdWdnZXN0aW9ucy9maXhlczoKICAg LSBtb3ZlIGZyb20gIzIgc29sdXRpb24gdG8gIzJhIHNvbHV0aW9uLAogICAtIGltcHJvdmUgY29t bWl0IG1lc3NhZ2UuCi0tLQogeGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oIHwgICA1OCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiB4ZW4vYXJjaC94ODYvZWZp L3N0dWIuYyAgICAgfCAgICAyICsrCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAgICAgfCAgICA1 ICsrLS0KIHhlbi9pbmNsdWRlL3hlbi9lZmkuaCAgICAgICB8ICAgIDEgKwogNCBmaWxlcyBjaGFu Z2VkLCA1NiBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvZWZpL2VmaS1ib290LmggYi94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgKaW5k ZXggMWZhOWU0Ny4uM2Y4N2I3YyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2VmaS9lZmktYm9v dC5oCisrKyBiL3hlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaApAQCAtMTAzLDkgKzEwMyw1NiBA QCBzdGF0aWMgdm9pZCBfX2luaXQgcmVsb2NhdGVfdHJhbXBvbGluZSh1bnNpZ25lZCBsb25nIHBo eXMpCiAgICAgICAgICoodTE2ICopKCp0cmFtcG9saW5lX3B0ciArIChsb25nKXRyYW1wb2xpbmVf cHRyKSA9IHBoeXMgPj4gNDsKIH0KIAorI2RlZmluZSBFQk1BTExPQ19TSVpFCU1CKDEpCisKK3N0 YXRpYyBjaGFyIF9fc2VjdGlvbigiLmJzcy5wYWdlX2FsaWduZWQiKSBlYm1hbGxvY19tZW1bRUJN QUxMT0NfU0laRV07CitzdGF0aWMgY2hhciBfX2luaXRkYXRhICplYm1hbGxvY19mcmVlID0gTlVM TDsKKworLyogRUZJIGJvb3QgYWxsb2NhdG9yLiAqLworc3RhdGljIHZvaWQgX19pbml0ICplYm1h bGxvYyhzaXplX3Qgc2l6ZSkKK3sKKyAgICB2b2lkICpwdHI7CisKKyAgICAvKgorICAgICAqIElu aXQgZWJtYWxsb2NfZnJlZSBvbiBydW50aW1lLiBTdGF0aWMgaW5pdGlhbGl6YXRpb24KKyAgICAg KiB3aWxsIG5vdCB3b3JrIGJlY2F1c2UgaXQgcHV0cyB2aXJ0dWFsIGFkZHJlc3MgdGhlcmUuCisg ICAgICovCisgICAgaWYgKCBlYm1hbGxvY19mcmVlID09IE5VTEwgKQorICAgICAgICBlYm1hbGxv Y19mcmVlID0gZWJtYWxsb2NfbWVtOworCisgICAgcHRyID0gZWJtYWxsb2NfZnJlZTsKKworICAg IGVibWFsbG9jX2ZyZWUgKz0gc2l6ZTsKKworICAgIGlmICggZWJtYWxsb2NfZnJlZSAtIGVibWFs bG9jX21lbSA+IHNpemVvZihlYm1hbGxvY19tZW0pICkKKyAgICAgICAgYmxleGl0KEwiT3V0IG9m IHN0YXRpYyBtZW1vcnlcclxuIik7CisKKyAgICByZXR1cm4gcHRyOworfQorCit2b2lkIF9faW5p dCBmcmVlX2VibWFsbG9jX3VudXNlZF9tZW0odm9pZCkKK3sKKyAgICB1bnNpZ25lZCBsb25nIHN0 YXJ0LCBlbmQ7CisKKyAgICBpZiAoIGVibWFsbG9jX2ZyZWUgKQorICAgIHsKKyAgICAgICAgc3Rh cnQgPSAodW5zaWduZWQgbG9uZyllYm1hbGxvY19mcmVlIC0geGVuX3BoeXNfc3RhcnQ7CisgICAg ICAgIHN0YXJ0ID0gUEFHRV9BTElHTihzdGFydCArIFhFTl9WSVJUX1NUQVJUKTsKKyAgICB9Cisg ICAgZWxzZQorICAgICAgICBzdGFydCA9ICh1bnNpZ25lZCBsb25nKWVibWFsbG9jX21lbTsKKwor ICAgIGVuZCA9ICh1bnNpZ25lZCBsb25nKWVibWFsbG9jX21lbSArIHNpemVvZihlYm1hbGxvY19t ZW0pOworCisgICAgZGVzdHJveV94ZW5fbWFwcGluZ3Moc3RhcnQsIGVuZCk7CisgICAgaW5pdF94 ZW5oZWFwX3BhZ2VzKF9fcGEoc3RhcnQpLCBfX3BhKGVuZCkpOworCisgICAgcHJpbnRrKCJGcmVl ZCAlbHVrQiB1bnVzZWQgQlNTIG1lbW9yeVxuIiwgKGVuZCAtIHN0YXJ0KSA+PiAxMCk7Cit9CisK IHN0YXRpYyB2b2lkIF9faW5pdCBwbGFjZV9zdHJpbmcodTMyICphZGRyLCBjb25zdCBjaGFyICpz KQogewotICAgIHN0YXRpYyBjaGFyICpfX2luaXRkYXRhIGFsbG9jID0gc3RhcnQ7CisgICAgY2hh ciAqYWxsb2MgPSBOVUxMOwogCiAgICAgaWYgKCBzICYmICpzICkKICAgICB7CkBAIC0xMTMsNyAr MTYwLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHBsYWNlX3N0cmluZyh1MzIgKmFkZHIsIGNvbnN0 IGNoYXIgKnMpCiAgICAgICAgIGNvbnN0IGNoYXIgKm9sZCA9IChjaGFyICopKGxvbmcpKmFkZHI7 CiAgICAgICAgIHNpemVfdCBsZW4yID0gKmFkZHIgPyBzdHJsZW4ob2xkKSArIDEgOiAwOwogCi0g ICAgICAgIGFsbG9jIC09IGxlbjEgKyBsZW4yOworICAgICAgICBhbGxvYyA9IGVibWFsbG9jKGxl bjEgKyBsZW4yKTsKICAgICAgICAgLyoKICAgICAgICAgICogSW5zZXJ0IG5ldyBzdHJpbmcgYmVm b3JlIGFscmVhZHkgZXhpc3Rpbmcgb25lLiBUaGlzIGlzIG5lZWRlZAogICAgICAgICAgKiBmb3Ig b3B0aW9ucyBwYXNzZWQgb24gdGhlIGNvbW1hbmQgbGluZSB0byBvdmVycmlkZSBvcHRpb25zIGZy b20KQEAgLTE5NiwxMiArMjQzLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGVmaV9hcmNoX3Byb2Nl c3NfbWVtb3J5X21hcChFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSwKIAogc3RhdGljIHZv aWQgKl9faW5pdCBlZmlfYXJjaF9hbGxvY2F0ZV9tbWFwX2J1ZmZlcihVSU5UTiBtYXBfc2l6ZSkK IHsKLSAgICBwbGFjZV9zdHJpbmcoJm1iaS5tZW1fdXBwZXIsIE5VTEwpOwotICAgIG1iaS5tZW1f dXBwZXIgLT0gbWFwX3NpemU7Ci0gICAgbWJpLm1lbV91cHBlciAmPSAtX19hbGlnbm9mX18oRUZJ X01FTU9SWV9ERVNDUklQVE9SKTsKLSAgICBpZiAoIG1iaS5tZW1fdXBwZXIgPCB4ZW5fcGh5c19z dGFydCApCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIHJldHVybiAodm9pZCAqKShsb25nKW1i aS5tZW1fdXBwZXI7CisgICAgcmV0dXJuIGVibWFsbG9jKG1hcF9zaXplKTsKIH0KIAogc3RhdGlj IHZvaWQgX19pbml0IGVmaV9hcmNoX3ByZV9leGl0X2Jvb3Qodm9pZCkKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9lZmkvc3R1Yi5jIGIveGVuL2FyY2gveDg2L2VmaS9zdHViLmMKaW5kZXggZjA4 NzAyMy4uZjdiYzA0MiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2VmaS9zdHViLmMKKysrIGIv eGVuL2FyY2gveDg2L2VmaS9zdHViLmMKQEAgLTksNiArOSw4IEBAIGJvb2xfdCBlZmlfZW5hYmxl ZChpbnQgZmVhdHVyZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgX19pbml0IGZyZWVf ZWJtYWxsb2NfdW51c2VkX21lbSh2b2lkKSB7IH0KKwogdm9pZCBfX2luaXQgZWZpX2luaXRfbWVt b3J5KHZvaWQpIHsgfQogCiB2b2lkIGVmaV91cGRhdGVfbDRfcGd0YWJsZSh1bnNpZ25lZCBpbnQg bDRpZHgsIGw0X3BnZW50cnlfdCBsNGUpIHsgfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Nl dHVwLmMgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwppbmRleCAzNjBjYTU5Li5iYzQ4MzUxIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvc2V0dXAuYworKysgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwpA QCAtNTIwLDYgKzUyMCw4IEBAIHN0YXRpYyB2b2lkIG5vaW5saW5lIGluaXRfZG9uZSh2b2lkKQog CiAgICAgc3lzdGVtX3N0YXRlID0gU1lTX1NUQVRFX2FjdGl2ZTsKIAorICAgIGZyZWVfZWJtYWxs b2NfdW51c2VkX21lbSgpOworCiAgICAgLyogTVVTVCBiZSBkb25lIHByaW9yIHRvIHJlbW92aW5n IC5pbml0IGRhdGEuICovCiAgICAgdW5yZWdpc3Rlcl9pbml0X3ZpcnR1YWxfcmVnaW9uKCk7CiAK QEAgLTEwODAsOCArMTA4Miw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVu c2lnbmVkIGxvbmcgbWJpX3ApCiAKICAgICBpZiAoICF4ZW5fcGh5c19zdGFydCApCiAgICAgICAg IHBhbmljKCJOb3QgZW5vdWdoIG1lbW9yeSB0byByZWxvY2F0ZSBYZW4uIik7Ci0gICAgcmVzZXJ2 ZV9lODIwX3JhbSgmYm9vdF9lODIwLCBlZmlfZW5hYmxlZChFRklfQk9PVCkgPyBtYmktPm1lbV91 cHBlciA6IF9fcGEoJl9zdGFydCksCi0gICAgICAgICAgICAgICAgICAgICBfX3BhKCZfZW5kKSk7 CisgICAgcmVzZXJ2ZV9lODIwX3JhbSgmYm9vdF9lODIwLCBfX3BhKCZfc3RhcnQpLCBfX3BhKCZf ZW5kKSk7CiAKICAgICAvKiBMYXRlIGtleGVjIHJlc2VydmF0aW9uIChkeW5hbWljIHN0YXJ0IGFk ZHJlc3MpLiAqLwogICAgIGtleGVjX3Jlc2VydmVfYXJlYSgmYm9vdF9lODIwKTsKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL3hlbi9lZmkuaCBiL3hlbi9pbmNsdWRlL3hlbi9lZmkuaAppbmRleCA4 MzcyYWUyLi4xNDdhMGU4IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vZWZpLmgKKysrIGIv eGVuL2luY2x1ZGUveGVuL2VmaS5oCkBAIC0zMyw2ICszMyw3IEBAIHN0cnVjdCB4ZW5wZl9lZmlf cnVudGltZV9jYWxsOwogc3RydWN0IGNvbXBhdF9wZl9lZmlfcnVudGltZV9jYWxsOwogCiBib29s X3QgZWZpX2VuYWJsZWQoaW50IGZlYXR1cmUpOwordm9pZCBmcmVlX2VibWFsbG9jX3VudXNlZF9t ZW0odm9pZCk7CiB2b2lkIGVmaV9pbml0X21lbW9yeSh2b2lkKTsKIGJvb2xfdCBlZmlfcnNfdXNp bmdfcGd0YWJsZXModm9pZCk7CiB1bnNpZ25lZCBsb25nIGVmaV9nZXRfdGltZSh2b2lkKTsKLS0g CjEuNy4xMC40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==