From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH 12/29] xl: split out flask related code Date: Fri, 24 Feb 2017 16:12:57 +0000 Message-ID: <20170224161314.22154-13-wei.liu2@citrix.com> References: <20170224161314.22154-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1chIXv-0006cr-Hm for xen-devel@lists.xenproject.org; Fri, 24 Feb 2017 16:16:39 +0000 In-Reply-To: <20170224161314.22154-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Wei Liu , Ian Jackson List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tCiB0b29scy94 bC9NYWtlZmlsZSAgICAgfCAgIDIgKy0KIHRvb2xzL3hsL3hsX2NtZGltcGwuYyB8IDExOSAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHRvb2xzL3hsL3hsX2ZsYXNrLmMg ICB8IDE1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogMyBmaWxlcyBjaGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKSwgMTIwIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL3hsL3hsX2ZsYXNrLmMKCmRpZmYgLS1naXQgYS90b29s cy94bC9NYWtlZmlsZSBiL3Rvb2xzL3hsL01ha2VmaWxlCmluZGV4IDBmZjdlZjliZmUuLmRmMGI1 ZGQ1Y2YgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hsL01ha2VmaWxlCisrKyBiL3Rvb2xzL3hsL01ha2Vm aWxlCkBAIC0xNiw3ICsxNiw3IEBAIENGTEFHU19YTCArPSAkKENGTEFHU19saWJ4ZW5saWdodCkK IENGTEFHU19YTCArPSAtV3NoYWRvdwogCiBYTF9PQkpTID0geGwubyB4bF9jbWRpbXBsLm8geGxf Y21kdGFibGUubyB4bF9zeHAubyB4bF91dGlscy5vCi1YTF9PQkpTICs9IHhsX3RtZW0ubyB4bF9w YXJzZS5vIHhsX2NwdXBvb2wubworWExfT0JKUyArPSB4bF90bWVtLm8geGxfcGFyc2UubyB4bF9j cHVwb29sLm8geGxfZmxhc2subwogCiAkKFhMX09CSlMpOiBDRkxBR1MgKz0gJChDRkxBR1NfbGli eGVudG9vbGxvZykKICQoWExfT0JKUyk6IENGTEFHUyArPSAkKENGTEFHU19YTCkKZGlmZiAtLWdp dCBhL3Rvb2xzL3hsL3hsX2NtZGltcGwuYyBiL3Rvb2xzL3hsL3hsX2NtZGltcGwuYwppbmRleCA4 MmIzMGJiMDk0Li5lYjg3Y2I5NzVhIDEwMDY0NAotLS0gYS90b29scy94bC94bF9jbWRpbXBsLmMK KysrIGIvdG9vbHMveGwveGxfY21kaW1wbC5jCkBAIC01NjExLDEyNSArNTYxMSw2IEBAIGludCBt YWluX3VwdGltZShpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWlu dCBtYWluX2dldGVuZm9yY2UoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQotewotICAgIGludCByZXQ7 Ci0KLSAgICByZXQgPSBsaWJ4bF9mbGFza19nZXRlbmZvcmNlKGN0eCk7Ci0KLSAgICBpZiAocmV0 IDwgMCkgewotICAgICAgICBpZiAoZXJybm8gPT0gRU5PU1lTKQotICAgICAgICAgICAgcHJpbnRm KCJGbGFzayBYU00gRGlzYWJsZWRcbiIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBmcHJp bnRmKHN0ZGVyciwgIkZhaWxlZCB0byBnZXQgZW5mb3JjaW5nIG1vZGVcbiIpOwotICAgIH0KLSAg ICBlbHNlIGlmIChyZXQgPT0gMSkKLSAgICAgICAgcHJpbnRmKCJFbmZvcmNpbmdcbiIpOwotICAg IGVsc2UgaWYgKHJldCA9PSAwKQotICAgICAgICBwcmludGYoIlBlcm1pc3NpdmVcbiIpOwotCi0g ICAgcmV0dXJuIHJldDsKLX0KLQotaW50IG1haW5fc2V0ZW5mb3JjZShpbnQgYXJnYywgY2hhciAq KmFyZ3YpCi17Ci0gICAgaW50IHJldCwgbW9kZTsKLSAgICBjb25zdCBjaGFyICpwID0gTlVMTDsK LQotICAgIGlmIChvcHRpbmQgPj0gYXJnYykgewotICAgICAgICBoZWxwKCJzZXRlbmZvcmNlIik7 Ci0gICAgICAgIHJldHVybiAyOwotICAgIH0KLQotICAgIHAgPSBhcmd2W29wdGluZF07Ci0KLSAg ICBpZiAoIXN0cmNtcChwLCAiMCIpKQotICAgICAgICBtb2RlID0gMDsKLSAgICBlbHNlIGlmICgh c3RyY21wKHAsICIxIikpCi0gICAgICAgIG1vZGUgPSAxOwotICAgIGVsc2UgaWYgKCFzdHJjYXNl Y21wKHAsICJwZXJtaXNzaXZlIikpCi0gICAgICAgIG1vZGUgPSAwOwotICAgIGVsc2UgaWYgKCFz dHJjYXNlY21wKHAsICJlbmZvcmNpbmciKSkKLSAgICAgICAgbW9kZSA9IDE7Ci0gICAgZWxzZSB7 Ci0gICAgICAgIGhlbHAoInNldGVuZm9yY2UiKTsKLSAgICAgICAgcmV0dXJuIDI7Ci0gICAgfQot Ci0gICAgcmV0ID0gbGlieGxfZmxhc2tfc2V0ZW5mb3JjZShjdHgsIG1vZGUpOwotCi0gICAgaWYg KHJldCkgewotICAgICAgICBpZiAoZXJybm8gPT0gRU5PU1lTKSB7Ci0gICAgICAgICAgICBmcHJp bnRmKHN0ZGVyciwgIkZsYXNrIFhTTSBkaXNhYmxlZFxuIik7Ci0gICAgICAgIH0KLSAgICAgICAg ZWxzZQotICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciBvY2N1cmVkIHdoaWxlIHNl dHRpbmcgZW5mb3JjaW5nIG1vZGUgKCVpKVxuIiwgcmV0KTsKLSAgICB9Ci0KLSAgICByZXR1cm4g cmV0OwotfQotCi1pbnQgbWFpbl9sb2FkcG9saWN5KGludCBhcmdjLCBjaGFyICoqYXJndikKLXsK LSAgICBjb25zdCBjaGFyICpwb2xGTmFtZTsKLSAgICBpbnQgcG9sRmQgPSAtMTsKLSAgICB2b2lk ICpwb2xNZW1DcCA9IE5VTEw7Ci0gICAgc3RydWN0IHN0YXQgaW5mbzsKLSAgICBpbnQgcmV0Owot Ci0gICAgaWYgKG9wdGluZCA+PSBhcmdjKSB7Ci0gICAgICAgIGhlbHAoImxvYWRwb2xpY3kiKTsK LSAgICAgICAgcmV0dXJuIDI7Ci0gICAgfQotCi0gICAgcG9sRk5hbWUgPSBhcmd2W29wdGluZF07 Ci0gICAgcG9sRmQgPSBvcGVuKHBvbEZOYW1lLCBPX1JET05MWSk7Ci0gICAgaWYgKHBvbEZkIDwg MCkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yIG9jY3VycmVkIG9wZW5pbmcgcG9s aWN5IGZpbGUgJyVzJzogJXNcbiIsCi0gICAgICAgICAgICAgICAgcG9sRk5hbWUsIHN0cmVycm9y KGVycm5vKSk7Ci0gICAgICAgIHJldCA9IC0xOwotICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQot Ci0gICAgcmV0ID0gc3RhdChwb2xGTmFtZSwgJmluZm8pOwotICAgIGlmIChyZXQgPCAwKSB7Ci0g ICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3Igb2NjdXJyZWQgcmV0cmlldmluZyBpbmZvcm1h dGlvbiBhYm91dCIKLSAgICAgICAgICAgICAgICAicG9saWN5IGZpbGUgJyVzJzogJXNcbiIsIHBv bEZOYW1lLCBzdHJlcnJvcihlcnJubykpOwotICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQotCi0g ICAgcG9sTWVtQ3AgPSBtYWxsb2MoaW5mby5zdF9zaXplKTsKLQotICAgIHJldCA9IHJlYWQocG9s RmQsIHBvbE1lbUNwLCBpbmZvLnN0X3NpemUpOwotICAgIGlmICggcmV0IDwgMCApIHsKLSAgICAg ICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gcmVhZCBuZXcgRmxhc2sgcG9saWN5IGZpbGU6 ICVzXG4iLAotICAgICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7Ci0gICAgICAgIGdvdG8g ZG9uZTsKLSAgICB9Ci0KLSAgICByZXQgPSBsaWJ4bF9mbGFza19sb2FkcG9saWN5KGN0eCwgcG9s TWVtQ3AsIGluZm8uc3Rfc2l6ZSk7Ci0KLSAgICBpZiAocmV0IDwgMCkgewotICAgICAgICBpZiAo ZXJybm8gPT0gRU5PU1lTKSB7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZsYXNrIFhT TSBkaXNhYmxlZFxuIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlcnJubyA9IC1y ZXQ7Ci0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBsb2FkIG5ldyBGbGFz ayBwb2xpY3k6ICVzXG4iLAotICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOwot ICAgICAgICAgICAgcmV0ID0gLTE7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBw cmludGYoIlN1Y2Nlc3NmdWxseSBsb2FkZWQgcG9saWN5LlxuIik7Ci0gICAgfQotCi1kb25lOgot ICAgIGZyZWUocG9sTWVtQ3ApOwotICAgIGlmIChwb2xGZCA+PSAwKQotICAgICAgICBjbG9zZShw b2xGZCk7Ci0KLSAgICByZXR1cm4gcmV0OwotfQotCiAjaWZuZGVmIExJQlhMX0hBVkVfTk9fU1VT UEVORF9SRVNVTUUKIGludCBtYWluX3JlbXVzKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKZGlm ZiAtLWdpdCBhL3Rvb2xzL3hsL3hsX2ZsYXNrLmMgYi90b29scy94bC94bF9mbGFzay5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjgwNDE2NWM2YTgKLS0tIC9kZXYvbnVs bAorKysgYi90b29scy94bC94bF9mbGFzay5jCkBAIC0wLDAgKzEsMTUzIEBACisvKgorICogQ29w eXJpZ2h0IDIwMDktMjAxNyBDaXRyaXggTHRkIGFuZCBvdGhlciBjb250cmlidXRvcnMKKyAqCisg KiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkCisgKiBieSB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIuMSBvbmx5LiB3aXRoIHRoZSBzcGVjaWFsCisgKiBleGNl cHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gZmlsZSBMSUNFTlNFLgorICoKKyAqIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorICovCisKKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUg PHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cisj aW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgPGxp YnhsLmg+CisKKyNpbmNsdWRlICJ4bC5oIgorCitleHRlcm4gbGlieGxfY3R4ICpjdHg7CisKK2lu dCBtYWluX2dldGVuZm9yY2UoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICAgIGludCByZXQ7 CisKKyAgICByZXQgPSBsaWJ4bF9mbGFza19nZXRlbmZvcmNlKGN0eCk7CisKKyAgICBpZiAocmV0 IDwgMCkgeworICAgICAgICBpZiAoZXJybm8gPT0gRU5PU1lTKQorICAgICAgICAgICAgcHJpbnRm KCJGbGFzayBYU00gRGlzYWJsZWRcbiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmcHJp bnRmKHN0ZGVyciwgIkZhaWxlZCB0byBnZXQgZW5mb3JjaW5nIG1vZGVcbiIpOworICAgIH0KKyAg ICBlbHNlIGlmIChyZXQgPT0gMSkKKyAgICAgICAgcHJpbnRmKCJFbmZvcmNpbmdcbiIpOworICAg IGVsc2UgaWYgKHJldCA9PSAwKQorICAgICAgICBwcmludGYoIlBlcm1pc3NpdmVcbiIpOworCisg ICAgcmV0dXJuIHJldDsKK30KKworaW50IG1haW5fc2V0ZW5mb3JjZShpbnQgYXJnYywgY2hhciAq KmFyZ3YpCit7CisgICAgaW50IHJldCwgbW9kZTsKKyAgICBjb25zdCBjaGFyICpwID0gTlVMTDsK KworICAgIGlmIChvcHRpbmQgPj0gYXJnYykgeworICAgICAgICBoZWxwKCJzZXRlbmZvcmNlIik7 CisgICAgICAgIHJldHVybiAyOworICAgIH0KKworICAgIHAgPSBhcmd2W29wdGluZF07CisKKyAg ICBpZiAoIXN0cmNtcChwLCAiMCIpKQorICAgICAgICBtb2RlID0gMDsKKyAgICBlbHNlIGlmICgh c3RyY21wKHAsICIxIikpCisgICAgICAgIG1vZGUgPSAxOworICAgIGVsc2UgaWYgKCFzdHJjYXNl Y21wKHAsICJwZXJtaXNzaXZlIikpCisgICAgICAgIG1vZGUgPSAwOworICAgIGVsc2UgaWYgKCFz dHJjYXNlY21wKHAsICJlbmZvcmNpbmciKSkKKyAgICAgICAgbW9kZSA9IDE7CisgICAgZWxzZSB7 CisgICAgICAgIGhlbHAoInNldGVuZm9yY2UiKTsKKyAgICAgICAgcmV0dXJuIDI7CisgICAgfQor CisgICAgcmV0ID0gbGlieGxfZmxhc2tfc2V0ZW5mb3JjZShjdHgsIG1vZGUpOworCisgICAgaWYg KHJldCkgeworICAgICAgICBpZiAoZXJybm8gPT0gRU5PU1lTKSB7CisgICAgICAgICAgICBmcHJp bnRmKHN0ZGVyciwgIkZsYXNrIFhTTSBkaXNhYmxlZFxuIik7CisgICAgICAgIH0KKyAgICAgICAg ZWxzZQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciBvY2N1cmVkIHdoaWxlIHNl dHRpbmcgZW5mb3JjaW5nIG1vZGUgKCVpKVxuIiwgcmV0KTsKKyAgICB9CisKKyAgICByZXR1cm4g cmV0OworfQorCitpbnQgbWFpbl9sb2FkcG9saWN5KGludCBhcmdjLCBjaGFyICoqYXJndikKK3sK KyAgICBjb25zdCBjaGFyICpwb2xGTmFtZTsKKyAgICBpbnQgcG9sRmQgPSAtMTsKKyAgICB2b2lk ICpwb2xNZW1DcCA9IE5VTEw7CisgICAgc3RydWN0IHN0YXQgaW5mbzsKKyAgICBpbnQgcmV0Owor CisgICAgaWYgKG9wdGluZCA+PSBhcmdjKSB7CisgICAgICAgIGhlbHAoImxvYWRwb2xpY3kiKTsK KyAgICAgICAgcmV0dXJuIDI7CisgICAgfQorCisgICAgcG9sRk5hbWUgPSBhcmd2W29wdGluZF07 CisgICAgcG9sRmQgPSBvcGVuKHBvbEZOYW1lLCBPX1JET05MWSk7CisgICAgaWYgKHBvbEZkIDwg MCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yIG9jY3VycmVkIG9wZW5pbmcgcG9s aWN5IGZpbGUgJyVzJzogJXNcbiIsCisgICAgICAgICAgICAgICAgcG9sRk5hbWUsIHN0cmVycm9y KGVycm5vKSk7CisgICAgICAgIHJldCA9IC0xOworICAgICAgICBnb3RvIGRvbmU7CisgICAgfQor CisgICAgcmV0ID0gc3RhdChwb2xGTmFtZSwgJmluZm8pOworICAgIGlmIChyZXQgPCAwKSB7Cisg ICAgICAgIGZwcmludGYoc3RkZXJyLCAiRXJyb3Igb2NjdXJyZWQgcmV0cmlldmluZyBpbmZvcm1h dGlvbiBhYm91dCIKKyAgICAgICAgICAgICAgICAicG9saWN5IGZpbGUgJyVzJzogJXNcbiIsIHBv bEZOYW1lLCBzdHJlcnJvcihlcnJubykpOworICAgICAgICBnb3RvIGRvbmU7CisgICAgfQorCisg ICAgcG9sTWVtQ3AgPSBtYWxsb2MoaW5mby5zdF9zaXplKTsKKworICAgIHJldCA9IHJlYWQocG9s RmQsIHBvbE1lbUNwLCBpbmZvLnN0X3NpemUpOworICAgIGlmICggcmV0IDwgMCApIHsKKyAgICAg ICAgZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gcmVhZCBuZXcgRmxhc2sgcG9saWN5IGZpbGU6 ICVzXG4iLAorICAgICAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7CisgICAgICAgIGdvdG8g ZG9uZTsKKyAgICB9CisKKyAgICByZXQgPSBsaWJ4bF9mbGFza19sb2FkcG9saWN5KGN0eCwgcG9s TWVtQ3AsIGluZm8uc3Rfc2l6ZSk7CisKKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgICBpZiAo ZXJybm8gPT0gRU5PU1lTKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkZsYXNrIFhT TSBkaXNhYmxlZFxuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlcnJubyA9IC1y ZXQ7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVuYWJsZSB0byBsb2FkIG5ldyBGbGFz ayBwb2xpY3k6ICVzXG4iLAorICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcihlcnJubykpOwor ICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBw cmludGYoIlN1Y2Nlc3NmdWxseSBsb2FkZWQgcG9saWN5LlxuIik7CisgICAgfQorCitkb25lOgor ICAgIGZyZWUocG9sTWVtQ3ApOworICAgIGlmIChwb2xGZCA+PSAwKQorICAgICAgICBjbG9zZShw b2xGZCk7CisKKyAgICByZXR1cm4gcmV0OworfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgor ICogbW9kZTogQworICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5p bAorICogRW5kOgorICovCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK