From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v5 03/24] x86: refactor psr: implement main data structures. Date: Wed, 18 Jan 2017 10:02:26 +0800 Message-ID: <1484704967-5609-4-git-send-email-yi.y.sun@linux.intel.com> References: <1484704967-5609-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cTfba-0005VC-JU for xen-devel@lists.xenproject.org; Wed, 18 Jan 2017 02:04:06 +0000 In-Reply-To: <1484704967-5609-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, konrad.wilk@oracle.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 bGVhc2UgcmVmZXIgc3BlYyBhbmQgY29kZXMuCgpTaWduZWQtb2ZmLWJ5OiBZaSBTdW4gPHlpLnku c3VuQGxpbnV4LmludGVsLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvcHNyLmMgfCAxMDQgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBj aGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wc3Iu YyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwppbmRleCA5NmE4NTg5Li5mN2ZmM2ZjIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvcHNyLmMKKysrIGIveGVuL2FyY2gveDg2L3Bzci5jCkBAIC0xNywxMiAr MTcsMTE2IEBACiAjaW5jbHVkZSA8eGVuL2NwdS5oPgogI2luY2x1ZGUgPHhlbi9lcnIuaD4KICNp bmNsdWRlIDx4ZW4vc2NoZWQuaD4KKyNpbmNsdWRlIDx4ZW4vbGlzdC5oPgogI2luY2x1ZGUgPGFz bS9wc3IuaD4KIAorLyoKKyAqIFRlcm1pbm9sb2d5OgorICogLSBDQVQgICAgICAgICBDYWNoZSBB bGxvY2F0aW9uIFRlY2hub2xvZ3kKKyAqIC0gQ0JNICAgICAgICAgQ2FwYWNpdHkgQml0TWFza3MK KyAqIC0gQ0RQICAgICAgICAgQ29kZSBhbmQgRGF0YSBQcmlvcml0aXphdGlvbgorICogLSBDT1Mv Q0xPUyAgICBDbGFzcyBvZiBTZXJ2aWNlLiBBbHNvIG1lYW4gQ09TIHJlZ2lzdGVycy4KKyAqIC0g Q09TX01BWCAgICAgTWF4IG51bWJlciBvZiBDT1MgZm9yIHRoZSBmZWF0dXJlIChtaW51cyAxKQor ICogLSBNU1JzICAgICAgICBNYWNoaW5lIFNwZWNpZmljIFJlZ2lzdGVycworICogLSBQU1IgICAg ICAgICBJbnRlbCBQbGF0Zm9ybSBTaGFyZWQgUmVzb3VyY2UKKyAqLworCiAjZGVmaW5lIFBTUl9D TVQgICAgICAgICgxPDwwKQogI2RlZmluZSBQU1JfQ0FUICAgICAgICAoMTw8MSkKICNkZWZpbmUg UFNSX0NEUCAgICAgICAgKDE8PDIpCiAKKy8qCisgKiBQZXIgU0RNIGNoYXB0ZXIgJ0NhY2hlIEFs bG9jYXRpb24gVGVjaG5vbG9neTogQ2FjaGUgTWFzayBDb25maWd1cmF0aW9uJywKKyAqIHRoZSBN U1JzIHJhbmdlIGZyb20gMEM5MEggdGhyb3VnaCAwRDBGSCAoaW5jbHVzaXZlKSwgZW5hYmxlcyBz dXBwb3J0IGZvcgorICogdXAgdG8gMTI4IEwzIENBVCBDbGFzc2VzIG9mIFNlcnZpY2UuIFRoZSBD T1NfSUQ9WzAsMTI3XS4KKyAqCisgKiBUaGUgTVNScyByYW5nZSBmcm9tIDBEMTBIIHRocm91Z2gg MEQ0RkggKGluY2x1c2l2ZSksIGVuYWJsZXMgc3VwcG9ydCBmb3IKKyAqIHVwIHRvIDY0IEwyIENB VCBDT1MuIFRoZSBDT1NfSUQ9WzAsNjNdLgorICoKKyAqIFNvLCB0aGUgbWF4aW11bSBDT1MgcmVn aXN0ZXIgY291bnQgb2Ygb25lIGZlYXR1cmUgaXMgMTI4LgorICovCisjZGVmaW5lIE1BWF9DT1Nf UkVHX0NOVCAgMTI4CisKKy8qCisgKiBQU1IgZmVhdHVyZXMgYXJlIG1hbmFnZWQgcGVyIHNvY2tl dC4gQmVsb3cgc3RydWN0dXJlIGRlZmluZXMgdGhlIG1lbWJlcnMKKyAqIHVzZWQgdG8gbWFuYWdl IHRoZXNlIGZlYXR1cmVzLgorICogZmVhdF9tYXNrIC0gTWFzayB1c2VkIHRvIHJlY29yZCBmZWF0 dXJlcyBlbmFibGVkIG9uIHNvY2tldC4gVGhlcmUgbWF5IGJlCisgKiAgICAgICAgICAgICBzb21l IGZlYXR1cmVzIGVuYWJsZWQgYXQgc2FtZSB0aW1lLgorICogbnJfZmVhdCAgIC0gUmVjb3JkIGhv dyBtYW55IGZlYXR1cmVzIGVuYWJsZWQuCisgKiBmZWF0X2xpc3QgLSBBIGxpc3QgdXNlZCB0byBt YW5hZ2UgYWxsIGZlYXR1cmVzIGVuYWJsZWQuCisgKiBjb3NfcmVmICAgLSBBIHJlZmVyZW5jZSBj b3VudCBhcnJheSB0byByZWNvcmQgaG93IG1hbnkgZG9tYWlucyBhcmUgdXNpbmcgdGhlCisgKiAg ICAgICAgICAgICBDT1NfSUQuCisgKiAgICAgICAgICAgICBFdmVyeSBlbnRyeSBvZiBjb3NfcmVm IGNvcnJlc3BvbmRzIHRvIG9uZSBDT1MgSUQuCisgKiByZWZfbG9jayAgLSBBIGxvY2sgdG8gcHJv dGVjdCBjb3NfcmVmLgorICovCitzdHJ1Y3QgcHNyX3NvY2tldF9pbmZvIHsKKyAgICAvKgorICAg ICAqIGJpdCAwOiAgIEwzIENBVAorICAgICAqIGJpdCAxOiAgIEwzIENEUAorICAgICAqIGJpdCAy OiAgIEwyIENBVAorICAgICAqLworICAgIHVuc2lnbmVkIGludCBmZWF0X21hc2s7CisgICAgdW5z aWduZWQgaW50IG5yX2ZlYXQ7CisgICAgc3RydWN0IGxpc3RfaGVhZCBmZWF0X2xpc3Q7CisgICAg dW5zaWduZWQgaW50IGNvc19yZWZbTUFYX0NPU19SRUdfQ05UXTsKKyAgICBzcGlubG9ja190IHJl Zl9sb2NrOworfTsKKworZW51bSBwc3JfZmVhdF90eXBlIHsKKyAgICBQU1JfU09DS0VUX0wzX0NB VCA9IDAsCisgICAgUFNSX1NPQ0tFVF9MM19DRFAsCisgICAgUFNSX1NPQ0tFVF9MMl9DQVQsCit9 OworCisvKiBDQVQvQ0RQIEhXIGluZm8gZGF0YSBzdHJ1Y3R1cmUuICovCitzdHJ1Y3QgcHNyX2Nh dF9od19pbmZvIHsKKyAgICB1bnNpZ25lZCBpbnQgY2JtX2xlbjsKKyAgICB1bnNpZ25lZCBpbnQg Y29zX21heDsKK307CisKKy8qIEVuY2Fwc3VsYXRlIGZlYXR1cmUgc3BlY2lmaWMgSFcgaW5mbyBo ZXJlLiAqLworc3RydWN0IGZlYXRfaHdfaW5mbyB7CisgICAgdW5pb24geworICAgICAgICBzdHJ1 Y3QgcHNyX2NhdF9od19pbmZvIGwzX2NhdF9pbmZvOworICAgIH07Cit9OworCitzdHJ1Y3QgZmVh dF9ub2RlOworCisvKgorICogVGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBmZWF0dXJlIG9wZXJhdGlv biBjYWxsYmFjayBmdW5jdGlvbnMuIEV2ZXJ5IGZlYXR1cmUKKyAqIGVuYWJsZWQgTVVTVCBpbXBs ZW1lbnQgc3VjaCBjYWxsYmFjayBmdW5jdGlvbnMgYW5kIHJlZ2lzdGVyIHRoZW0gdG8gb3BzLgor ICoKKyAqIEZlYXR1cmUgc3BlY2lmaWMgYmVoYXZpb3JzIHdpbGwgYmUgZW5jYXBzdWxhdGVkIGlu dG8gdGhlc2UgY2FsbGJhY2sKKyAqIGZ1bmN0aW9ucy4gVGhlbiwgdGhlIG1haW4gZmxvd3Mgd2ls bCBub3QgYmUgY2hhbmdlZCB3aGVuIGludHJvZHVjaW5nIGEgbmV3CisgKiBmZWF0dXJlLgorICov CitzdHJ1Y3QgZmVhdF9vcHMgeworICAgIC8qIGdldF9jb3NfbWF4IGlzIHVzZWQgdG8gZ2V0IGZl YXR1cmUncyBjb3NfbWF4LiAqLworICAgIHVuc2lnbmVkIGludCAoKmdldF9jb3NfbWF4KShjb25z dCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0KTsKK307CisKKy8qCisgKiBUaGlzIHN0cnVjdHVyZSBy ZXByZXNlbnRzIG9uZSBmZWF0dXJlLgorICogZmVhdHVyZSAgICAgLSBXaGljaCBmZWF0dXJlIGl0 IGlzLgorICogZmVhdF9vcHMgICAgLSBGZWF0dXJlIG9wZXJhdGlvbiBjYWxsYmFjayBmdW5jdGlv bnMuCisgKiBpbmZvICAgICAgICAtIEZlYXR1cmUgSFcgaW5mby4KKyAqIGNvc19yZWdfdmFsIC0g QXJyYXkgdG8gc3RvcmUgdGhlIHZhbHVlcyBvZiBDT1MgcmVnaXN0ZXJzLiBPbmUgZW50cnkgc3Rv cmVzCisgKiAgICAgICAgICAgICAgIHRoZSB2YWx1ZSBvZiBvbmUgQ09TIHJlZ2lzdGVyLgorICog ICAgICAgICAgICAgICBGb3IgTDMgQ0FUIGFuZCBMMiBDQVQsIG9uZSBlbnRyeSBjb3JyZXNwb25k cyB0byBvbmUgQ09TX0lELgorICogICAgICAgICAgICAgICBGb3IgQ0RQLCB0d28gZW50cmllcyBj b3JyZXNwb25kIHRvIG9uZSBDT1NfSUQuIEUuZy4KKyAqICAgICAgICAgICAgICAgQ09TX0lEPTAg Y29ycmVzcG9uZHMgdG8gY29zX3JlZ192YWxbMF0gKERhdGEpIGFuZAorICogICAgICAgICAgICAg ICBjb3NfcmVnX3ZhbFsxXSAoQ29kZSkuCisgKiBsaXN0ICAgICAgICAtIEZlYXR1cmUgbGlzdC4K KyAqLworc3RydWN0IGZlYXRfbm9kZSB7CisgICAgZW51bSBwc3JfZmVhdF90eXBlIGZlYXR1cmU7 CisgICAgc3RydWN0IGZlYXRfb3BzIG9wczsKKyAgICBzdHJ1Y3QgZmVhdF9od19pbmZvIGluZm87 CisgICAgdWludDY0X3QgY29zX3JlZ192YWxbTUFYX0NPU19SRUdfQ05UXTsKKyAgICBzdHJ1Y3Qg bGlzdF9oZWFkIGxpc3Q7Cit9OworCiBzdHJ1Y3QgcHNyX2Fzc29jIHsKICAgICB1aW50NjRfdCB2 YWw7CiAgICAgdWludDY0X3QgY29zX21hc2s7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=