From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v6 03/24] x86: refactor psr: implement main data structures. Date: Wed, 8 Feb 2017 16:15:55 +0800 Message-ID: <1486541776-8406-4-git-send-email-yi.y.sun@linux.intel.com> References: <1486541776-8406-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbNT8-0005i2-Lv for xen-devel@lists.xenproject.org; Wed, 08 Feb 2017 08:19:14 +0000 In-Reply-To: <1486541776-8406-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 LmNvbT4KLS0tCnY2OgogICAgLSBtb2RpZnkgY29tbWl0IG1lc3NhZ2UgdG8gcG9pbnQgb3V0IHBh dGNoZXMgdG8gcmVmZXIgdG8gdW5kZXJzdGFuZCBkZXRhaWxzLgogICAgLSBmaXggd29yZGluZy4K ICAgIC0gYWRkIGNvbW1lbnRzIHRvIGV4cGxhaW4gJ2ZlYXRfbWFzaycuCi0tLQogeGVuL2FyY2gv eDg2L3Bzci5jIHwgMTA2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTA2IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvcHNyLmMgYi94ZW4vYXJjaC94ODYvcHNyLmMKaW5kZXggOTZhODU4 OS4uNDY1NjkzNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Bzci5jCisrKyBiL3hlbi9hcmNo L3g4Ni9wc3IuYwpAQCAtMTcsMTIgKzE3LDExOCBAQAogI2luY2x1ZGUgPHhlbi9jcHUuaD4KICNp bmNsdWRlIDx4ZW4vZXJyLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CisjaW5jbHVkZSA8eGVu L2xpc3QuaD4KICNpbmNsdWRlIDxhc20vcHNyLmg+CiAKKy8qCisgKiBUZXJtaW5vbG9neToKKyAq IC0gQ0FUICAgICAgICAgQ2FjaGUgQWxsb2NhdGlvbiBUZWNobm9sb2d5CisgKiAtIENCTSAgICAg ICAgIENhcGFjaXR5IEJpdE1hc2tzCisgKiAtIENEUCAgICAgICAgIENvZGUgYW5kIERhdGEgUHJp b3JpdGl6YXRpb24KKyAqIC0gQ09TL0NMT1MgICAgQ2xhc3Mgb2YgU2VydmljZS4gQWxzbyBtZWFu IENPUyByZWdpc3RlcnMuCisgKiAtIENPU19NQVggICAgIE1heCBudW1iZXIgb2YgQ09TIGZvciB0 aGUgZmVhdHVyZSAobWludXMgMSkKKyAqIC0gTVNScyAgICAgICAgTWFjaGluZSBTcGVjaWZpYyBS ZWdpc3RlcnMKKyAqIC0gUFNSICAgICAgICAgSW50ZWwgUGxhdGZvcm0gU2hhcmVkIFJlc291cmNl CisgKi8KKwogI2RlZmluZSBQU1JfQ01UICAgICAgICAoMTw8MCkKICNkZWZpbmUgUFNSX0NBVCAg ICAgICAgKDE8PDEpCiAjZGVmaW5lIFBTUl9DRFAgICAgICAgICgxPDwyKQogCisvKgorICogUGVy IFNETSBjaGFwdGVyICdDYWNoZSBBbGxvY2F0aW9uIFRlY2hub2xvZ3k6IENhY2hlIE1hc2sgQ29u ZmlndXJhdGlvbicsCisgKiB0aGUgTVNScyByYW5naW5nIGZyb20gMEM5MEggdGhyb3VnaCAwRDBG SCAoaW5jbHVzaXZlKSwgZW5hYmxlcyBzdXBwb3J0IGZvcgorICogdXAgdG8gMTI4IEwzIENBVCBD bGFzc2VzIG9mIFNlcnZpY2UuIFRoZSBDT1NfSUQ9WzAsMTI3XS4KKyAqCisgKiBUaGUgTVNScyBy YW5naW5nIGZyb20gMEQxMEggdGhyb3VnaCAwRDRGSCAoaW5jbHVzaXZlKSwgZW5hYmxlcyBzdXBw b3J0IGZvcgorICogdXAgdG8gNjQgTDIgQ0FUIENPUy4gVGhlIENPU19JRD1bMCw2M10uCisgKgor ICogU28sIHRoZSBtYXhpbXVtIENPUyByZWdpc3RlciBjb3VudCBvZiBvbmUgZmVhdHVyZSBpcyAx MjguCisgKi8KKyNkZWZpbmUgTUFYX0NPU19SRUdfQ05UICAxMjgKKworLyoKKyAqIFBTUiBmZWF0 dXJlcyBhcmUgbWFuYWdlZCBwZXIgc29ja2V0LiBCZWxvdyBzdHJ1Y3R1cmUgZGVmaW5lcyB0aGUg bWVtYmVycworICogdXNlZCB0byBtYW5hZ2UgdGhlc2UgZmVhdHVyZXMuCisgKiBmZWF0X21hc2sg LSBNYXNrIHVzZWQgdG8gcmVjb3JkIGZlYXR1cmVzIGVuYWJsZWQgb24gc29ja2V0LiBUaGVyZSBt YXkgYmUKKyAqICAgICAgICAgICAgIHNvbWUgZmVhdHVyZXMgZW5hYmxlZCBhdCBzYW1lIHRpbWUu CisgKiBucl9mZWF0ICAgLSBSZWNvcmQgaG93IG1hbnkgZmVhdHVyZXMgZW5hYmxlZC4KKyAqIGZl YXRfbGlzdCAtIEEgbGlzdCB1c2VkIHRvIG1hbmFnZSBhbGwgZmVhdHVyZXMgZW5hYmxlZC4KKyAq IGNvc19yZWYgICAtIEEgcmVmZXJlbmNlIGNvdW50IGFycmF5IHRvIHJlY29yZCBob3cgbWFueSBk b21haW5zIGFyZSB1c2luZyB0aGUKKyAqICAgICAgICAgICAgIENPU19JRC4KKyAqICAgICAgICAg ICAgIEV2ZXJ5IGVudHJ5IG9mIGNvc19yZWYgY29ycmVzcG9uZHMgdG8gb25lIENPUyBJRC4KKyAq IHJlZl9sb2NrICAtIEEgbG9jayB0byBwcm90ZWN0IGNvc19yZWYuCisgKi8KK3N0cnVjdCBwc3Jf c29ja2V0X2luZm8geworICAgIC8qCisgICAgICogSXQgbWFwcyB0byB2YWx1ZXMgZGVmaW5lZCBp biAnZW51bSBwc3JfZmVhdF90eXBlJyBiZWxvdy4gVmFsdWUgaW4gJ2VudW0KKyAgICAgKiBwc3Jf ZmVhdF90eXBlJyBtZWFucyB0aGUgYml0IHBvc2l0aW9uLgorICAgICAqIGJpdCAwOiAgIEwzIENB VAorICAgICAqIGJpdCAxOiAgIEwzIENEUAorICAgICAqIGJpdCAyOiAgIEwyIENBVAorICAgICAq LworICAgIHVuc2lnbmVkIGludCBmZWF0X21hc2s7CisgICAgdW5zaWduZWQgaW50IG5yX2ZlYXQ7 CisgICAgc3RydWN0IGxpc3RfaGVhZCBmZWF0X2xpc3Q7CisgICAgdW5zaWduZWQgaW50IGNvc19y ZWZbTUFYX0NPU19SRUdfQ05UXTsKKyAgICBzcGlubG9ja190IHJlZl9sb2NrOworfTsKKworZW51 bSBwc3JfZmVhdF90eXBlIHsKKyAgICBQU1JfU09DS0VUX0wzX0NBVCA9IDAsCisgICAgUFNSX1NP Q0tFVF9MM19DRFAsCisgICAgUFNSX1NPQ0tFVF9MMl9DQVQsCit9OworCisvKiBDQVQvQ0RQIEhX IGluZm8gZGF0YSBzdHJ1Y3R1cmUuICovCitzdHJ1Y3QgcHNyX2NhdF9od19pbmZvIHsKKyAgICB1 bnNpZ25lZCBpbnQgY2JtX2xlbjsKKyAgICB1bnNpZ25lZCBpbnQgY29zX21heDsKK307CisKKy8q IEVuY2Fwc3VsYXRlIGZlYXR1cmUgc3BlY2lmaWMgSFcgaW5mbyBoZXJlLiAqLworc3RydWN0IGZl YXRfaHdfaW5mbyB7CisgICAgdW5pb24geworICAgICAgICBzdHJ1Y3QgcHNyX2NhdF9od19pbmZv IGwzX2NhdF9pbmZvOworICAgIH07Cit9OworCitzdHJ1Y3QgZmVhdF9ub2RlOworCisvKgorICog VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBmZWF0dXJlIG9wZXJhdGlvbiBjYWxsYmFjayBmdW5jdGlv bnMuIEV2ZXJ5IGZlYXR1cmUKKyAqIGVuYWJsZWQgTVVTVCBpbXBsZW1lbnQgc3VjaCBjYWxsYmFj ayBmdW5jdGlvbnMgYW5kIHJlZ2lzdGVyIHRoZW0gdG8gb3BzLgorICoKKyAqIEZlYXR1cmUgc3Bl Y2lmaWMgYmVoYXZpb3JzIHdpbGwgYmUgZW5jYXBzdWxhdGVkIGludG8gdGhlc2UgY2FsbGJhY2sK KyAqIGZ1bmN0aW9ucy4gVGhlbiwgdGhlIG1haW4gZmxvd3Mgd2lsbCBub3QgYmUgY2hhbmdlZCB3 aGVuIGludHJvZHVjaW5nIGEgbmV3CisgKiBmZWF0dXJlLgorICovCitzdHJ1Y3QgZmVhdF9vcHMg eworICAgIC8qIGdldF9jb3NfbWF4IGlzIHVzZWQgdG8gZ2V0IGZlYXR1cmUncyBjb3NfbWF4LiAq LworICAgIHVuc2lnbmVkIGludCAoKmdldF9jb3NfbWF4KShjb25zdCBzdHJ1Y3QgZmVhdF9ub2Rl ICpmZWF0KTsKK307CisKKy8qCisgKiBUaGlzIHN0cnVjdHVyZSByZXByZXNlbnRzIG9uZSBmZWF0 dXJlLgorICogZmVhdHVyZSAgICAgLSBXaGljaCBmZWF0dXJlIGl0IGlzLgorICogZmVhdF9vcHMg ICAgLSBGZWF0dXJlIG9wZXJhdGlvbiBjYWxsYmFjayBmdW5jdGlvbnMuCisgKiBpbmZvICAgICAg ICAtIEZlYXR1cmUgSFcgaW5mby4KKyAqIGNvc19yZWdfdmFsIC0gQXJyYXkgdG8gc3RvcmUgdGhl IHZhbHVlcyBvZiBDT1MgcmVnaXN0ZXJzLiBPbmUgZW50cnkgc3RvcmVzCisgKiAgICAgICAgICAg ICAgIHRoZSB2YWx1ZSBvZiBvbmUgQ09TIHJlZ2lzdGVyLgorICogICAgICAgICAgICAgICBGb3Ig TDMgQ0FUIGFuZCBMMiBDQVQsIG9uZSBlbnRyeSBjb3JyZXNwb25kcyB0byBvbmUgQ09TX0lELgor ICogICAgICAgICAgICAgICBGb3IgQ0RQLCB0d28gZW50cmllcyBjb3JyZXNwb25kIHRvIG9uZSBD T1NfSUQuIEUuZy4KKyAqICAgICAgICAgICAgICAgQ09TX0lEPTAgY29ycmVzcG9uZHMgdG8gY29z X3JlZ192YWxbMF0gKERhdGEpIGFuZAorICogICAgICAgICAgICAgICBjb3NfcmVnX3ZhbFsxXSAo Q29kZSkuCisgKiBsaXN0ICAgICAgICAtIEZlYXR1cmUgbGlzdC4KKyAqLworc3RydWN0IGZlYXRf bm9kZSB7CisgICAgZW51bSBwc3JfZmVhdF90eXBlIGZlYXR1cmU7CisgICAgc3RydWN0IGZlYXRf b3BzIG9wczsKKyAgICBzdHJ1Y3QgZmVhdF9od19pbmZvIGluZm87CisgICAgdWludDY0X3QgY29z X3JlZ192YWxbTUFYX0NPU19SRUdfQ05UXTsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cit9 OworCiBzdHJ1Y3QgcHNyX2Fzc29jIHsKICAgICB1aW50NjRfdCB2YWw7CiAgICAgdWludDY0X3Qg Y29zX21hc2s7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=