From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v8 03/24] x86: refactor psr: implement main data structures. Date: Wed, 15 Feb 2017 16:49:18 +0800 Message-ID: <1487148579-7243-4-git-send-email-yi.y.sun@linux.intel.com> References: <1487148579-7243-1-git-send-email-yi.y.sun@linux.intel.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 1cdvKf-0007B9-R8 for xen-devel@lists.xenproject.org; Wed, 15 Feb 2017 08:53:01 +0000 In-Reply-To: <1487148579-7243-1-git-send-email-yi.y.sun@linux.intel.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: kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, he.chen@linux.intel.com, ian.jackson@eu.citrix.com, Yi Sun , mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org VG8gY29uc3RydWN0IGFuIGV4dGVuZGlibGUgZnJhbWV3b3JrLCB3ZSBuZWVkIGFuYWx5emUgUFNS IGZlYXR1cmVzCmFuZCBhYnN0cmFjdCB0aGUgY29tbW9uIHRoaW5ncyBhbmQgZmVhdHVyZSBzcGVj aWZpYyB0aGluZ3MuIFRoZW4sCmVuY2Fwc3VsYXRlIHRoZW0gaW50byBkaWZmZXJlbnQgZGF0YSBz dHJ1Y3R1cmVzLgoKQnkgYW5hbHl6aW5nIFBTUiBmZWF0dXJlcywgd2UgY2FuIGdldCBiZWxvdyBt YXAuCiAgICAgICAgICAgICAgICArLS0tLS0tKy0tLS0tLSstLS0tLS0rCiAgICAgIC0tLS0tLS0t LT58IERvbTAgfCBEb20xIHwgLi4uICB8CiAgICAgIHwgICAgICAgICArLS0tLS0tKy0tLS0tLSst LS0tLS0rCiAgICAgIHwgICAgICAgICAgICB8CiAgICAgIHxEb20gSUQgICAgICB8IGNvc19pZCBv ZiBkb21haW4KICAgICAgfCAgICAgICAgICAgIFYKICAgICAgfCAgICAgICAgKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKwpVc2VyIC0tLS0tLS0tLT58IFBTUiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgU29j a2V0IElEIHwgICstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t KyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgICAgfCAgfCBTb2NrZXQw IEluZm8gfCBTb2NrZXQgMSBJbmZvIHwgICAgLi4uICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgfAogICAgICAgICAgICAgICB8ICArLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSsgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICAg ICAgICAgIHwgICAgfCAgICAgICAgICAgICAgICAgICBjb3NfaWQ9MCAgICAgICAgICAgICAgIGNv c19pZD0xICAgICAgICAgIC4uLiAgICAgICAgIHwKICAgICAgICAgICAgICAgfCAgICB8ICAgICAg ICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSsgfAogICAgICAgICAgICAgICB8ICAgIHwtPlJlZiAgIDogfCAgICAgICAgIHJlZiAw ICAgICAgICAgfCAgICAgICAgIHJlZiAxICAgICAgICAgfCAuLi4gICAgICAgfCB8CiAgICAgICAg ICAgICAgIHwgICAgfCAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rIHwKICAgICAgICAgICAgICAgfCAgICB8ICAgICAg ICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSsgfAogICAgICAgICAgICAgICB8ICAgIHwtPkwzIENBVDogfCAgICAgICAgIGNvcyAw ICAgICAgICAgfCAgICAgICAgIGNvcyAxICAgICAgICAgfCAuLi4gICAgICAgfCB8CiAgICAgICAg ICAgICAgIHwgICAgfCAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rIHwKICAgICAgICAgICAgICAgfCAgICB8ICAgICAg ICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSsgfAogICAgICAgICAgICAgICB8ICAgIHwtPkwyIENBVDogfCAgICAgICAgIGNvcyAw ICAgICAgICAgfCAgICAgICAgIGNvcyAxICAgICAgICAgfCAuLi4gICAgICAgfCB8CiAgICAgICAg ICAgICAgIHwgICAgfCAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rIHwKICAgICAgICAgICAgICAgfCAgICB8ICAgICAg ICAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLSsgfAogICAgICAgICAgICAgICB8ICAgIHwtPkNEUCAgIDogfCBjb3MwIGNvZGUgfCBj b3MwIGRhdGEgfCBjb3MxIGNvZGUgfCBjb3MxIGRhdGEgfCAuLi4gICAgICAgfCB8CiAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rIHwKICAgICAgICAgICAgICAgKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKwoKU28sIHdlIG5lZWQgZGVmaW5lIGEgc29ja2V0IGluZm8gZGF0YSBzdHJ1Y3R1 cmUsICdzdHJ1Y3QKcHNyX3NvY2tldF9pbmZvJyB0byBtYW5hZ2UgaW5mb3JtYXRpb24gcGVyIHNv Y2tldC4gSXQgY29udGFpbnMgYQpyZWZlcmVuY2UgY291bnQgYXJyYXkgYWNjb3JkaW5nIHRvIENP UyBJRCBhbmQgYSBmZWF0dXJlIGxpc3QgdG8KbWFuYWdlIGFsbCBmZWF0dXJlcyBlbmFibGVkLiBF dmVyeSBlbnRyeSBvZiB0aGUgcmVmZXJlbmNlIGNvdW50CmFycmF5IGlzIHVzZWQgdG8gcmVjb3Jk IGhvdyBtYW55IGRvbWFpbnMgYXJlIHVzaW5nIHRoZSBDT1MgcmVnaXN0ZXJzCmFjY29yZGluZyB0 byB0aGUgQ09TIElELiBGb3IgZXhhbXBsZSwgTDMgQ0FUIGFuZCBMMiBDQVQgYXJlIGVuYWJsZWQs CkRvbTEgdXNlcyBDT1NfSUQ9MSByZWdpc3RlcnMgb2YgYm90aCBmZWF0dXJlcyB0byBzYXZlIENC TSB2YWx1ZXMsIGxpa2UKYmVsb3cuCiAgICAgICAgKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0t LS0tKwogICAgICAgIHwgQ09TIDAgfCBDT1MgMSB8IENPUyAyIHwgLi4uIHwKICAgICAgICArLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0rCkwzIENBVCAgfCAweDdmZiB8IDB4MWZmIHwgLi4u ICAgfCAuLi4gfAogICAgICAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLSsKTDIgQ0FU ICB8IDB4ZmYgIHwgMHhmZiAgfCAuLi4gICB8IC4uLiB8CiAgICAgICAgKy0tLS0tLS0rLS0tLS0t LSstLS0tLS0tKy0tLS0tKwoKSWYgRG9tMiBoYXMgc2FtZSBDQk0gdmFsdWVzLCBpdCBjYW4gcmV1 c2UgdGhlc2UgcmVnaXN0ZXJzIHdoaWNoIENPU19JRD0xLgpUaGF0IG1lYW5zLCBib3RoIERvbTEg YW5kIERvbTIgdXNlIHNhbWUgQ09TIHJlZ2lzdGVycyhJRD0xKSB0byBzYXZlIHNhbWUKTDMvTDIg dmFsdWVzLiBTbywgdGhlIHZhbHVlIHJlZlsxXSBpcyAyIHdoaWNoIG1lYW5zIDIgZG9tYWlucyBh cmUgdXNpbmcKQ09TX0lEIDEuCgpUbyBtYW5hZ2UgYSBmZWF0dXJlLCB3ZSBuZWVkIGRlZmluZSBh IGZlYXR1cmUgbm9kZSBkYXRhIHN0cnVjdHVyZSwKJ3N0cnVjdCBmZWF0X25vZGUnLCB0byBtYW5h Z2UgZmVhdHVyZSdzIHNwZWNpZmljIEhXIGluZm8sIGl0cyBjYWxsYmFjawpmdW5jdGlvbnMgKGFs bCBmZWF0dXJlJ3Mgc3BlY2lmaWMgYmVoYXZpb3JzIGFyZSBlbmNhcHN1bGF0ZWQgaW50byB0aGVz ZQpjYWxsYmFjayBmdW5jdGlvbnMpLCBhbmQgYW4gYXJyYXkgb2YgYWxsIENPUyByZWdpc3RlcnMg dmFsdWVzIG9mIHRoaXMKZmVhdHVyZS4KCkNEUCBpcyBhIHNwZWNpYWwgZmVhdHVyZSB3aGljaCB1 c2VzIHR3byBlbnRyaWVzIG9mIHRoZSBhcnJheQpmb3Igb25lIENPUyBJRC4gU28sIHRoZSBudW1i ZXIgb2YgQ0RQIENPUyByZWdpc3RlcnMgaXMgdGhlIGhhbGYgb2YgTDMKQ0FULiBFLmcuIEwzIENB VCBoYXMgMTYgQ09TIHJlZ2lzdGVycywgdGhlbiBDRFAgaGFzIDggQ09TIHJlZ2lzdGVycyBpZgpp dCBpcyBlbmFibGVkLiBDRFAgdXNlcyB0aGUgQ09TIHJlZ2lzdGVycyBhcnJheSBhcyBiZWxvdy4K CiAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rCkNEUCBjb3NfcmVnX3ZhbFtdIGluZGV4OiB8 ICAgICAwICAgICB8ICAgICAxICAgICB8ICAgICAyICAgICB8ICAgICAzICAgICB8ICAgIC4uLiAg ICB8CiAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rCiAgICAgICAgICAgICAgICAgIHZhbHVl OiB8IGNvczAgY29kZSB8IGNvczAgZGF0YSB8IGNvczEgY29kZSB8IGNvczEgZGF0YSB8ICAgIC4u LiAgICB8CiAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rCgpGb3IgbW9yZSBkZXRhaWxzLCBw bGVhc2UgcmVmZXIgU0RNIGFuZCBwYXRjaGVzIHRvIGltcGxlbWVudCAnZ2V0IHZhbHVlJyBhbmQK J3NldCB2YWx1ZScuCgpTaWduZWQtb2ZmLWJ5OiBZaSBTdW4gPHlpLnkuc3VuQGxpbnV4LmludGVs LmNvbT4KUmV2aWV3ZWQtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3Jh Y2xlLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvcHNyLmMgfCAxMDggKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxMDcg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9w c3IuYyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwppbmRleCA5NmE4NTg5Li41YWNkOWNhIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvcHNyLmMKKysrIGIveGVuL2FyY2gveDg2L3Bzci5jCkBAIC0xMywx NiArMTMsMTIyIEBACiAgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yCiAgKiBtb3JlIGRldGFpbHMuCiAgKi8K LSNpbmNsdWRlIDx4ZW4vaW5pdC5oPgogI2luY2x1ZGUgPHhlbi9jcHUuaD4KICNpbmNsdWRlIDx4 ZW4vZXJyLmg+CisjaW5jbHVkZSA8eGVuL2luaXQuaD4KKyNpbmNsdWRlIDx4ZW4vbGlzdC5oPgog I2luY2x1ZGUgPHhlbi9zY2hlZC5oPgogI2luY2x1ZGUgPGFzbS9wc3IuaD4KIAorLyoKKyAqIFRl cm1pbm9sb2d5OgorICogLSBDQVQgICAgICAgICBDYWNoZSBBbGxvY2F0aW9uIFRlY2hub2xvZ3kK KyAqIC0gQ0JNICAgICAgICAgQ2FwYWNpdHkgQml0TWFza3MKKyAqIC0gQ0RQICAgICAgICAgQ29k ZSBhbmQgRGF0YSBQcmlvcml0aXphdGlvbgorICogLSBDT1MvQ0xPUyAgICBDbGFzcyBvZiBTZXJ2 aWNlLiBBbHNvIG1lYW4gQ09TIHJlZ2lzdGVycy4KKyAqIC0gQ09TX01BWCAgICAgTWF4IG51bWJl ciBvZiBDT1MgZm9yIHRoZSBmZWF0dXJlIChtaW51cyAxKQorICogLSBNU1JzICAgICAgICBNYWNo aW5lIFNwZWNpZmljIFJlZ2lzdGVycworICogLSBQU1IgICAgICAgICBJbnRlbCBQbGF0Zm9ybSBT aGFyZWQgUmVzb3VyY2UKKyAqLworCiAjZGVmaW5lIFBTUl9DTVQgICAgICAgICgxPDwwKQogI2Rl ZmluZSBQU1JfQ0FUICAgICAgICAoMTw8MSkKICNkZWZpbmUgUFNSX0NEUCAgICAgICAgKDE8PDIp CiAKKy8qCisgKiBQZXIgU0RNIGNoYXB0ZXIgJ0NhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9neTog Q2FjaGUgTWFzayBDb25maWd1cmF0aW9uJywKKyAqIHRoZSBNU1JzIHJhbmdpbmcgZnJvbSAwQzkw SCB0aHJvdWdoIDBEMEZIIChpbmNsdXNpdmUpLCBlbmFibGVzIHN1cHBvcnQgZm9yCisgKiB1cCB0 byAxMjggTDMgQ0FUIENsYXNzZXMgb2YgU2VydmljZS4gVGhlIENPU19JRD1bMCwxMjddLgorICoK KyAqIFRoZSBNU1JzIHJhbmdpbmcgZnJvbSAwRDEwSCB0aHJvdWdoIDBENEZIIChpbmNsdXNpdmUp LCBlbmFibGVzIHN1cHBvcnQgZm9yCisgKiB1cCB0byA2NCBMMiBDQVQgQ09TLiBUaGUgQ09TX0lE PVswLDYzXS4KKyAqCisgKiBTbywgdGhlIG1heGltdW0gQ09TIHJlZ2lzdGVyIGNvdW50IG9mIG9u ZSBmZWF0dXJlIGlzIDEyOC4KKyAqLworI2RlZmluZSBNQVhfQ09TX1JFR19DTlQgIDEyOAorCisv KgorICogUFNSIGZlYXR1cmVzIGFyZSBtYW5hZ2VkIHBlciBzb2NrZXQuIEJlbG93IHN0cnVjdHVy ZSBkZWZpbmVzIHRoZSBtZW1iZXJzCisgKiB1c2VkIHRvIG1hbmFnZSB0aGVzZSBmZWF0dXJlcy4K KyAqIGZlYXRfbWFzayAtIE1hc2sgdXNlZCB0byByZWNvcmQgZmVhdHVyZXMgZW5hYmxlZCBvbiBz b2NrZXQuIFRoZXJlIG1heSBiZQorICogICAgICAgICAgICAgc29tZSBmZWF0dXJlcyBlbmFibGVk IGF0IHNhbWUgdGltZS4KKyAqIG5yX2ZlYXQgICAtIFJlY29yZCBob3cgbWFueSBmZWF0dXJlcyBl bmFibGVkLgorICogZmVhdF9saXN0IC0gQSBsaXN0IHVzZWQgdG8gbWFuYWdlIGFsbCBmZWF0dXJl cyBlbmFibGVkLgorICogY29zX3JlZiAgIC0gQSByZWZlcmVuY2UgY291bnQgYXJyYXkgdG8gcmVj b3JkIGhvdyBtYW55IGRvbWFpbnMgYXJlIHVzaW5nIHRoZQorICogICAgICAgICAgICAgQ09TX0lE LgorICogICAgICAgICAgICAgRXZlcnkgZW50cnkgb2YgY29zX3JlZiBjb3JyZXNwb25kcyB0byBv bmUgQ09TIElELgorICogcmVmX2xvY2sgIC0gQSBsb2NrIHRvIHByb3RlY3QgY29zX3JlZi4KKyAq Lworc3RydWN0IHBzcl9zb2NrZXRfaW5mbyB7CisgICAgLyoKKyAgICAgKiBJdCBtYXBzIHRvIHZh bHVlcyBkZWZpbmVkIGluICdlbnVtIHBzcl9mZWF0X3R5cGUnIGJlbG93LiBWYWx1ZSBpbiAnZW51 bQorICAgICAqIHBzcl9mZWF0X3R5cGUnIG1lYW5zIHRoZSBiaXQgcG9zaXRpb24uCisgICAgICog Yml0IDA6ICAgTDMgQ0FUCisgICAgICogYml0IDE6ICAgTDMgQ0RQCisgICAgICogYml0IDI6ICAg TDIgQ0FUCisgICAgICovCisgICAgdW5zaWduZWQgaW50IGZlYXRfbWFzazsKKyAgICB1bnNpZ25l ZCBpbnQgbnJfZmVhdDsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIGZlYXRfbGlzdDsKKyAgICB1bnNp Z25lZCBpbnQgY29zX3JlZltNQVhfQ09TX1JFR19DTlRdOworICAgIHNwaW5sb2NrX3QgcmVmX2xv Y2s7Cit9OworCitlbnVtIHBzcl9mZWF0X3R5cGUgeworICAgIFBTUl9TT0NLRVRfTDNfQ0FUID0g MCwKKyAgICBQU1JfU09DS0VUX0wzX0NEUCwKKyAgICBQU1JfU09DS0VUX0wyX0NBVCwKK307CisK Ky8qIENBVC9DRFAgSFcgaW5mbyBkYXRhIHN0cnVjdHVyZS4gKi8KK3N0cnVjdCBwc3JfY2F0X2h3 X2luZm8geworICAgIHVuc2lnbmVkIGludCBjYm1fbGVuOworICAgIHVuc2lnbmVkIGludCBjb3Nf bWF4OworfTsKKworLyogRW5jYXBzdWxhdGUgZmVhdHVyZSBzcGVjaWZpYyBIVyBpbmZvIGhlcmUu ICovCitzdHJ1Y3QgZmVhdF9od19pbmZvIHsKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBw c3JfY2F0X2h3X2luZm8gbDNfY2F0X2luZm87CisgICAgfTsKK307CisKK3N0cnVjdCBmZWF0X25v ZGU7CisKKy8qCisgKiBUaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGZlYXR1cmUgb3BlcmF0aW9uIGNh bGxiYWNrIGZ1bmN0aW9ucy4gRXZlcnkgZmVhdHVyZQorICogZW5hYmxlZCBNVVNUIGltcGxlbWVu dCBzdWNoIGNhbGxiYWNrIGZ1bmN0aW9ucyBhbmQgcmVnaXN0ZXIgdGhlbSB0byBvcHMuCisgKgor ICogRmVhdHVyZSBzcGVjaWZpYyBiZWhhdmlvcnMgd2lsbCBiZSBlbmNhcHN1bGF0ZWQgaW50byB0 aGVzZSBjYWxsYmFjaworICogZnVuY3Rpb25zLiBUaGVuLCB0aGUgbWFpbiBmbG93cyB3aWxsIG5v dCBiZSBjaGFuZ2VkIHdoZW4gaW50cm9kdWNpbmcgYSBuZXcKKyAqIGZlYXR1cmUuCisgKi8KK3N0 cnVjdCBmZWF0X29wcyB7CisgICAgLyogZ2V0X2Nvc19tYXggaXMgdXNlZCB0byBnZXQgZmVhdHVy ZSdzIGNvc19tYXguICovCisgICAgdW5zaWduZWQgaW50ICgqZ2V0X2Nvc19tYXgpKGNvbnN0IHN0 cnVjdCBmZWF0X25vZGUgKmZlYXQpOworfTsKKworLyoKKyAqIFRoaXMgc3RydWN0dXJlIHJlcHJl c2VudHMgb25lIGZlYXR1cmUuCisgKiBmZWF0dXJlICAgICAtIFdoaWNoIGZlYXR1cmUgaXQgaXMu CisgKiBmZWF0X29wcyAgICAtIEZlYXR1cmUgb3BlcmF0aW9uIGNhbGxiYWNrIGZ1bmN0aW9ucy4K KyAqIGluZm8gICAgICAgIC0gRmVhdHVyZSBIVyBpbmZvLgorICogY29zX3JlZ192YWwgLSBBcnJh eSB0byBzdG9yZSB0aGUgdmFsdWVzIG9mIENPUyByZWdpc3RlcnMuIE9uZSBlbnRyeSBzdG9yZXMK KyAqICAgICAgICAgICAgICAgdGhlIHZhbHVlIG9mIG9uZSBDT1MgcmVnaXN0ZXIuCisgKiAgICAg ICAgICAgICAgIEZvciBMMyBDQVQgYW5kIEwyIENBVCwgb25lIGVudHJ5IGNvcnJlc3BvbmRzIHRv IG9uZSBDT1NfSUQuCisgKiAgICAgICAgICAgICAgIEZvciBDRFAsIHR3byBlbnRyaWVzIGNvcnJl c3BvbmQgdG8gb25lIENPU19JRC4gRS5nLgorICogICAgICAgICAgICAgICBDT1NfSUQ9MCBjb3Jy ZXNwb25kcyB0byBjb3NfcmVnX3ZhbFswXSAoRGF0YSkgYW5kCisgKiAgICAgICAgICAgICAgIGNv c19yZWdfdmFsWzFdIChDb2RlKS4KKyAqIGxpc3QgICAgICAgIC0gRmVhdHVyZSBsaXN0LgorICov CitzdHJ1Y3QgZmVhdF9ub2RlIHsKKyAgICBlbnVtIHBzcl9mZWF0X3R5cGUgZmVhdHVyZTsKKyAg ICBzdHJ1Y3QgZmVhdF9vcHMgb3BzOworICAgIHN0cnVjdCBmZWF0X2h3X2luZm8gaW5mbzsKKyAg ICB1aW50NjRfdCBjb3NfcmVnX3ZhbFtNQVhfQ09TX1JFR19DTlRdOworICAgIHN0cnVjdCBsaXN0 X2hlYWQgbGlzdDsKK307CisKIHN0cnVjdCBwc3JfYXNzb2MgewogICAgIHVpbnQ2NF90IHZhbDsK ICAgICB1aW50NjRfdCBjb3NfbWFzazsKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==