From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v2 02/23] acpi/hvmloader: Allow acpi_build_tables() callers specify acpi_info values Date: Thu, 4 Aug 2016 17:06:30 -0400 Message-ID: <1470344811-14225-3-git-send-email-boris.ostrovsky@oracle.com> References: <1470344811-14225-1-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1470344811-14225-1-git-send-email-boris.ostrovsky@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, julien.grall@arm.com, jbeulich@suse.com, zhaoshenglong@huawei.com, boris.ostrovsky@oracle.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org QnkgZG9pbmcgdGhpcyB3ZSBjYW4gbW92ZSBodm1sb2FkZXItcHJpdmF0ZSBpbnRlcmZhY2VzIChz dWNoIGFzCnVhcnRfZXhpc3RzKCksIGxwdF9leGlzdHMoKSBldGMuKSBvdXQgb2YgdGhlIEFDUEkg YnVpbGRlci4gVGhpcyB3aWxsCmhlbHAgdXMgd2l0aCBhbGxvd2luZyB0byBjYWxsIHRoZSBidWls ZGVyIGZyb20gcGxhY2VzIG90aGVyIHRoYW4KaHZtbG9hZGVyLgoKU2lnbmVkLW9mZi1ieTogQm9y aXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KLS0tCnYyOgoqIEtlZXAg c3RydWN0IGFjcGlfaW5mbyBwcml2YXRlIHRvIGJ1aWxkLmMgYW5kIGluc3RlYWQgcGFzcyBpbmZv cm1hdGlvbgogIG5lY2Vzc2FyeSB0byBzZXQgaXRzIGZpZWxkcyB2aWEgYWNwaV9jb25maWcncyBm bGFncy4KCiB0b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9hY3BpMl8wLmggfCAgOSAtLS0t LQogdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkvYnVpbGQuYyAgIHwgMzQgKysrKysrKysr LS0tLS0tLS0tCiB0b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9saWJhY3BpLmggfCA2MyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRl ci9vdm1mLmMgICAgICAgICB8ICAyICstCiB0b29scy9maXJtd2FyZS9odm1sb2FkZXIvc2VhYmlv cy5jICAgICAgfCAgMSArCiB0b29scy9maXJtd2FyZS9odm1sb2FkZXIvdXRpbC5jICAgICAgICAg fCAyNiArKysrKysrKysrKysrLQogNiBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwg MjkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZmlybXdhcmUvaHZtbG9h ZGVyL2FjcGkvbGliYWNwaS5oCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVy L2FjcGkvYWNwaTJfMC5oIGIvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkvYWNwaTJfMC5o CmluZGV4IDZmYTM0NTIuLjc3NWViN2EgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxv YWRlci9hY3BpL2FjcGkyXzAuaAorKysgYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9h Y3BpMl8wLmgKQEAgLTQ0OCwxNSArNDQ4LDYgQEAgc3RydWN0IGFjcGlfMjBfc2xpdCB7CiAKICNw cmFnbWEgcGFjayAoKQogCi1zdHJ1Y3QgYWNwaV9jb25maWcgewotICAgIHVuc2lnbmVkIGNoYXIg KmRzZHRfYW55Y3B1OwotICAgIGludCBkc2R0X2FueWNwdV9sZW47Ci0gICAgdW5zaWduZWQgY2hh ciAqZHNkdF8xNWNwdTsKLSAgICBpbnQgZHNkdF8xNWNwdV9sZW47Ci19OwotCi12b2lkIGFjcGlf YnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBpbnQgcGh5 c2ljYWwpOwotCiAjZW5kaWYgLyogX0FDUElfMl8wX0hfICovCiAKIC8qCmRpZmYgLS1naXQgYS90 b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9idWlsZC5jIGIvdG9vbHMvZmlybXdhcmUvaHZt bG9hZGVyL2FjcGkvYnVpbGQuYwppbmRleCA4YmU5YjkwLi5mMjUxYzA1IDEwMDY0NAotLS0gYS90 b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9idWlsZC5jCisrKyBiL3Rvb2xzL2Zpcm13YXJl L2h2bWxvYWRlci9hY3BpL2J1aWxkLmMKQEAgLTE0LDYgKzE0LDcgQEAKICAqLwogCiAjaW5jbHVk ZSAiYWNwaTJfMC5oIgorI2luY2x1ZGUgImxpYmFjcGkuaCIKICNpbmNsdWRlICJzc2R0X3MzLmgi CiAjaW5jbHVkZSAic3NkdF9zNC5oIgogI2luY2x1ZGUgInNzZHRfdHBtLmgiCkBAIC0zNTYsNyAr MzU3LDcgQEAgc3RhdGljIGludCBjb25zdHJ1Y3Rfc2Vjb25kYXJ5X3RhYmxlcyh1bnNpZ25lZCBs b25nICp0YWJsZV9wdHJzLAogICAgIH0KIAogICAgIC8qIEhQRVQuICovCi0gICAgaWYgKCBocGV0 X2V4aXN0cyhBQ1BJX0hQRVRfQUREUkVTUykgKQorICAgIGlmICggaW5mby0+aHBldF9wcmVzZW50 ICkKICAgICB7CiAgICAgICAgIGhwZXQgPSBjb25zdHJ1Y3RfaHBldCgpOwogICAgICAgICBpZiAo IWhwZXQpIHJldHVybiAtMTsKQEAgLTQ5MSw3ICs0OTIsNyBAQCBzdGF0aWMgaW50IG5ld192bV9n aWQoc3RydWN0IGFjcGlfaW5mbyAqYWNwaV9pbmZvKQogICAgIHJldHVybiAxOwogfQogCi12b2lk IGFjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnLCB1bnNpZ25lZCBp bnQgcGh5c2ljYWwpCit2b2lkIGFjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2NvbmZpZyAq Y29uZmlnKQogewogICAgIHN0cnVjdCBhY3BpX2luZm8gKmFjcGlfaW5mbzsKICAgICBzdHJ1Y3Qg YWNwaV8yMF9yc2RwICpyc2RwOwpAQCAtNTA0LDEwICs1MDUsMTkgQEAgdm9pZCBhY3BpX2J1aWxk X3RhYmxlcyhzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZywgdW5zaWduZWQgaW50IHBoeXNpY2Fs KQogICAgIHVuc2lnbmVkIGxvbmcgICAgICAgIHNlY29uZGFyeV90YWJsZXNbQUNQSV9NQVhfU0VD T05EQVJZX1RBQkxFU107CiAgICAgaW50ICAgICAgICAgICAgICAgICAgbnJfc2Vjb25kYXJpZXMs IGk7CiAKLSAgICAvKiBBbGxvY2F0ZSBhbmQgaW5pdGlhbGlzZSB0aGUgYWNwaSBpbmZvIGFyZWEu ICovCi0gICAgbWVtX2hvbGVfcG9wdWxhdGVfcmFtKEFDUElfSU5GT19QSFlTSUNBTF9BRERSRVNT ID4+IFBBR0VfU0hJRlQsIDEpOwotICAgIGFjcGlfaW5mbyA9IChzdHJ1Y3QgYWNwaV9pbmZvICop QUNQSV9JTkZPX1BIWVNJQ0FMX0FERFJFU1M7CisgICAgYWNwaV9pbmZvID0gKHN0cnVjdCBhY3Bp X2luZm8gKiljb25maWctPmluZm9wOwogICAgIG1lbXNldChhY3BpX2luZm8sIDAsIHNpemVvZigq YWNwaV9pbmZvKSk7CisgICAgYWNwaV9pbmZvLT5jb20xX3ByZXNlbnQgPSAhIShjb25maWctPnRh YmxlX2ZsYWdzICYgQUNQSV9IQVNfQ09NMSk7CisgICAgYWNwaV9pbmZvLT5jb20yX3ByZXNlbnQg PSAhIShjb25maWctPnRhYmxlX2ZsYWdzICYgQUNQSV9IQVNfQ09NMik7CisgICAgYWNwaV9pbmZv LT5scHQxX3ByZXNlbnQgPSAhIShjb25maWctPnRhYmxlX2ZsYWdzICYgQUNQSV9IQVNfTFBUMSk7 CisgICAgYWNwaV9pbmZvLT5ocGV0X3ByZXNlbnQgPSAhIShjb25maWctPnRhYmxlX2ZsYWdzICYg QUNQSV9IQVNfSFBFVCk7CisgICAgYWNwaV9pbmZvLT5wY2lfbWluID0gY29uZmlnLT5wY2lfc3Rh cnQ7CisgICAgYWNwaV9pbmZvLT5wY2lfbGVuID0gY29uZmlnLT5wY2lfbGVuOworICAgIGlmICgg Y29uZmlnLT5wY2lfaGlfbGVuICkKKyAgICB7CisgICAgICAgIGFjcGlfaW5mby0+cGNpX2hpX21p biA9IGNvbmZpZy0+cGNpX2hpX3N0YXJ0OworICAgICAgICBhY3BpX2luZm8tPnBjaV9oaV9sZW4g PSBjb25maWctPnBjaV9oaV9sZW47CisgICAgfQogCiAgICAgLyoKICAgICAgKiBGaWxsIGluIGhp Z2gtbWVtb3J5IGRhdGEgc3RydWN0dXJlcywgc3RhcnRpbmcgYXQgQGJ1Zi4KQEAgLTYwMSw3ICs2 MTEsNyBAQCB2b2lkIGFjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmln LCB1bnNpZ25lZCBpbnQgcGh5c2ljYWwpCiAgICAgLyoKICAgICAgKiBGaWxsIGluIGxvdy1tZW1v cnkgZGF0YSBzdHJ1Y3R1cmVzOiBhY3BpX2luZm8gYW5kIFJTRFAuCiAgICAgICovCi0gICAgcnNk cCA9IChzdHJ1Y3QgYWNwaV8yMF9yc2RwICopcGh5c2ljYWw7CisgICAgcnNkcCA9IChzdHJ1Y3Qg YWNwaV8yMF9yc2RwICopY29uZmlnLT5yc2RwOwogCiAgICAgbWVtY3B5KHJzZHAsICZSc2RwLCBz aXplb2Yoc3RydWN0IGFjcGlfMjBfcnNkcCkpOwogICAgIHJzZHAtPnJzZHRfYWRkcmVzcyA9ICh1 bnNpZ25lZCBsb25nKXJzZHQ7CkBAIC02MTYsMTggKzYyNiw2IEBAIHZvaWQgYWNwaV9idWlsZF90 YWJsZXMoc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGludCBwaHlzaWNhbCkK ICAgICBpZiAoICFuZXdfdm1fZ2lkKGFjcGlfaW5mbykgKQogICAgICAgICBnb3RvIG9vbTsKIAot ICAgIGFjcGlfaW5mby0+Y29tMV9wcmVzZW50ID0gdWFydF9leGlzdHMoMHgzZjgpOwotICAgIGFj cGlfaW5mby0+Y29tMl9wcmVzZW50ID0gdWFydF9leGlzdHMoMHgyZjgpOwotICAgIGFjcGlfaW5m by0+bHB0MV9wcmVzZW50ID0gbHB0X2V4aXN0cygweDM3OCk7Ci0gICAgYWNwaV9pbmZvLT5ocGV0 X3ByZXNlbnQgPSBocGV0X2V4aXN0cyhBQ1BJX0hQRVRfQUREUkVTUyk7Ci0gICAgYWNwaV9pbmZv LT5wY2lfbWluID0gcGNpX21lbV9zdGFydDsKLSAgICBhY3BpX2luZm8tPnBjaV9sZW4gPSBwY2lf bWVtX2VuZCAtIHBjaV9tZW1fc3RhcnQ7Ci0gICAgaWYgKCBwY2lfaGlfbWVtX2VuZCA+IHBjaV9o aV9tZW1fc3RhcnQgKQotICAgIHsKLSAgICAgICAgYWNwaV9pbmZvLT5wY2lfaGlfbWluID0gcGNp X2hpX21lbV9zdGFydDsKLSAgICAgICAgYWNwaV9pbmZvLT5wY2lfaGlfbGVuID0gcGNpX2hpX21l bV9lbmQgLSBwY2lfaGlfbWVtX3N0YXJ0OwotICAgIH0KLQogICAgIHJldHVybjsKIAogb29tOgpk aWZmIC0tZ2l0IGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkvbGliYWNwaS5oIGIvdG9v bHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkvbGliYWNwaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjVlMGY0MDAKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9maXJtd2Fy ZS9odm1sb2FkZXIvYWNwaS9saWJhY3BpLmgKQEAgLTAsMCArMSw2MyBAQAorLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorICogbGliYWNwaS5oCisgKiAKKyAqIGxpYmFjcGkgaW50ZXJmYWNlcworICog CisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkCisgKiBieSB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIuMSBvbmx5LiB3aXRoIHRoZSBzcGVjaWFsCisgKiBl eGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gZmlsZSBMSUNFTlNFLgorICoKKyAqIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAxNiBPcmFjbGUg YW5kL29yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICovCisKKworI2lm bmRlZiBfX0xJQkFDUElfSF9fCisjZGVmaW5lIF9fTElCQUNQSV9IX18KKworI2RlZmluZSBBQ1BJ X0hBU19DT00xICAgICAgICAoMTw8MCkKKyNkZWZpbmUgQUNQSV9IQVNfQ09NMiAgICAgICAgKDE8 PDEpCisjZGVmaW5lIEFDUElfSEFTX0xQVDEgICAgICAgICgxPDwyKQorI2RlZmluZSBBQ1BJX0hB U19IUEVUICAgICAgICAoMTw8MykKKworc3RydWN0IGFjcGlfY29uZmlnIHsKKyAgICBjb25zdCB1 bnNpZ25lZCBjaGFyICpkc2R0X2FueWNwdTsKKyAgICB1bnNpZ25lZCBpbnQgZHNkdF9hbnljcHVf bGVuOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRzZHRfMTVjcHU7CisgICAgdW5zaWduZWQg aW50IGRzZHRfMTVjcHVfbGVuOworCisgICAgLyogUENJIEkvTyBob2xlICovCisgICAgdWludDMy X3QgcGNpX3N0YXJ0LCBwY2lfbGVuOworICAgIHVpbnQ2NF90IHBjaV9oaV9zdGFydCwgcGNpX2hp X2xlbjsKKworICAgIHVpbnQzMl90IHRhYmxlX2ZsYWdzOworCisgICAgLyoKKyAgICAgKiBBZGRy ZXNzIHdoZXJlIGFjcGlfaW5mbyBzaG91bGQgYmUgcGxhY2VkLgorICAgICAqIFRoaXMgbXVzdCBt YXRjaCB0aGUgT3BlcmF0aW9uUmVnaW9uKEJJT1MsIFN5c3RlbU1lbW9yeSwgLi4uLikKKyAgICAg KiBkZWZpbml0aW9uIGluIHRoZSBEU0RUCisgICAgICovCisgICAgdW5zaWduZWQgaW50IGluZm9w OworCisgICAgLyogUlNEUCBhZGRyZXNzICovCisgICAgdW5zaWduZWQgaW50IHJzZHA7Cit9Owor Cit2b2lkIGFjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnKTsKKwor I2VuZGlmIC8qIF9fTElCQUNQSV9IX18gKi8KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoKKyAq IG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0Cisg KiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICovCmRp ZmYgLS1naXQgYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIvb3ZtZi5jIGIvdG9vbHMvZmlybXdh cmUvaHZtbG9hZGVyL292bWYuYwppbmRleCAxYzhhNzFiLi5iNGJjYzkzIDEwMDY0NAotLS0gYS90 b29scy9maXJtd2FyZS9odm1sb2FkZXIvb3ZtZi5jCisrKyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxv YWRlci9vdm1mLmMKQEAgLTIzLDcgKzIzLDcgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu Y2x1ZGUgInNtYmlvc190eXBlcy5oIgotI2luY2x1ZGUgImFjcGkvYWNwaTJfMC5oIgorI2luY2x1 ZGUgImFjcGkvbGliYWNwaS5oIgogI2luY2x1ZGUgImFwaWNfcmVncy5oIgogI2luY2x1ZGUgIi4u L3JvbWJpb3MvY29uZmlnLmgiCiAjaW5jbHVkZSAidXRpbC5oIgpkaWZmIC0tZ2l0IGEvdG9vbHMv ZmlybXdhcmUvaHZtbG9hZGVyL3NlYWJpb3MuYyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9z ZWFiaW9zLmMKaW5kZXggM2QwNDZmZC4uNWM5YTM1MSAxMDA2NDQKLS0tIGEvdG9vbHMvZmlybXdh cmUvaHZtbG9hZGVyL3NlYWJpb3MuYworKysgYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvc2Vh Ymlvcy5jCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbmNsdWRlICJzbWJpb3NfdHlwZXMuaCIKICNp bmNsdWRlICJhY3BpL2FjcGkyXzAuaCIKKyNpbmNsdWRlICJhY3BpL2xpYmFjcGkuaCIKIAogZXh0 ZXJuIHVuc2lnbmVkIGNoYXIgZHNkdF9hbnljcHVfcWVtdV94ZW5bXTsKIGV4dGVybiBpbnQgZHNk dF9hbnljcHVfcWVtdV94ZW5fbGVuOwpkaWZmIC0tZ2l0IGEvdG9vbHMvZmlybXdhcmUvaHZtbG9h ZGVyL3V0aWwuYyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci91dGlsLmMKaW5kZXggOWFmMjli MS4uN2RlMmZiNiAxMDA2NDQKLS0tIGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL3V0aWwuYwor KysgYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvdXRpbC5jCkBAIC0yMiw2ICsyMiw3IEBACiAj aW5jbHVkZSAiaHlwZXJjYWxsLmgiCiAjaW5jbHVkZSAiY3R5cGUuaCIKICNpbmNsdWRlICJhY3Bp L2FjcGkyXzAuaCIKKyNpbmNsdWRlICJhY3BpL2xpYmFjcGkuaCIKICNpbmNsdWRlIDxzdGRpbnQu aD4KICNpbmNsdWRlIDx4ZW4veGVuLmg+CiAjaW5jbHVkZSA8eGVuL21lbW9yeS5oPgpAQCAtODYw LDcgKzg2MSwzMCBAQCBpbnQgaHBldF9leGlzdHModW5zaWduZWQgbG9uZyBocGV0X2Jhc2UpCiB2 b2lkIGh2bWxvYWRlcl9hY3BpX2J1aWxkX3RhYmxlcyhzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZp ZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwaHlzaWNh bCkKIHsKLSAgICBhY3BpX2J1aWxkX3RhYmxlcyhjb25maWcsIHBoeXNpY2FsKTsKKyAgICAvKiBB bGxvY2F0ZSBhbmQgaW5pdGlhbGlzZSB0aGUgYWNwaSBpbmZvIGFyZWEuICovCisgICAgbWVtX2hv bGVfcG9wdWxhdGVfcmFtKEFDUElfSU5GT19QSFlTSUNBTF9BRERSRVNTID4+IFBBR0VfU0hJRlQs IDEpOworCisgICAgaWYgKCB1YXJ0X2V4aXN0cygweDNmOCkgICkKKyAgICAgICAgY29uZmlnLT50 YWJsZV9mbGFncyB8PSBBQ1BJX0hBU19DT00xOworICAgIGlmICggIHVhcnRfZXhpc3RzKDB4MmY4 KSApCisgICAgICAgIGNvbmZpZy0+dGFibGVfZmxhZ3MgfD0gQUNQSV9IQVNfQ09NMjsKKyAgICBp ZiAoIGxwdF9leGlzdHMoMHgzNzgpICkKKyAgICAgICAgY29uZmlnLT50YWJsZV9mbGFncyB8PSBB Q1BJX0hBU19MUFQxOworICAgIGlmICggIGhwZXRfZXhpc3RzKEFDUElfSFBFVF9BRERSRVNTKSAp CisgICAgICAgIGNvbmZpZy0+dGFibGVfZmxhZ3MgfD0gQUNQSV9IQVNfSFBFVDsKKworICAgIGNv bmZpZy0+cGNpX3N0YXJ0ID0gcGNpX21lbV9zdGFydDsKKyAgICBjb25maWctPnBjaV9sZW4gPSBw Y2lfbWVtX2VuZCAtIHBjaV9tZW1fc3RhcnQ7CisgICAgaWYgKCBwY2lfaGlfbWVtX2VuZCA+IHBj aV9oaV9tZW1fc3RhcnQgKQorICAgIHsKKyAgICAgICAgY29uZmlnLT5wY2lfaGlfc3RhcnQgPSBw Y2lfaGlfbWVtX3N0YXJ0OworICAgICAgICBjb25maWctPnBjaV9oaV9sZW4gPSBwY2lfaGlfbWVt X2VuZCAtIHBjaV9oaV9tZW1fc3RhcnQ7CisgICAgfQorCisgICAgY29uZmlnLT5yc2RwID0gcGh5 c2ljYWw7CisgICAgY29uZmlnLT5pbmZvcCA9IEFDUElfSU5GT19QSFlTSUNBTF9BRERSRVNTOwor CisgICAgYWNwaV9idWlsZF90YWJsZXMoY29uZmlnKTsKIH0KIAogLyoKLS0gCjEuOC4zLjEKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK