From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changlong Xie Subject: [PATCH v13 05/26] tools/libx{l, c}: add back channel to libxc Date: Fri, 25 Mar 2016 14:44:12 +0800 Message-ID: <1458888273-7469-6-git-send-email-xiecl.fnst@cn.fujitsu.com> References: <1458888273-7469-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: <1458888273-7469-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 , Li Zhijian , Gui Jianfeng , Jiang Yunhong , Dong Eddie , Anthony Perard , Shriram Rajagopalan , Yang Hongyang List-Id: xen-devel@lists.xenproject.org RnJvbTogV2VuIENvbmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4KCkluIENPTE8gbW9kZSwg Ym90aCBWTXMgYXJlIHJ1bm5pbmcsIGFuZCBhcmUgY29uc2lkZXJlZCBpbiBzeW5jIGlmIHRoZQp2 aXNpYmxlIG5ldHdvcmsgdHJhZmZpYyBpcyBpZGVudGljYWwuICBBZnRlciBzb21lIHRpbWUsIHRo ZXkgZmFsbCBvdXQgb2YKc3luYy4KCkF0IHRoaXMgcG9pbnQsIHRoZSB0d28gVk1zIGhhdmUgZGVm aW5pdGVseSBkaXZlcmdlZC4gIExldHMgY2FsbCB0aGUKcHJpbWFyeSBkaXJ0eSBiaXRtYXAgc2V0 IEEsIHdoaWxlIHRoZSBzZWNvbmRhcnkgZGlydHkgYml0bWFwIHNldCBCLgoKU2V0cyBBIGFuZCBC IGFyZSBkaWZmZXJlbnQuCgpVbmRlciBub3JtYWwgbWlncmF0aW9uLCB0aGUgcGFnZSBkYXRhIGZv ciBzZXQgQSB3aWxsIGJlIHNlbnQgZnJvbSB0aGUKcHJpbWFyeSB0byB0aGUgc2Vjb25kYXJ5LgoK SG93ZXZlciwgdGhlIHNldCBkaWZmZXJlbmNlIEIgLSBBICh0aGUgb25lIGluIEIgYnV0IG5vdCBp biBBLCBsZXRzCmNhbGwgdGhpcyBDKSBpcyBvdXQtb2YtZGF0ZSBvbiB0aGUgc2Vjb25kYXJ5ICh3 aXRoIHJlc3BlY3QgdG8gdGhlCnByaW1hcnkpIGFuZCB3aWxsIG5vdCBiZSBzZW50IGJ5IHRoZSBw cmltYXJ5ICh0byBzZWNvbmRhcnkpLCBhcyBpdAp3YXMgbm90IG1lbW9yeSBkaXJ0aWVkIGJ5IHRo ZSBwcmltYXJ5LiBUaGUgc2Vjb25kYXJ5IG5lZWRzIEMgcGFnZSBkYXRhCnRvIHJlY29uc3RydWN0 IGFuIGV4YWN0IGNvcHkgb2YgdGhlIHByaW1hcnkgYXQgdGhlIGNoZWNrcG9pbnQuCgpUaGUgc2Vj b25kYXJ5IGNhbm5vdCBjYWxjdWxhdGUgQyBhcyBpdCBkb2Vzbid0IGtub3cgQS4gIEluc3RlYWQs IHRoZQpzZWNvbmRhcnkgbXVzdCBzZW5kIEIgdG8gdGhlIHByaW1hcnksIGF0IHdoaWNoIHBvaW50 IHRoZSBwcmltYXJ5CmNhbGN1bGF0ZXMgdGhlIHVuaW9uIG9mIEEgYW5kIEIgKGxldHMgY2FsbCB0 aGlzIEQpIHdoaWNoIGlzIGFsbCB0aGUKcGFnZXMgZGlydGllZCBieSBib3RoIHRoZSBwcmltYXJ5 IGFuZCB0aGUgc2Vjb25kYXJ5LCBhbmQgc2VuZHMgYWxsIHBhZ2UKZGF0YSBjb3ZlcmVkIGJ5IEQu CgpJbiB0aGUgZ2VuZXJhbCBjYXNlLCBEIGlzIGEgc3VwZXJzZXQgb2YgYm90aCBBIGFuZCBCLiAg V2l0aG91dCB0aGUKYmFja2NoYW5uZWwgZGlydHkgYml0bWFwLCBhIENPTE8gY2hlY2twb2ludCBj YW4ndCByZWNvbnN0cnVjdCBhIHZhbGlkCmNvcHkgb2YgdGhlIHByaW1hcnkuCgpXZSB0cmFuc2Zl ciB0aGUgZGlydHkgYml0bWFwIG9uIGxpYnhjIHNpZGUsIHNvIHdlIG5lZWQgdG8gaW50cm9kdWNl IGJhY2sKY2hhbm5lbCB0byBsaWJ4Yy4KCk5vdGU6IGl0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBw YXBlci4gV2UgY2hhbmdlIHRoZSBvcmlnaW5hbCBkZXNpZ24gdG8KdGhlIGN1cnJlbnQgb25lLCBh Y2NvcmRpbmcgdG8gb3VyIGZvbGxvd2luZyBjb25jZXJuczoKMS4gVGhlIG9yaWdpbmFsIGRlc2ln biBuZWVkcyBleHRyYSBtZW1vcnkgb24gU2Vjb25kYXJ5IGhvc3QuIFdoZW4gdGhlcmUncwogICBt dWx0aXBsZSBiYWNrdXBzIG9uIG9uZSBob3N0LCB0aGUgbWVtb3J5IGNvc3QgaXMgaGlnaC4KMi4g VGhlIG1lbW9yeSBjYWNoZSBjb2RlIHdpbGwgYmUgYW5vdGhlciAxayssIGl0IHdpbGwgbWFrZSB0 aGUgcmV2aWV3CiAgIG1vcmUgdGltZSBjb25zdW1pbmcuCgpOb3RlOiB0aGlzIHBhdGNoIG1lcmVs eSBhZGRzIG5ldyBwYXJhbWV0ZXJzIHRvIHZhcmlvdXMgcHJvdG90eXBlcyBhbmQKZnVuY3Rpb25z LiBUaGUgbmV3IHBhcmFtZXRlcnMgYXJlIHVzZWQgaW4gbGF0ZXIgcGF0Y2ggY2FsbGVkCiJsaWJ4 Yy9yZXN0b3JlOiBzZW5kIGRpcnR5IHBmbiBsaXN0IHRvIHByaW1hcnkgd2hlbiBjaGVja3BvaW50 IHVuZGVyCkNPTE8iLgoKU2lnbmVkLW9mZi1ieTogWWFuZyBIb25neWFuZyA8aG9uZ3lhbmcueWFu Z0BlYXN5c3RhY2suY24+ClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w ZXIzQGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IENoYW5nbG9uZyBYaWUgPHhpZWNsLmZuc3RA Y24uZnVqaXRzdS5jb20+CkNDOiBJYW4gQ2FtcGJlbGwgPElhbi5DYW1wYmVsbEBjaXRyaXguY29t PgpDQzogSWFuIEphY2tzb24gPElhbi5KYWNrc29uQGV1LmNpdHJpeC5jb20+CkNDOiBXZWkgTGl1 IDx3ZWkubGl1MkBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogS29ucmFkIFJ6ZXN6dXRlayBXaWxr IDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpBY2tlZC1ieTogSWFuIEphY2tzb24gPGlhbi5qYWNr c29uQGV1LmNpdHJpeC5jb20+Ci0tLQogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5ndWVzdC5oICAg fCAgNCArKy0tCiB0b29scy9saWJ4Yy94Y19ub21pZ3JhdGUuYyAgICAgICB8ICA0ICsrLS0KIHRv b2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmUuYyAgICAgIHwgIDIgKy0KIHRvb2xzL2xpYnhjL3hjX3Ny X3NhdmUuYyAgICAgICAgIHwgIDIgKy0KIHRvb2xzL2xpYnhsL2xpYnhsX3NhdmVfY2FsbG91dC5j IHwgMjEgKysrKysrKysrKysrKysrLS0tLS0tCiB0b29scy9saWJ4bC9saWJ4bF9zYXZlX2hlbHBl ci5jICB8ICA4ICsrKysrKy0tCiA2IGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDE0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuZ3Vlc3Qu aCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuZ3Vlc3QuaAppbmRleCA0ZjBiMDZlLi5iNGY0YmZi IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmd1ZXN0LmgKKysrIGIvdG9vbHMv bGlieGMvaW5jbHVkZS94ZW5ndWVzdC5oCkBAIC05Myw3ICs5Myw3IEBAIHR5cGVkZWYgZW51bSB7 CiBpbnQgeGNfZG9tYWluX3NhdmUoeGNfaW50ZXJmYWNlICp4Y2gsIGludCBpb19mZCwgdWludDMy X3QgZG9tLCB1aW50MzJfdCBtYXhfaXRlcnMsCiAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg bWF4X2ZhY3RvciwgdWludDMyX3QgZmxhZ3MgLyogWENGTEFHU194eHggKi8sCiAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHNhdmVfY2FsbGJhY2tzKiBjYWxsYmFja3MsIGludCBodm0sCi0gICAg ICAgICAgICAgICAgICAgeGNfbWlncmF0aW9uX3N0cmVhbV90IHN0cmVhbV90eXBlKTsKKyAgICAg ICAgICAgICAgICAgICB4Y19taWdyYXRpb25fc3RyZWFtX3Qgc3RyZWFtX3R5cGUsIGludCByZWN2 X2ZkKTsKIAogLyogY2FsbGJhY2tzIHByb3ZpZGVkIGJ5IHhjX2RvbWFpbl9yZXN0b3JlICovCiBz dHJ1Y3QgcmVzdG9yZV9jYWxsYmFja3MgewpAQCAtMTMyLDcgKzEzMiw3IEBAIGludCB4Y19kb21h aW5fcmVzdG9yZSh4Y19pbnRlcmZhY2UgKnhjaCwgaW50IGlvX2ZkLCB1aW50MzJfdCBkb20sCiAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqY29uc29sZV9tZm4sIGRvbWlkX3Qg Y29uc29sZV9kb21pZCwKICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaHZtLCB1 bnNpZ25lZCBpbnQgcGFlLCBpbnQgc3VwZXJwYWdlcywKICAgICAgICAgICAgICAgICAgICAgICB4 Y19taWdyYXRpb25fc3RyZWFtX3Qgc3RyZWFtX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHJlc3RvcmVfY2FsbGJhY2tzICpjYWxsYmFja3MpOworICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCByZXN0b3JlX2NhbGxiYWNrcyAqY2FsbGJhY2tzLCBpbnQgc2VuZF9iYWNrX2Zk KTsKIAogLyoqCiAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGEgZG9tYWluIGZvciBhIHBh cmF2aXJ0dWFsaXplZCBMaW51eApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfbm9taWdyYXRl LmMgYi90b29scy9saWJ4Yy94Y19ub21pZ3JhdGUuYwppbmRleCAwOGUxZjhjLi4xNWM4MzhmIDEw MDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19ub21pZ3JhdGUuYworKysgYi90b29scy9saWJ4Yy94 Y19ub21pZ3JhdGUuYwpAQCAtMjMsNyArMjMsNyBAQAogaW50IHhjX2RvbWFpbl9zYXZlKHhjX2lu dGVyZmFjZSAqeGNoLCBpbnQgaW9fZmQsIHVpbnQzMl90IGRvbSwgdWludDMyX3QgbWF4X2l0ZXJz LAogICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG1heF9mYWN0b3IsIHVpbnQzMl90IGZsYWdz LAogICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzYXZlX2NhbGxiYWNrcyogY2FsbGJhY2tzLCBp bnQgaHZtLAotICAgICAgICAgICAgICAgICAgIHhjX21pZ3JhdGlvbl9zdHJlYW1fdCBzdHJlYW1f dHlwZSkKKyAgICAgICAgICAgICAgICAgICB4Y19taWdyYXRpb25fc3RyZWFtX3Qgc3RyZWFtX3R5 cGUsIGludCByZWN2X2ZkKQogewogICAgIGVycm5vID0gRU5PU1lTOwogICAgIHJldHVybiAtMTsK QEAgLTM1LDcgKzM1LDcgQEAgaW50IHhjX2RvbWFpbl9yZXN0b3JlKHhjX2ludGVyZmFjZSAqeGNo LCBpbnQgaW9fZmQsIHVpbnQzMl90IGRvbSwKICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBsb25nICpjb25zb2xlX21mbiwgZG9taWRfdCBjb25zb2xlX2RvbWlkLAogICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBodm0sIHVuc2lnbmVkIGludCBwYWUsIGludCBzdXBlcnBh Z2VzLAogICAgICAgICAgICAgICAgICAgICAgIHhjX21pZ3JhdGlvbl9zdHJlYW1fdCBzdHJlYW1f dHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcmVzdG9yZV9jYWxsYmFja3MgKmNh bGxiYWNrcykKKyAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcmVzdG9yZV9jYWxsYmFja3Mg KmNhbGxiYWNrcywgaW50IHNlbmRfYmFja19mZCkKIHsKICAgICBlcnJubyA9IEVOT1NZUzsKICAg ICByZXR1cm4gLTE7CmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19zcl9yZXN0b3JlLmMgYi90 b29scy9saWJ4Yy94Y19zcl9yZXN0b3JlLmMKaW5kZXggODE5NDAxZC4uMmI5YTBlYSAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGMveGNfc3JfcmVzdG9yZS5jCisrKyBiL3Rvb2xzL2xpYnhjL3hjX3Ny X3Jlc3RvcmUuYwpAQCAtNzI2LDcgKzcyNiw3IEBAIGludCB4Y19kb21haW5fcmVzdG9yZSh4Y19p bnRlcmZhY2UgKnhjaCwgaW50IGlvX2ZkLCB1aW50MzJfdCBkb20sCiAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyAqY29uc29sZV9nZm4sIGRvbWlkX3QgY29uc29sZV9kb21pZCwK ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaHZtLCB1bnNpZ25lZCBpbnQgcGFl LCBpbnQgc3VwZXJwYWdlcywKICAgICAgICAgICAgICAgICAgICAgICB4Y19taWdyYXRpb25fc3Ry ZWFtX3Qgc3RyZWFtX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJlc3RvcmVf Y2FsbGJhY2tzICpjYWxsYmFja3MpCisgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJlc3Rv cmVfY2FsbGJhY2tzICpjYWxsYmFja3MsIGludCBzZW5kX2JhY2tfZmQpCiB7CiAgICAgc3RydWN0 IHhjX3NyX2NvbnRleHQgY3R4ID0KICAgICAgICAgewpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMv eGNfc3Jfc2F2ZS5jIGIvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZS5jCmluZGV4IDM4OGFlN2YuLjFj Y2RiYmIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmUuYworKysgYi90b29scy9s aWJ4Yy94Y19zcl9zYXZlLmMKQEAgLTgzMCw3ICs4MzAsNyBAQCBzdGF0aWMgaW50IHNhdmUoc3Ry dWN0IHhjX3NyX2NvbnRleHQgKmN0eCwgdWludDE2X3QgZ3Vlc3RfdHlwZSkKIGludCB4Y19kb21h aW5fc2F2ZSh4Y19pbnRlcmZhY2UgKnhjaCwgaW50IGlvX2ZkLCB1aW50MzJfdCBkb20sCiAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QgbWF4X2l0ZXJzLCB1aW50MzJfdCBtYXhfZmFjdG9yLCB1 aW50MzJfdCBmbGFncywKICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2F2ZV9jYWxsYmFja3Mq IGNhbGxiYWNrcywgaW50IGh2bSwKLSAgICAgICAgICAgICAgICAgICB4Y19taWdyYXRpb25fc3Ry ZWFtX3Qgc3RyZWFtX3R5cGUpCisgICAgICAgICAgICAgICAgICAgeGNfbWlncmF0aW9uX3N0cmVh bV90IHN0cmVhbV90eXBlLCBpbnQgcmVjdl9mZCkKIHsKICAgICBzdHJ1Y3QgeGNfc3JfY29udGV4 dCBjdHggPQogICAgICAgICB7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9zYXZlX2Nh bGxvdXQuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3NhdmVfY2FsbG91dC5jCmluZGV4IDA2OTY3ZGYu LmYxNWMyMzUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3NhdmVfY2FsbG91dC5jCisr KyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3NhdmVfY2FsbG91dC5jCkBAIC0yNyw3ICsyNyw3IEBACiAg Ki8KIHN0YXRpYyB2b2lkIHJ1bl9oZWxwZXIobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fc2F2ZV9o ZWxwZXJfc3RhdGUgKnNocywKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbW9k ZV9hcmcsCi0gICAgICAgICAgICAgICAgICAgICAgIGludCBzdHJlYW1fZmQsCisgICAgICAgICAg ICAgICAgICAgICAgIGludCBzdHJlYW1fZmQsIGludCBiYWNrX2NoYW5uZWxfZmQsCiAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcHJlc2VydmVfZmRzLCBpbnQgbnVtX3ByZXNlcnZl X2ZkcywKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAqYXJnbnVt cywgaW50IG51bV9hcmdudW1zKTsKIApAQCAtNTAsNiArNTAsNyBAQCB2b2lkIGxpYnhsX194Y19k b21haW5fcmVzdG9yZShsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19kb21haW5fY3JlYXRlX3N0YXRl ICpkY3MsCiAgICAgLyogQ29udmVuaWVuY2UgYWxpYXNlcyAqLwogICAgIGNvbnN0IHVpbnQzMl90 IGRvbWlkID0gZGNzLT5ndWVzdF9kb21pZDsKICAgICBjb25zdCBpbnQgcmVzdG9yZV9mZCA9IGRj cy0+bGlieGNfZmQ7CisgICAgY29uc3QgaW50IHNlbmRfYmFja19mZCA9IGRjcy0+c2VuZF9iYWNr X2ZkOwogICAgIGxpYnhsX19kb21haW5fYnVpbGRfc3RhdGUgKmNvbnN0IHN0YXRlID0gJmRjcy0+ YnVpbGRfc3RhdGU7CiAKICAgICB1bnNpZ25lZCBjYmZsYWdzID0KQEAgLTcxLDcgKzcyLDcgQEAg dm9pZCBsaWJ4bF9feGNfZG9tYWluX3Jlc3RvcmUobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZG9t YWluX2NyZWF0ZV9zdGF0ZSAqZGNzLAogICAgIHNocy0+Y2FsbGVyX3N0YXRlID0gZGNzOwogICAg IHNocy0+bmVlZF9yZXN1bHRzID0gMTsKIAotICAgIHJ1bl9oZWxwZXIoZWdjLCBzaHMsICItLXJl c3RvcmUtZG9tYWluIiwgcmVzdG9yZV9mZCwgMCwgMCwKKyAgICBydW5faGVscGVyKGVnYywgc2hz LCAiLS1yZXN0b3JlLWRvbWFpbiIsIHJlc3RvcmVfZmQsIHNlbmRfYmFja19mZCwgMCwgMCwKICAg ICAgICAgICAgICAgIGFyZ251bXMsIEFSUkFZX1NJWkUoYXJnbnVtcykpOwogfQogCkBAIC05NSw3 ICs5Niw3IEBAIHZvaWQgbGlieGxfX3hjX2RvbWFpbl9zYXZlKGxpYnhsX19lZ2MgKmVnYywgbGli eGxfX2RvbWFpbl9zYXZlX3N0YXRlICpkc3MsCiAgICAgc2hzLT5jYWxsZXJfc3RhdGUgPSBkc3M7 CiAgICAgc2hzLT5uZWVkX3Jlc3VsdHMgPSAwOwogCi0gICAgcnVuX2hlbHBlcihlZ2MsIHNocywg Ii0tc2F2ZS1kb21haW4iLCBkc3MtPmZkLAorICAgIHJ1bl9oZWxwZXIoZWdjLCBzaHMsICItLXNh dmUtZG9tYWluIiwgZHNzLT5mZCwgZHNzLT5yZWN2X2ZkLAogICAgICAgICAgICAgICAgTlVMTCwg MCwKICAgICAgICAgICAgICAgIGFyZ251bXMsIEFSUkFZX1NJWkUoYXJnbnVtcykpOwogICAgIHJl dHVybjsKQEAgLTE0MSwxMiArMTQyLDE0IEBAIHN0YXRpYyBpbnQgZHVwX2Nsb2V4ZWMobGlieGxf X2djICpnYywgaW50IGZkLCBjb25zdCBjaGFyICp3aGF0KQogICogMSkgUGF0aCB0byBsaWJ4bC1z YXZlLWhlbHBlci4KICAqIDIpIC0tW3Jlc3RvcmV8c2F2ZV0tZG9tYWluLgogICogMykgc3RyZWFt IGZpbGUgZGVzY3JpcHRvci4KKyAqIDQpIGJhY2sgY2hhbm5lbCBmaWxlIGRlc2NyaXB0b3IuCiAg KiBuKSBzYXZlL3Jlc3RvcmUgc3BlY2lmaWMgcGFyYW1ldGVycy4KLSAqIDQpIEEgXDAgYXQgdGhl IGVuZC4KKyAqIDUpIEEgXDAgYXQgdGhlIGVuZC4KICAqLwotI2RlZmluZSBIRUxQRVJfTlJfQVJH UyA0CisjZGVmaW5lIEhFTFBFUl9OUl9BUkdTIDUKIHN0YXRpYyB2b2lkIHJ1bl9oZWxwZXIobGli eGxfX2VnYyAqZWdjLCBsaWJ4bF9fc2F2ZV9oZWxwZXJfc3RhdGUgKnNocywKLSAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqbW9kZV9hcmcsIGludCBzdHJlYW1fZmQsCisgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm1vZGVfYXJnLAorICAgICAgICAgICAgICAgICAg ICAgICBpbnQgc3RyZWFtX2ZkLCBpbnQgYmFja19jaGFubmVsX2ZkLAogICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBpbnQgKnByZXNlcnZlX2ZkcywgaW50IG51bV9wcmVzZXJ2ZV9mZHMsCiAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmFyZ251bXMsIGludCBu dW1fYXJnbnVtcykKIHsKQEAgLTE3OSw2ICsxODIsNyBAQCBzdGF0aWMgdm9pZCBydW5faGVscGVy KGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX3NhdmVfaGVscGVyX3N0YXRlICpzaHMsCiAgICAgKmFy ZysrID0gZ2V0ZW52KCJMSUJYTF9TQVZFX0hFTFBFUiIpID86IExJQkVYRUNfQklOICIvIiAibGli eGwtc2F2ZS1oZWxwZXIiOwogICAgICphcmcrKyA9IG1vZGVfYXJnOwogICAgIGNvbnN0IGNoYXIg KipzdHJlYW1fZmRfYXJnID0gYXJnKys7CisgICAgY29uc3QgY2hhciAqKmJhY2tfY2hhbm5lbF9m ZF9hcmcgPSBhcmcrKzsKICAgICBmb3IgKGk9MDsgaTxudW1fYXJnbnVtczsgaSsrKQogICAgICAg ICAqYXJnKysgPSBHQ1NQUklOVEYoIiVsdSIsIGFyZ251bXNbaV0pOwogICAgICphcmcrKyA9IDA7 CkBAIC0yMDYsNiArMjEwLDExIEBAIHN0YXRpYyB2b2lkIHJ1bl9oZWxwZXIobGlieGxfX2VnYyAq ZWdjLCBsaWJ4bF9fc2F2ZV9oZWxwZXJfc3RhdGUgKnNocywKICAgICAgICAgc3RyZWFtX2ZkID0g ZHVwX2Nsb2V4ZWMoZ2MsIHN0cmVhbV9mZCwgIm1pZ3JhdGlvbiBzdHJlYW0gZmQiKTsKICAgICAg ICAgKnN0cmVhbV9mZF9hcmcgPSBHQ1NQUklOVEYoIiVkIiwgc3RyZWFtX2ZkKTsKIAorICAgICAg ICBpZiAoYmFja19jaGFubmVsX2ZkID49IDApCisgICAgICAgICAgICBiYWNrX2NoYW5uZWxfZmQg PSBkdXBfY2xvZXhlYyhnYywgYmFja19jaGFubmVsX2ZkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIm1pZ3JhdGlvbiBiYWNrIGNoYW5uZWwgZmQiKTsKKyAgICAg ICAgKmJhY2tfY2hhbm5lbF9mZF9hcmcgPSBHQ1NQUklOVEYoIiVkIiwgYmFja19jaGFubmVsX2Zk KTsKKwogICAgICAgICBmb3IgKGk9MDsgaTxudW1fcHJlc2VydmVfZmRzOyBpKyspCiAgICAgICAg ICAgICBpZiAocHJlc2VydmVfZmRzW2ldID49IDApIHsKICAgICAgICAgICAgICAgICBhc3NlcnQo cHJlc2VydmVfZmRzW2ldID4gMik7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9zYXZl X2hlbHBlci5jIGIvdG9vbHMvbGlieGwvbGlieGxfc2F2ZV9oZWxwZXIuYwppbmRleCAwZmQ3MDIy Li41ZmU2NDJhIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9zYXZlX2hlbHBlci5jCisr KyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3NhdmVfaGVscGVyLmMKQEAgLTIzOCw2ICsyMzgsNyBAQCBz dGF0aWMgc3RydWN0IHJlc3RvcmVfY2FsbGJhY2tzIGhlbHBlcl9yZXN0b3JlX2NhbGxiYWNrczsK IGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsKICAgICBpbnQgcjsKKyAgICBpbnQg c2VuZF9iYWNrX2ZkLCByZWN2X2ZkOwogCiAjZGVmaW5lIE5FWFRBUkcgKCsrYXJndiwgYXNzZXJ0 KCphcmd2KSwgKmFyZ3YpCiAKQEAgLTI0Nyw2ICsyNDgsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAgICAgaWYgKCFzdHJjbXAobW9kZSwiLS1zYXZlLWRvbWFpbiIpKSB7CiAK ICAgICAgICAgaW9fZmQgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvaShORVhUQVJH KTsKKyAgICAgICAgcmVjdl9mZCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRvaShORVhU QVJHKTsKICAgICAgICAgdWludDMyX3QgZG9tID0gICAgICAgICAgICAgICAgICAgICAgc3RydG91 bChORVhUQVJHLDAsMTApOwogICAgICAgICB1aW50MzJfdCBtYXhfaXRlcnMgPSAgICAgICAgICAg ICAgICBzdHJ0b3VsKE5FWFRBUkcsMCwxMCk7CiAgICAgICAgIHVpbnQzMl90IG1heF9mYWN0b3Ig PSAgICAgICAgICAgICAgIHN0cnRvdWwoTkVYVEFSRywwLDEwKTsKQEAgLTI2MiwxMiArMjY0LDE0 IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgc2V0dXBfc2lnbmFs cyhzYXZlX3NpZ25hbF9oYW5kbGVyKTsKIAogICAgICAgICByID0geGNfZG9tYWluX3NhdmUoeGNo LCBpb19mZCwgZG9tLCBtYXhfaXRlcnMsIG1heF9mYWN0b3IsIGZsYWdzLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmhlbHBlcl9zYXZlX2NhbGxiYWNrcywgaHZtLCBzdHJlYW1fdHlwZSk7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAmaGVscGVyX3NhdmVfY2FsbGJhY2tzLCBodm0s IHN0cmVhbV90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdl9mZCk7CiAgICAg ICAgIGNvbXBsZXRlKHIpOwogCiAgICAgfSBlbHNlIGlmICghc3RyY21wKG1vZGUsIi0tcmVzdG9y ZS1kb21haW4iKSkgewogCiAgICAgICAgIGlvX2ZkID0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGF0b2koTkVYVEFSRyk7CisgICAgICAgIHNlbmRfYmFja19mZCA9ICAgICAgICAgICAgICAg ICAgICAgIGF0b2koTkVYVEFSRyk7CiAgICAgICAgIHVpbnQzMl90IGRvbSA9ICAgICAgICAgICAg ICAgICAgICAgIHN0cnRvdWwoTkVYVEFSRywwLDEwKTsKICAgICAgICAgdW5zaWduZWQgc3RvcmVf ZXZ0Y2huID0gICAgICAgICAgICAgc3RydG91bChORVhUQVJHLDAsMTApOwogICAgICAgICBkb21p ZF90IHN0b3JlX2RvbWlkID0gICAgICAgICAgICAgICBzdHJ0b3VsKE5FWFRBUkcsMCwxMCk7CkBA IC0yOTIsNyArMjk2LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVfZG9taWQsIGNvbnNvbGVfZXZ0Y2huLCAmY29u c29sZV9tZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlX2RvbWlkLCBo dm0sIHBhZSwgc3VwZXJwYWdlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVh bV90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhlbHBlcl9yZXN0b3JlX2Nh bGxiYWNrcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaGVscGVyX3Jlc3RvcmVf Y2FsbGJhY2tzLCBzZW5kX2JhY2tfZmQpOwogICAgICAgICBoZWxwZXJfc3R1Yl9yZXN0b3JlX3Jl c3VsdHMoc3RvcmVfbWZuLGNvbnNvbGVfbWZuLDApOwogICAgICAgICBjb21wbGV0ZShyKTsKIAot LSAKMS45LjMKCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDov L2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==