From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v4 03/24] x86: refactor psr: implement main data structures. Date: Wed, 14 Dec 2016 12:07:43 +0800 Message-ID: <1481688484-5093-4-git-send-email-yi.y.sun@linux.intel.com> References: <1481688484-5093-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 1cH7RO-0004n4-1H for xen-devel@lists.xenproject.org; Wed, 14 Dec 2016 11:09:42 +0000 In-Reply-To: <1481688484-5093-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: 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 dmFsdWVzIG9mIHRoaXMKZmVhdHVyZS4gQ0RQIGlzIGEgc3BlY2lhbCBmZWF0dXJlIHdoaWNoIHVz ZXMgdHdvIGVudHJpZXMgb2YgdGhlIGFycmF5CmZvciBvbmUgQ09TIElELiBTbywgdGhlIG51bWJl ciBvZiBDRFAgQ09TIHJlZ2lzdGVycyBpcyB0aGUgaGFsZiBvZiBMMwpDQVQuIEUuZy4gTDMgQ0FU IGhhcyAxNiBDT1MgcmVnaXN0ZXJzLCB0aGVuIENEUCBoYXMgOCBDT1MgcmVnaXN0ZXJzIGlmCml0 IGlzIGVuYWJsZWQuCgpGb3IgZGV0YWlscywgcGxlYXNlIHJlZmVyIHNwZWMgYW5kIGNvZGVzLgoK U2lnbmVkLW9mZi1ieTogWWkgU3VuIDx5aS55LnN1bkBsaW51eC5pbnRlbC5jb20+Ci0tLQogeGVu L2FyY2gveDg2L3Bzci5jIHwgMTExICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHNyLmMgYi94ZW4vYXJjaC94ODYvcHNyLmMKaW5kZXgg OTZhODU4OS4uNDlhNDU5OCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Bzci5jCisrKyBiL3hl bi9hcmNoL3g4Ni9wc3IuYwpAQCAtMTcsMTIgKzE3LDEyMyBAQAogI2luY2x1ZGUgPHhlbi9jcHUu aD4KICNpbmNsdWRlIDx4ZW4vZXJyLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CisjaW5jbHVk ZSA8eGVuL2xpc3QuaD4KICNpbmNsdWRlIDxhc20vcHNyLmg+CiAKKy8qCisgKiBUZXJtaW5vbG9n eToKKyAqIC0gQ0FUICAgICAgICAgQ2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5CisgKiAtIENC TSAgICAgICAgIENhcGFjaXR5IEJpdE1hc2tzCisgKiAtIENEUCAgICAgICAgIENvZGUgYW5kIERh dGEgUHJpb3JpdGl6YXRpb24KKyAqIC0gQ09TL0NMT1MgICAgQ2xhc3Mgb2YgU2VydmljZS4gQWxz byBtZWFuIENPUyByZWdpc3RlcnMuCisgKiAtIENPU19NQVggICAgIE1heCBudW1iZXIgb2YgQ09T IGZvciB0aGUgZmVhdHVyZSAobWludXMgMSkKKyAqIC0gTVNScyAgICAgICAgTWFjaGluZSBTcGVj aWZpYyBSZWdpc3RlcnMKKyAqIC0gUFNSICAgICAgICAgSW50ZWwgUGxhdGZvcm0gU2hhcmVkIFJl c291cmNlCisgKi8KKwogI2RlZmluZSBQU1JfQ01UICAgICAgICAoMTw8MCkKICNkZWZpbmUgUFNS X0NBVCAgICAgICAgKDE8PDEpCiAjZGVmaW5lIFBTUl9DRFAgICAgICAgICgxPDwyKQogCisvKgor ICogUGVyIFNETSAxNy4xNy4zLjMgJ0NhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9neTogQ2FjaGUg TWFzayBDb25maWd1cmF0aW9uJywKKyAqIHRoZSBNU1JzIHJhbmdlIGZyb20gMEM5MEggdGhyb3Vn aCAwRDBGSCAoaW5jbHVzaXZlKSwgZW5hYmxlcyBzdXBwb3J0IGZvcgorICogdXAgdG8gMTI4IEwz IENBVCBDbGFzc2VzIG9mIFNlcnZpY2UuIFRoZSBDT1NfSUQ9WzAsMTI3XS4KKyAqCisgKiBUaGUg TVNScyByYW5nZSBmcm9tIDBEMTBIIHRocm91Z2ggMEQ0RkggKGluY2x1c2l2ZSksIGVuYWJsZXMg c3VwcG9ydCBmb3IKKyAqIHVwIHRvIDY0IEwyIENBVCBDT1MuIFRoZSBDT1NfSUQ9WzAsNjNdLgor ICoKKyAqIFNvLCB0aGUgbWF4aW11bSBDT1MgcmVnaXN0ZXIgY291bnQgb2Ygb25lIGZlYXR1cmUg aXMgMTI4LgorICovCisjZGVmaW5lIE1BWF9DT1NfUkVHX0NOVCAgMTI4CisKKy8qCisgKiBQU1Ig ZmVhdHVyZXMgYXJlIG1hbmFnZWQgcGVyIHNvY2tldC4gQmVsb3cgc3RydWN0dXJlIGRlZmluZXMg dGhlIG1lbWJlcnMKKyAqIHVzZWQgdG8gbWFuYWdlIHRoZXNlIGZlYXR1cmVzLgorICogZmVhdF9t YXNrIC0gTWFzayB1c2VkIHRvIHJlY29yZCBmZWF0dXJlcyBlbmFibGVkIG9uIHNvY2tldC4gVGhl cmUgbWF5IGJlCisgKiAgICAgICAgICAgICBzb21lIGZlYXR1cmVzIGVuYWJsZWQgYXQgc2FtZSB0 aW1lLgorICogbnJfZmVhdCAgIC0gUmVjb3JkIGhvdyBtYW55IGZlYXR1cmVzIGVuYWJsZWQuCisg KiBmZWF0X2xpc3QgLSBBIGxpc3QgdXNlZCB0byBtYW5hZ2UgYWxsIGZlYXR1cmVzIGVuYWJsZWQu CisgKiBjb3NfcmVmICAgLSBBIHJlZmVyZW5jZSBjb3VudCBhcnJheSB0byByZWNvcmQgaG93IG1h bnkgZG9tYWlucyBhcmUgdXNpbmcgdGhlCisgKiAgICAgICAgICAgICBDT1NfSUQuCisgKiAgICAg ICAgICAgICBFdmVyeSBlbnRyeSBvZiBjb3NfcmVmIGNvcnJlc3BvbmRzIHRvIG9uZSBDT1MgSUQu CisgKiByZWZfbG9jayAgLSBBIGxvY2sgdG8gcHJvdGVjdCBjb3NfcmVmLgorICovCitzdHJ1Y3Qg cHNyX3NvY2tldF9pbmZvIHsKKyAgICAvKgorICAgICAqIGJpdCAwOiAgIEwzIENBVAorICAgICAq IGJpdCAxOiAgIEwzIENEUAorICAgICAqIGJpdCAyOiAgIEwyIENBVAorICAgICAqLworICAgIHVu c2lnbmVkIGludCBmZWF0X21hc2s7CisgICAgdW5zaWduZWQgaW50IG5yX2ZlYXQ7CisgICAgc3Ry dWN0IGxpc3RfaGVhZCBmZWF0X2xpc3Q7CisgICAgdW5zaWduZWQgaW50IGNvc19yZWZbTUFYX0NP U19SRUdfQ05UXTsKKyAgICBzcGlubG9ja190IHJlZl9sb2NrOworfTsKKworZW51bSBwc3JfZmVh dF90eXBlIHsKKyAgICBQU1JfU09DS0VUX0wzX0NBVCA9IDAsCisgICAgUFNSX1NPQ0tFVF9MM19D RFAsCisgICAgUFNSX1NPQ0tFVF9MMl9DQVQsCit9OworCisvKiBDQVQvQ0RQIEhXIGluZm8gZGF0 YSBzdHJ1Y3R1cmUuICovCitzdHJ1Y3QgcHNyX2NhdF9od19pbmZvIHsKKyAgICB1bnNpZ25lZCBp bnQgY2JtX2xlbjsKKyAgICB1bnNpZ25lZCBpbnQgY29zX21heDsKK307CisKKy8qIEVuY2Fwc3Vs YXRlIGZlYXR1cmUgc3BlY2lmaWMgSFcgaW5mbyBoZXJlLiAqLworc3RydWN0IGZlYXRfaHdfaW5m byB7CisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgcHNyX2NhdF9od19pbmZvIGwzX2NhdF9p bmZvOworICAgIH07Cit9OworCitzdHJ1Y3QgZmVhdF9ub2RlOworCisvKgorICogVGhpcyBzdHJ1 Y3R1cmUgZGVmaW5lcyBmZWF0dXJlIG9wZXJhdGlvbiBjYWxsYmFjayBmdW5jdGlvbnMuIEV2ZXJ5 IGZlYXR1cmUKKyAqIGVuYWJsZWQgTVVTVCBpbXBsZW1lbnQgc3VjaCBjYWxsYmFjayBmdW5jdGlv bnMgYW5kIHJlZ2lzdGVyIHRoZW0gdG8gb3BzLgorICoKKyAqIEZlYXR1cmUgc3BlY2lmaWMgYmVo YXZpb3JzIHdpbGwgYmUgZW5jYXBzdWxhdGVkIGludG8gdGhlc2UgY2FsbGJhY2sKKyAqIGZ1bmN0 aW9ucy4gVGhlbiwgdGhlIG1haW4gZmxvd3Mgd2lsbCBub3QgYmUgY2hhbmdlZCB3aGVuIGludHJv ZHVjaW5nIGEgbmV3CisgKiBmZWF0dXJlLgorICovCitzdHJ1Y3QgZmVhdF9vcHMgeworICAgIC8q CisgICAgICogaW5pdF9mZWF0dXJlIGlzIHVzZWQgaW4gY3B1IGluaXRpYWxpemF0aW9uIHByb2Nl c3MgdG8gZG8gZmVhdHVyZQorICAgICAqIHNwZWNpZmljIGluaXRpYWxpemF0aW9uIHdvcmtzLgor ICAgICAqLworICAgIHZvaWQgKCppbml0X2ZlYXR1cmUpKHVuc2lnbmVkIGludCBlYXgsIHVuc2ln bmVkIGludCBlYngsCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGVjeCwg dW5zaWduZWQgaW50IGVkeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmVhdF9u b2RlICpmZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwc3Jfc29ja2V0X2lu Zm8gKmluZm8pOworfTsKKworCisvKgorICogVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50cyBvbmUg ZmVhdHVyZS4KKyAqIGZlYXR1cmUgICAgIC0gV2hpY2ggZmVhdHVyZSBpdCBpcy4KKyAqIGZlYXRf b3BzICAgIC0gRmVhdHVyZSBvcGVyYXRpb24gY2FsbGJhY2sgZnVuY3Rpb25zLgorICogaW5mbyAg ICAgICAgLSBGZWF0dXJlIEhXIGluZm8uCisgKiBjb3NfcmVnX3ZhbCAtIEFycmF5IHRvIHN0b3Jl IHRoZSB2YWx1ZXMgb2YgQ09TIHJlZ2lzdGVycy4gT25lIGVudHJ5IHN0b3JlcworICogICAgICAg ICAgICAgICB0aGUgdmFsdWUgb2Ygb25lIENPUyByZWdpc3Rlci4KKyAqICAgICAgICAgICAgICAg Rm9yIEwzIENBVCBhbmQgTDIgQ0FULCBvbmUgZW50cnkgY29ycmVzcG9uZHMgdG8gb25lIENPU19J RC4KKyAqICAgICAgICAgICAgICAgRm9yIENEUCwgdHdvIGVudHJpZXMgY29ycmVzcG9uZCB0byBv bmUgQ09TX0lELiBFLmcuCisgKiAgICAgICAgICAgICAgIENPU19JRD0wIGNvcnJlc3BvbmRzIHRv IGNvc19yZWdfdmFsWzBdIChEYXRhKSBhbmQKKyAqICAgICAgICAgICAgICAgY29zX3JlZ192YWxb MV0gKENvZGUpLgorICogbGlzdCAgICAgICAgLSBGZWF0dXJlIGxpc3QuCisgKi8KK3N0cnVjdCBm ZWF0X25vZGUgeworICAgIGVudW0gcHNyX2ZlYXRfdHlwZSBmZWF0dXJlOworICAgIHN0cnVjdCBm ZWF0X29wcyBvcHM7CisgICAgc3RydWN0IGZlYXRfaHdfaW5mbyBpbmZvOworICAgIHVpbnQ2NF90 IGNvc19yZWdfdmFsW01BWF9DT1NfUkVHX0NOVF07CisgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0 OworfTsKKwogc3RydWN0IHBzcl9hc3NvYyB7CiAgICAgdWludDY0X3QgdmFsOwogICAgIHVpbnQ2 NF90IGNvc19tYXNrOwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK