From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Tyshchenko Subject: [RFC PATCH 20/31] xen/arm: Add common header file wrappers.h Date: Thu, 9 Nov 2017 19:10:10 +0200 Message-ID: <1510247421-24094-21-git-send-email-olekstysh@gmail.com> References: <1510247421-24094-1-git-send-email-olekstysh@gmail.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 1eCqLw-0004R2-HB for xen-devel@lists.xenproject.org; Thu, 09 Nov 2017 17:10:56 +0000 Received: by mail-lf0-f66.google.com with SMTP id r129so8038415lff.8 for ; Thu, 09 Nov 2017 09:10:54 -0800 (PST) In-Reply-To: <1510247421-24094-1-git-send-email-olekstysh@gmail.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: Oleksandr Tyshchenko , Stefano Stabellini , Julien Grall List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29t PgoKVGhpcyBoZWFkZXIgZmlsZSBpcyBpbnRlbmRlZCB0byBrZWVwIHZhcmlvdXMgTGludXgyWGVu IHdyYXBwZXJzLApkZWZpbmUtcywgc3R1YnMgd2hpY2ggdXNlZCBieSBhbGwgZGlyZWN0IHBvcnRl ZCBDUFVmcmVxIGNvbXBvbmVudHMuCgpTaWduZWQtb2ZmLWJ5OiBPbGVrc2FuZHIgVHlzaGNoZW5r byA8b2xla3NhbmRyX3R5c2hjaGVua29AZXBhbS5jb20+CkNDOiBTdGVmYW5vIFN0YWJlbGxpbmkg PHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNDOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBs aW5hcm8ub3JnPgotLS0KIHhlbi9hcmNoL2FybS9jcHVmcmVxL3dyYXBwZXJzLmggfCAyMzkgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDIz OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL2NwdWZyZXEv d3JhcHBlcnMuaAoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9jcHVmcmVxL3dyYXBwZXJzLmgg Yi94ZW4vYXJjaC9hcm0vY3B1ZnJlcS93cmFwcGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjI4NGZhYTQKLS0tIC9kZXYvbnVsbAorKysgYi94ZW4vYXJjaC9hcm0vY3B1 ZnJlcS93cmFwcGVycy5oCkBAIC0wLDAgKzEsMjM5IEBACisvKgorICogeGVuL2FyY2gvYXJtL2Nw dWZyZXEvd3JhcHBlcnMuaAorICoKKyAqIFRoaXMgaGVhZGVyIGZpbGUgY29udGFpbnMgTGludXgy WGVuIHdyYXBwZXJzLCBkZWZpbmUtcywgZGlmZmVyZW50IHN0dWJzCisgKiB3aGljaCB1c2VkIGJ5 IGFsbCBkaXJlY3QgcG9ydGVkIENQVWZyZXEgY29tcG9uZW50cy4KKyAqCisgKiBPbGVrc2FuZHIg VHlzaGNoZW5rbyA8b2xla3NhbmRyX3R5c2hjaGVua29AZXBhbS5jb20+CisgKiBDb3B5cmlnaHQg KGMpIDIwMTcgRVBBTSBTeXN0ZW1zLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwor ICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dy YW07IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisj aWZuZGVmIF9fQVJDSF9BUk1fQ1BVRlJFUV9XUkFQUEVSU19IX18KKyNkZWZpbmUgX19BUkNIX0FS TV9DUFVGUkVRX1dSQVBQRVJTX0hfXworCisjaW5jbHVkZSA8eGVuL3RpbWUuaD4KKyNpbmNsdWRl IDx4ZW4vZGVsYXkuaD4KKyNpbmNsdWRlIDx4ZW4vc29mdGlycS5oPgorI2luY2x1ZGUgPHhlbi9z cGlubG9jay5oPgorI2luY2x1ZGUgPGFzbS9kZXZpY2UuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWlj Lmg+CisKKy8qIFhlbiBkb2Vzbid0IGhhdmUgbXV0ZXgsIHNvIHVzZSBzcGlubG9jayBpbnN0ZWFk LiAqLworI2RlZmluZSBtdXRleCAgICAgICAgc3BpbmxvY2sKKyNkZWZpbmUgbXV0ZXhfbG9jayAg IHNwaW5fbG9jaworI2RlZmluZSBtdXRleF91bmxvY2sgc3Bpbl91bmxvY2sKKyNkZWZpbmUgbXV0 ZXhfaW5pdCAgIHNwaW5fbG9ja19pbml0CisjZGVmaW5lIERFRklORV9NVVRFWCBERUZJTkVfU1BJ TkxPQ0sKKworLyogQWxpYXNlcyB0byBYZW4gYWxsb2NhdGlvbiBoZWxwZXJzLiAqLworI2RlZmlu ZSBkZXZtX2ttYWxsb2MoZGV2LCBzaXplLCBmbGFncykgICAgX3htYWxsb2Moc2l6ZSwgc2l6ZW9m KHZvaWQgKikpCisjZGVmaW5lIGRldm1fa3phbGxvYyhkZXYsIHNpemUsIGZsYWdzKSAgICBfeHph bGxvYyhzaXplLCBzaXplb2Yodm9pZCAqKSkKKyNkZWZpbmUgZGV2bV9rY2FsbG9jKGRldiwgbiwg c2l6ZSwgZmxhZ3MpIF94emFsbG9jX2FycmF5KHNpemUsIHNpemVvZih2b2lkICopLCBuKQorI2Rl ZmluZSBrbWFsbG9jKHNpemUsIGZsYWdzKSAgICAgICAgICAgICAgX3htYWxsb2Moc2l6ZSwgc2l6 ZW9mKHZvaWQgKikpCisjZGVmaW5lIGtjYWxsb2Moc2l6ZSwgbiwgZmxhZ3MpICAgICAgICAgICBf eHphbGxvY19hcnJheShzaXplLCBzaXplb2Yodm9pZCAqKSwgbikKKyNkZWZpbmUgZGV2bV9rZnJl ZShkZXYsIHApICAgICAgICAgICAgICAgIHhmcmVlKHApCisjZGVmaW5lIGtmcmVlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB4ZnJlZQorCisvKiBBbGlhc2VzIHRvIFhlbiBkZXZpY2UgdHJl ZSBoZWxwZXJzLiAqLworI2RlZmluZSBkZXZpY2Vfbm9kZSAgICAgICAgICAgICAgICAgICAgIGR0 X2RldmljZV9ub2RlCisjZGVmaW5lIHBsYXRmb3JtX2RldmljZSAgICAgICAgICAgICAgICAgZHRf ZGV2aWNlX25vZGUKKyNkZWZpbmUgb2ZfZGV2aWNlX2lkICAgICAgICAgICAgICAgICAgICBkdF9k ZXZpY2VfbWF0Y2gKKyNkZWZpbmUgb2ZfbWF0Y2hfbm9kZSAgICAgICAgICAgICAgICAgICBkdF9t YXRjaF9ub2RlCisjZGVmaW5lIG9mX3Byb3BlcnR5X2NvdW50X2VsZW1zX29mX3NpemUgZHRfcHJv cGVydHlfY291bnRfZWxlbXNfb2Zfc2l6ZQorI2RlZmluZSBvZl9wcm9wZXJ0eV9yZWFkX3UzMl9p bmRleCAgICAgIGR0X3Byb3BlcnR5X3JlYWRfdTMyX2luZGV4CisjZGVmaW5lIG9mX3Byb3BlcnR5 X2Zvcl9lYWNoX3N0cmluZyAgICAgZHRfcHJvcGVydHlfZm9yX2VhY2hfc3RyaW5nCisjZGVmaW5l IG9mX3BhcnNlX3BoYW5kbGVfd2l0aF9hcmdzICAgICAgZHRfcGFyc2VfcGhhbmRsZV93aXRoX2Fy Z3MKKyNkZWZpbmUgb2ZfY291bnRfcGhhbmRsZV93aXRoX2FyZ3MgICAgICBkdF9jb3VudF9waGFu ZGxlX3dpdGhfYXJncworI2RlZmluZSBvZl9wcm9wZXJ0eV9yZWFkX3N0cmluZyAgICAgICAgIGR0 X3Byb3BlcnR5X3JlYWRfc3RyaW5nCisjZGVmaW5lIG9mX3BhcnNlX3BoYW5kbGUgICAgICAgICAg ICAgICAgZHRfcGFyc2VfcGhhbmRsZQorI2RlZmluZSBvZl9waGFuZGxlX2FyZ3MgICAgICAgICAg ICAgICAgIGR0X3BoYW5kbGVfYXJncworI2RlZmluZSBvZl9nZXRfcHJvcGVydHkgICAgICAgICAg ICAgICAgIGR0X2dldF9wcm9wZXJ0eQorI2RlZmluZSBwcm9wZXJ0eSAgICAgICAgICAgICAgICAg ICAgICAgIGR0X3Byb3BlcnR5CisKK3N0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IG9mX2Rldmlj ZV9pZCAqb2ZfbWF0Y2hfZGV2aWNlKAorICAgIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm1h dGNoZXMsIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKyAgICBpZiAoICFtYXRjaGVzIHx8 ICFkZXYtPm9mX25vZGUgKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHJldHVybiBvZl9t YXRjaF9ub2RlKG1hdGNoZXMsIGRldi0+b2Zfbm9kZSk7Cit9CisKKy8qIFN0dWZmIHRvIGRlYWwg d2l0aCBkZXZpY2UgYWRkcmVzcyByYW5nZXMuICovCitzdHJ1Y3QgcmVzb3VyY2UKK3sKKyAgICB1 NjQgc3RhcnQ7CisgICAgdTY0IHNpemU7Cit9OworCisjZGVmaW5lIHJlc291cmNlX3NpemUocmVz KSAocmVzKS0+c2l6ZTsKKworc3RhdGljIGlubGluZSBpbnQgb2ZfYWRkcmVzc190b19yZXNvdXJj ZShzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUsIGludCBpbmRleCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJlc291cmNlICpyZXMpCit7CisgICAgcmV0 dXJuIGR0X2RldmljZV9nZXRfYWRkcmVzcyhub2RlLCBpbmRleCwgJnJlcy0+c3RhcnQsICZyZXMt PnNpemUpOworfQorCit0eXBlZGVmIHU2NCByZXNvdXJjZV9zaXplX3Q7CisKKyNkZWZpbmUgZGV2 bV9pb3JlbWFwKGRldiwgYWRkciwgc2l6ZSkgaW9yZW1hcF9ub2NhY2hlKGFkZHIsIHNpemUpCisj ZGVmaW5lIGRldm1faW91bm1hcChkZXYsIGFkZHIpICAgICAgIGlvdW5tYXAoYWRkcikKKworLyog RGV2aWNlIGxvZ2dlciBmdW5jdGlvbnMgKi8KKyNkZWZpbmUgZGV2X3ByaW50KGRldiwgbHZsLCBm bXQsIC4uLikgICAgXAorICAgIHByaW50ayhsdmwgInNjcGk6ICVzOiAiIGZtdCwgZHRfbm9kZV9m dWxsX25hbWUoZGV2X3RvX2R0KGRldikpLCAjIyBfX1ZBX0FSR1NfXykKKworI2RlZmluZSBkZXZf aW5mbyhkZXYsIGZtdCwgLi4uKSBkZXZfcHJpbnQoZGV2LCBYRU5MT0dfSU5GTywgZm10LCAjIyBf X1ZBX0FSR1NfXykKKyNkZWZpbmUgZGV2X2RiZyhkZXYsIGZtdCwgLi4uKSAgZGV2X3ByaW50KGRl diwgWEVOTE9HX0RFQlVHLCBmbXQsICMjIF9fVkFfQVJHU19fKQorI2RlZmluZSBkZXZfd2Fybihk ZXYsIGZtdCwgLi4uKSBkZXZfcHJpbnQoZGV2LCBYRU5MT0dfV0FSTklORywgZm10LCAjIyBfX1ZB X0FSR1NfXykKKyNkZWZpbmUgZGV2X2VycihkZXYsIGZtdCwgLi4uKSAgZGV2X3ByaW50KGRldiwg WEVOTE9HX0VSUiwgZm10LCAjIyBfX1ZBX0FSR1NfXykKKworI2RlZmluZSBwcl9kZWJ1ZyAgcHJp bnRrCisjZGVmaW5lIF9kZXZfaW5mbyBkZXZfaW5mbworCisvKiBIZWxwZXJzIHRvIGdldC9zZXQg ZHJpdmVyIHNwZWNpZmljIGluZm8uICovCitzdGF0aWMgaW5saW5lIHZvaWQgcGxhdGZvcm1fc2V0 X2RydmRhdGEoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgdm9pZCAqZGF0YSkKK3sKKyAg ICBwZGV2LT5kZXYuZHJpdmVyX2RhdGEgPSBkYXRhOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQg KnBsYXRmb3JtX2dldF9kcnZkYXRhKGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp Cit7CisgICAgcmV0dXJuIHBkZXYtPmRldi5kcml2ZXJfZGF0YTsKK30KKworLyoKKyAqIFhlbiBk b2Vzbid0IGhhdmUgc3VjaCBhIHN5bmNocm9uaXphdGlvbiBtZWNoYW5pc20gYXMgTGludXgncwor ICogIndhaXQtZm9yLWNvbXBsZXRpb24iLCBiZWNhdXNlIG9mIGl0cyBuYXR1cmUuIENyZWF0ZSBk dW1teSBjb21wbGV0aW9uCisgKiBpbmZyYXN0cnVjdHVyZSB0byBtYWtlIGRpcmVjdCBwb3J0ZWQg Y29kZSBjb21waWxhYmxlLgorICovCitzdHJ1Y3QgY29tcGxldGlvbiB7CisgICAgYXRvbWljX3Qg ZG9uZTsKK307CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbml0X2NvbXBsZXRpb24oc3RydWN0IGNv bXBsZXRpb24gKngpCit7CisgICAgYXRvbWljX3NldCgmeC0+ZG9uZSwgMCk7Cit9CisKK3N0YXRp YyBpbmxpbmUgdm9pZCByZWluaXRfY29tcGxldGlvbihzdHJ1Y3QgY29tcGxldGlvbiAqeCkKK3sK KyAgICBhdG9taWNfc2V0KCZ4LT5kb25lLCAwKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGNv bXBsZXRlKHN0cnVjdCBjb21wbGV0aW9uICp4KQoreworICAgIGF0b21pY19zZXQoJngtPmRvbmUs IDEpOworfQorCisvKgorICogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBw cm9wZXJseSBmdW5jdGlvbmFsIGluIFhlbiwgYXQgbGVhc3QKKyAqIGZvciBub3cuIEZvbGxvd2lu ZyAiYnVzeSBsb29wIiBiYXNlZCB3YWl0IGxvZ2ljIHdvbid0IHdvcmsgaW4gYWxsIGNhc2VzLgor ICogRm9yIGV4YW1wbGUsIHdoZW4gYSBjb2RlIGdldHMgc3R1Y2sgYXQgYnVzeSBsb29wIHdhaXRp bmcgZm9yIGEgY29tcGxldGlvbgorICogdG8gYmUgc2lnbmFsZWQgYW5kIFNXIHRpbWVyLCB3aGlj aCBpbnRlcnJ1cHQgaGFuZGxlciBpcyBpbiBjaGFyZ2Ugb2YKKyAqIHNpZ25hbGluZyB0aGlzIGNv bXBsZXRpb24gYXJlIG9uIHRoZSBzYW1lIENQVS4KKyAqIFNvLCBhdm9pZCB1c2luZyBpdCB3aGVu ZXZlciBwb3NzaWJsZS4gT25seSBhbGxvd2VkIG1ldGhvZCBpcyB0byBzaWduYWwKKyAqIGEgY29t cGxldGlvbiBpbiBIVyBpbnRlcnJ1cHQgaGFuZGxlcnMuIEFsc28gcGxlYXNlIG5vdGUgdGhhdCB0 aGlzIGNvZGUKKyAqIG11c3RuJ3QgYmUgdXNlZCBvdXQgb2YgdGhlIGNwdWZyZXEgZGlyZWN0b3J5 LgorICoKKyAqIEl0IHdvcnRoIHRvIG1lbnRpb24gdGhhdCB3ZSB3b24ndCBoYXZlIGFueSBwcm9i bGVtIHdpdGggc3luY2hyb25vdXMgbWFpbGJveAorICogaGVyZSBzaW5jZSB3ZSBhbHdheXMgZW50 ZXIgdGhpcyBmdW5jdGlvbiB3aXRoIGFscmVhZHkgc2lnbmFsZWQgY29tcGxldGlvbgorICogaW4g aGFuZC4KKyAqCisgKiBJIHB1dCBhIHdhcm4gaGVyZSB0byBub3RpZnkgdXNlcnMgZXZlcnkgdGlt ZSB0aGV5IGNhbGwgdGhpcyB3aGlsZQorICogbWFuaXB1bGF0aW5nIHdpdGggYXN5bmNocm9ub3Vz IG1haWxib3guLi4gQnV0IGl0IHNob3VsZCBiZSByZWNvbnNpZGVyZWQuCisgKi8KK3N0YXRpYyBp bmxpbmUgdW5zaWduZWQgbG9uZyB3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoc3RydWN0IGNv bXBsZXRpb24gKngsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdGltZW91dCkKK3sKKyAgICBzX3RpbWVfdCBkZWFk bGluZSA9IE5PVygpICsgTUlMTElTRUNTKHRpbWVvdXQpOworICAgIGJvb2wgd2Fybl9vbmNlID0g dHJ1ZTsKKworICAgIGRvCisgICAgeworICAgICAgICBpZiAoIGF0b21pY19jbXB4Y2hnKCZ4LT5k b25lLCAxLCAwKSApCisgICAgICAgICAgICByZXR1cm4gMTsKKworICAgICAgICBpZiAoIHdhcm5f b25jZSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHdhcm5fb25jZSA9IGZhbHNlOworICAgICAg ICAgICAgcHJpbnRrKCJ3YWl0X2Zvcl9jb21wbGV0aW9uIGlzbid0IHByb3Blcmx5IGZ1bmN0aW9u YWwhICIKKyAgICAgICAgICAgICAgICAgICAiSXQgbWlnaHQgbGVhZCB0byB3cm9uZyB0aW1lb3V0 IGVycm9yXG4iKTsKKyAgICAgICAgICAgIFdBUk4oKTsKKyAgICAgICAgfQorCisgICAgICAgIGNw dV9yZWxheCgpOworICAgICAgICB1ZGVsYXkoMSk7CisgICAgICAgIHByb2Nlc3NfcGVuZGluZ19z b2Z0aXJxcygpOworICAgIH0gd2hpbGUgKE5PVygpIDw9IGRlYWRsaW5lKTsKKworICAgIHJldHVy biAwOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgY29tcGxldGlvbl9kb25lKHN0cnVjdCBjb21w bGV0aW9uICp4KQoreworICAgIGlmICggIWF0b21pY19yZWFkKCZ4LT5kb25lKSApCisgICAgICAg IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCisvKgorICogQXMgd2Ugb25s eSBjYWxsIHRoaXMgZnVuY3Rpb24gdG8gb2J0YWluIGEgdGltZW91dCBmb3Igd2FpdF9mb3JfY29t cGxldGlvbl90aW1lb3V0CisgKiB3aGljaCB3YXMgbW9kaWZpZWQgdG8gZXhwZWN0IGEgdGltZW91 dCBpbiBtaWxsaXNlY3MsIGp1c3QgcmV0dXJuIHBhc3NlZCBhcmd1bWVudC4KKyAqLworc3RhdGlj IGlubGluZSB1bnNpZ25lZCBsb25nIG1zZWNzX3RvX2ppZmZpZXModW5zaWduZWQgbG9uZyB0aW1l b3V0KQoreworICAgIHJldHVybiB0aW1lb3V0OworfQorCisvKiBNaXNjICovCisjZGVmaW5lIE1P RFVMRV9ERVZJQ0VfVEFCTEUodHlwZSwgbmFtZSkKKyNkZWZpbmUgRVhQT1JUX1NZTUJPTF9HUEwo bmFtZSkKKworI2RlZmluZSBtb2R1bGVfcHV0KG93bmVyKQorI2RlZmluZSB0cnlfbW9kdWxlX2dl dChvd25lcikgMQorCisjZGVmaW5lIG9mX25vZGVfcHV0KG5wKQorCisjZGVmaW5lIG1lbWNweV9m cm9taW8gbWVtY3B5CisjZGVmaW5lIG1lbWNweV90b2lvICAgbWVtY3B5CisKKyNkZWZpbmUgRU1T R1NJWkUgOTAgICAgICAgIC8qIE1lc3NhZ2UgdG9vIGxvbmcgKi8KKyNkZWZpbmUgRVBST0JFX0RF RkVSIDUxNyAgIC8qIERyaXZlciByZXF1ZXN0cyBwcm9iZSByZXRyeSAqLworCisvKiBTdHVicyB0 byBtYWtlIGRyaXZlciBjb21waWxhYmxlICovCitzdGF0aWMgaW5saW5lIGludCBkZXZfcG1fb3Bw X2FkZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZnJlcSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdV92b2x0KQoreworICAgIHJldHVy biAwOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZGV2X3BtX29wcF9yZW1vdmUoc3RydWN0IGRl dmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZyZXEpCit7CisKK30KKworI2VuZGlmIC8qIF9fQVJD SF9BUk1fQ1BVRlJFUV9XUkFQUEVSU19IX18gKi8KKworLyoKKyAqIExvY2FsIHZhcmlhYmxlczoK KyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKKyAqIGMtYmFzaWMtb2Zmc2V0OiA0 CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAorICogRW5kOgorICov Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=