From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emil Velikov Subject: Re: [PATCH 1/2] drm: add libdrm_amdgpu Date: Thu, 23 Apr 2015 16:23:18 +0000 Message-ID: <55391C76.2020908@gmail.com> References: <1429634354-4990-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f174.google.com (mail-wi0-f174.google.com [209.85.212.174]) by gabe.freedesktop.org (Postfix) with ESMTP id 17ADE89E63 for ; Thu, 23 Apr 2015 08:24:54 -0700 (PDT) Received: by wiun10 with SMTP id n10so96514296wiu.1 for ; Thu, 23 Apr 2015 08:24:53 -0700 (PDT) In-Reply-To: <1429634354-4990-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alex Deucher , dri-devel@lists.freedesktop.org Cc: Alex Deucher , emil.l.velikov@gmail.com List-Id: dri-devel@lists.freedesktop.org SGkgQWxleCwKT24gMjEvMDQvMTUgMTY6MzksIEFsZXggRGV1Y2hlciB3cm90ZToKPiBUaGlzIGlz IHRoZSBuZXcgaW9jdGwgd3JhcHBlciB1c2VkIGJ5IHRoZSBuZXcgYWRtZ3B1IGRyaXZlci4KPiBJ dCdzIHByaW1hcmlseSB1c2VkIGJ5IHhmODYtdmlkZW8tYW1kZ3B1IGFuZCBtZXNhLgo+IApHbGFk IHRvIHNlZSBhbWRncHUgZmluYWxseSBvdXQgOi0pCgpDYW4gd2UgYW5ub3RhdGUgdGhlIHByaXZh dGUgc3ltYm9scyB3aXRoIGRybV9wcml2YXRlLCBpbiBib3RoCmRlY2xhcmF0aW9uIGFuZCBkZWZp bml0aW9uID8gSXQgd2lsbCBoaWRlIHRoZSBzeW1ib2xzLCBwbHVzIHdpbGwgbWFrZQp0aGUgbGVh cCB0b3dhcmRzIFNvbGFyaXMgc3VwcG9ydCBhIGJpdCBzbWFsbGVyLgoKCj4gU2lnbmVkLW9mZi1i eTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgo+IC0tLQo+ICBNYWtl ZmlsZS5hbSAgICAgICAgICAgICAgICB8ICAgIDUgKwo+ICBhbWRncHUvTWFrZWZpbGUuYW0gICAg ICAgICB8ICAgNTUgKysKPiAgYW1kZ3B1L2FtZGdwdS5oICAgICAgICAgICAgfCAxMjc4ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGFtZGdwdS9hbWRncHVf Ym8uYyAgICAgICAgIHwgIDYyMiArKysrKysrKysrKysrKysrKysrKysKPiAgYW1kZ3B1L2FtZGdw dV9jcy5jICAgICAgICAgfCAgOTgxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK PiAgYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyAgICAgfCAgMjQyICsrKysrKysrKwo+ICBhbWRncHUv YW1kZ3B1X2dwdV9pbmZvLmMgICB8ICAyNzUgKysrKysrKysrKwo+ICBhbWRncHUvYW1kZ3B1X2lu dGVybmFsLmggICB8ICAyMTAgKysrKysrKysKPiAgYW1kZ3B1L2FtZGdwdV92YW1nci5jICAgICAg fCAgMTY5ICsrKysrKwo+ICBhbWRncHUvbGliZHJtX2FtZGdwdS5wYy5pbiB8ICAgMTAgKwo+ICBh bWRncHUvdXRpbF9kb3VibGVfbGlzdC5oICB8ICAxNDYgKysrKysKPiAgYW1kZ3B1L3V0aWxfaGFz aC5jICAgICAgICAgfCAgMzgyICsrKysrKysrKysrKysKPiAgYW1kZ3B1L3V0aWxfaGFzaC5oICAg ICAgICAgfCAgIDk5ICsrKysKPiAgYW1kZ3B1L3V0aWxfaGFzaF90YWJsZS5jICAgfCAgMjU3ICsr KysrKysrKwo+ICBhbWRncHUvdXRpbF9oYXNoX3RhYmxlLmggICB8ICAgNjUgKysrCj4gIGFtZGdw dS91dGlsX21hdGguaCAgICAgICAgIHwgICAzMiArKwo+ICBjb25maWd1cmUuYWMgICAgICAgICAg ICAgICB8ICAgMjAgKwo+ICBpbmNsdWRlL2RybS9hbWRncHVfZHJtLmggICB8ICA2MDAgKysrKysr KysrKysrKysrKysrKysrCj4gIDE4IGZpbGVzIGNoYW5nZWQsIDU0NDggaW5zZXJ0aW9ucygrKQo+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgYW1kZ3B1L01ha2VmaWxlLmFtCj4gIGNyZWF0ZSBtb2RlIDEw MDY0NCBhbWRncHUvYW1kZ3B1LmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFtZGdwdS9hbWRncHVf Ym8uYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgYW1kZ3B1L2FtZGdwdV9jcy5jCj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBhbWRncHUvYW1kZ3B1X2RldmljZS5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBh bWRncHUvYW1kZ3B1X2dwdV9pbmZvLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFtZGdwdS9hbWRn cHVfaW50ZXJuYWwuaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgYW1kZ3B1L2FtZGdwdV92YW1nci5j Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBhbWRncHUvbGliZHJtX2FtZGdwdS5wYy5pbgo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgYW1kZ3B1L3V0aWxfZG91YmxlX2xpc3QuaAo+ICBjcmVhdGUgbW9kZSAx MDA2NDQgYW1kZ3B1L3V0aWxfaGFzaC5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBhbWRncHUvdXRp bF9oYXNoLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGFtZGdwdS91dGlsX2hhc2hfdGFibGUuYwo+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgYW1kZ3B1L3V0aWxfaGFzaF90YWJsZS5oCj4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBhbWRncHUvdXRpbF9tYXRoLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1 ZGUvZHJtL2FtZGdwdV9kcm0uaAo+IAoKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvYW1kZ3B1L01h a2VmaWxlLmFtCgo+ICtBTV9DRkxBR1MgPSBcCj4gKwkkKFdBUk5fQ0ZMQUdTKQoKPiAtV25vLXN3 aXRjaC1lbnVtIFwKRnJvbSBhIHF1aWNrIGxvb2sgeW91IHNob3VsZCBiZSBPSyB3aXRob3V0IHRo aXMuIElmIHRoYXQncyBub3QgdGhlIGNhc2UsCml0IG1pZ2h0IGJlIHdvcnRoIGxvb2tpbmcgaW50 byA/Cgo+ICsJLUkkKHRvcF9zcmNkaXIpIFwKPiArCS1JJCh0b3Bfc3JjZGlyKS9hbWRncHUgXApZ b3UgY2FuIGRyb3AgdGhpcyBsaW5lLgoKPiArCSQoUFRIUkVBRFNUVUJTX0NGTEFHUykgXAo+ICsJ LUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUvZHJtCj4gKwo+ICtsaWJkcm1fYW1kZ3B1X2xhX0xUTElC UkFSSUVTID0gbGliZHJtX2FtZGdwdS5sYQo+ICtsaWJkcm1fYW1kZ3B1X2xhZGlyID0gJChsaWJk aXIpCj4gK2xpYmRybV9hbWRncHVfbGFfTERGTEFHUyA9IC12ZXJzaW9uLW51bWJlciAxOjA6MSAt bm8tdW5kZWZpbmVkCkNvbnNpZGVyaW5nIHRoYXQgdGhpcyBpcyB0aGUgZmlyc3QgcHVibGljIHZl cnNpb24gc2hvdWxkbid0IHRoaXMgYmUgMTowOjAgPwoKPiArbGliZHJtX2FtZGdwdV9sYV9MSUJB REQgPSAuLi9saWJkcm0ubGEgQFBUSFJFQURTVFVCU19MSUJTQAo+ICsKPiArbGliZHJtX2FtZGdw dV9sYV9TT1VSQ0VTID0gXAo+ICsJYW1kZ3B1X2dwdV9pbmZvLmMgXAo+ICsJYW1kZ3B1X2Rldmlj ZS5jIFwKPiArCWFtZGdwdV9iby5jIFwKPiArCXV0aWxfaGFzaC5jIFwKPiArCXV0aWxfaGFzaF90 YWJsZS5jIFwKPiArCWFtZGdwdV92YW1nci5jIFwKPiArCWFtZGdwdV9jcy5jCj4gKwpQbGVhc2Ug aW5jbHVkZSBhbGwgZmlsZXMsIGFuZCBzb3J0IHRoZW0gYWxwaGFiZXRpY2FsbHksIHNvbWV0aGlu ZyBsaWtlOgoKYW1kZ3B1X2JvLmMKYW1kZ3B1X2NzLmMKYW1kZ3B1X2RldmljZS5jCmFtZGdwdV9n cHVfaW5mby5jCmFtZGdwdV9pbnRlcm5hbC5oCmFtZGdwdV92YW1nci5jCnV0aWxfZG91YmxlX2xp c3QuaAp1dGlsX2hhc2guYwp1dGlsX2hhc2guaAp1dGlsX2hhc2hfdGFibGUuYwp1dGlsX2hhc2hf dGFibGUuaAp1dGlsX21hdGguaAoKT25lIG1pZ2h0IHdhbnQgdG8gZHJvcCB1dGlsX2RvdWJsZV9s aXN0LmggaWYgeW91IGdvIGZvciBteSBzdWdnZXN0aW9uIGJlbG93LgoKPiArbm9kaXN0X0VYVFJB X2xpYmRybV9hbWRncHVfbGFfU09VUkNFUyA9IGR1bW15LmN4eAo+ICsKVGhlcmUgYXJlIG5vIEMr KyBzb3VyY2VzIG9yIHN0YXRpYyBsaWJzIGJhc2VkIG9uIHN1Y2ggc28geW91IGNhbiBkcm9wIHRo aXMuCgo+ICtFWFRSQV9ESVNUID0gbGliZHJtX2FtZGdwdS5wYy5pbgpZb3UgZG9uJ3QgbmVlZCB0 aGlzLgoKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvYW1kZ3B1L2FtZGdwdS5oCgo+ICsjaWZuZGVm IF9hbWRncHVfaF8KPiArI2RlZmluZSBfYW1kZ3B1X2hfCj4gKwpDYXBpdGFsaXNlIHRoZSBoZWFk ZXIgZ3VhcmQgbmFtZSA/Cgo+ICsjaW5jbHVkZSA8c3RkaW50Lmg+Cj4gKyNpbmNsdWRlIDxzdGRi b29sLmg+Cj4gKwoKQWxiZWl0IG5vdCBzbyBjb21tb24gaW4gbGliZHJtLCB5b3UgY2FuIGFkZCBt YWtlIHRoZSBoZWFkZXIgQysrIHNhZmUuCgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKZXh0ZXJu ICJDIiB7CiNlbmRpZgoKCj4gK3N0cnVjdCBhbWRncHVfYm9fYWxsb2NfcmVxdWVzdCB7Cj4gKwkv KiogQWxsb2NhdGlvbiByZXF1ZXN0LiBJdCBtdXN0IGJlIGFsaWduZWQgY29ycmVjdGx5LiAqLwo+ ICsJdWludDY0X3QgYWxsb2Nfc2l6ZTsKPiArCj4gKwkvKioKPiArCSAqIEl0IG1heSBiZSByZXF1 aXJlZCB0byBoYXZlIHNvbWUgc3BlY2lmaWMgYWxpZ25tZW50IHJlcXVpcmVtZW50cwo+ICsJICog Zm9yIHBoeXNpY2FsIGJhY2stdXAgc3RvcmFnZSAoZS5nLiBmb3IgZGlzcGxheWFibGUgc3VyZmFj ZSkuCj4gKwkgKiBJZiAwIHRoZXJlIGlzIG5vIHNwZWNpYWwgYWxpZ25tZW50IHJlcXVpcmVtZW50 Cj4gKwkgKi8KPiArCXVpbnQ2NF90IHBoeXNfYWxpZ25tZW50Owo+ICsKPiArCS8qKgo+ICsJICog VU1EIHNob3VsZCBzcGVjaWZ5IHdoZXJlIHRvIGFsbG9jYXRlIG1lbW9yeSBhbmQgaG93IGl0Cj4g KwkgKiB3aWxsIGJlIGFjY2Vzc2VkIGJ5IHRoZSBDUFUuCj4gKwkgKi8KPiArCXVpbnQzMl90IHBy ZWZlcnJlZF9oZWFwOwo+ICsKV29ydGggYWRkaW5nIGEgcGFkID8KCj4gKwkvKiogQWRkaXRpb25h bCBmbGFncyBwYXNzZWQgb24gYWxsb2NhdGlvbiAqLwo+ICsJdWludDY0X3QgZmxhZ3M7Cj4gK307 Cgo+ICtzdHJ1Y3QgYW1kZ3B1X2JvX2luZm8gewo+ICsJLyoqIEFsbG9jYXRlZCBtZW1vcnkgc2l6 ZSAqLwo+ICsJdWludDY0X3QgYWxsb2Nfc2l6ZTsKPiArCj4gKwkvKioKPiArCSAqIEl0IG1heSBi ZSByZXF1aXJlZCB0byBoYXZlIHNvbWUgc3BlY2lmaWMgYWxpZ25tZW50IHJlcXVpcmVtZW50cwo+ ICsJICogZm9yIHBoeXNpY2FsIGJhY2stdXAgc3RvcmFnZS4KPiArCSAqLwo+ICsJdWludDY0X3Qg cGh5c19hbGlnbm1lbnQ7Cj4gKwo+ICsJLyoqCj4gKwkgKiBBc3NpZ25lZCB2aXJ0dWFsIE1DIEJh c2UgQWRkcmVzcy4KPiArCSAqIFxub3RlICBUaGlzIGluZm9ybWF0aW9uIHdpbGwgYmUgcmV0dXJu ZWQgb25seSBpZiB0aGlzIGJ1ZmZlciB3YXMKPiArCSAqIGFsbG9jYXRlZCBpbiB0aGUgc2FtZSBw cm9jZXNzIG90aGVyd2lzZSAwIHdpbGwgYmUgcmV0dXJuZWQuCj4gKwkqLwo+ICsJdWludDY0X3Qg dmlydHVhbF9tY19iYXNlX2FkZHJlc3M7Cj4gKwo+ICsJLyoqIEhlYXAgd2hlcmUgdG8gYWxsb2Nh dGUgbWVtb3J5LiAqLwo+ICsJdWludDMyX3QgcHJlZmVycmVkX2hlYXA7Cj4gKwpEaXR0by4KCj4g KwkvKiogQWRkaXRpb25hbCBhbGxvY2F0aW9uIGZsYWdzLiAqLwo+ICsJdWludDY0X3QgYWxsb2Nf ZmxhZ3M7Cj4gKwo+ICsJLyoqIE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCBidWZmZXIgaWYgYW55 LiAqLwo+ICsJc3RydWN0IGFtZGdwdV9ib19tZXRhZGF0YSBtZXRhZGF0YTsKPiArfTsKCj4gK3N0 cnVjdCBhbWRncHVfZ2RzX2FsbG9jX2luZm8gewo+ICsJLyoqIEhhbmRsZSBhc3NpZ25lZCB0byBn ZHMgYWxsb2NhdGlvbiAqLwo+ICsJYW1kZ3B1X2JvX2hhbmRsZSByZXNvdXJjZV9oYW5kbGU7Cj4g Kwo+ICsJLyoqIEhvdyBtdWNoIHdhcyByZWFsbHkgYWxsb2NhdGVkICovCj4gKwl1aW50MzJfdCAg IGdkc19tZW1vcnlfc2l6ZTsKPiArCj4gKwkvKiogTnVtYmVyIG9mIEdXUyByZXNvdXJjZXMgYWxs b2NhdGVkICovCj4gKwl1aW50MzJfdCAgIGd3czsKPiArCj4gKwkvKiogTnVtYmVyIG9mIE9BIHJl c291cmNlcyBhbGxvY2F0ZWQgKi8KPiArCXVpbnQzMl90ICAgb2E7CkRpdHRvLgoKCj4gK3N0cnVj dCBhbWRncHVfY3NfaWJfaW5mbyB7Cj4gKwkvKiogU3BlY2lhbCBmbGFncyAqLwo+ICsJdWludDY0 X3QgICAgICBmbGFnczsKPiArCj4gKwkvKiogSGFuZGxlIG9mIGNvbW1hbmQgYnVmZmVyICovCj4g KwlhbWRncHVfaWJfaGFuZGxlIGliX2hhbmRsZTsKPiArCj4gKwkvKioKPiArCSAqIFNpemUgb2Yg Q29tbWFuZCBCdWZmZXIgdG8gYmUgc3VibWl0dGVkLgo+ICsJICogICAtIFRoZSBzaXplIGlzIGlu IHVuaXRzIG9mIGR3b3JkcyAoNCBieXRlcykuCj4gKwkgKiAgIC0gTXVzdCBiZSBsZXNzIG9yIGVx dWFsIHRvIHRoZSBzaXplIG9mIGFsbG9jYXRlZCBJQgo+ICsJICogICAtIENvdWxkIGJlIDAKPiAr CSAqLwo+ICsJdWludDMyX3QgICAgICAgc2l6ZTsKRGl0dG8uCgoKPiArc3RydWN0IGFtZGdwdV9j c19yZXF1ZXN0IHsKPiArCS8qKiBTcGVjaWZ5IGZsYWdzIHdpdGggYWRkaXRpb25hbCBpbmZvcm1h dGlvbiAqLwo+ICsJdWludDY0X3QJZmxhZ3M7Cj4gKwo+ICsJLyoqIFNwZWNpZnkgSFcgSVAgYmxv Y2sgdHlwZSB0byB3aGljaCB0byBzZW5kIHRoZSBJQi4gKi8KPiArCXVuc2lnbmVkCWlwX3R5cGU7 Cj4gKwo+ICsJLyoqIElQIGluc3RhbmNlIGluZGV4IGlmIHRoZXJlIGFyZSBzZXZlcmFsIElQcyBv ZiB0aGUgc2FtZSB0eXBlLiAqLwo+ICsJdW5zaWduZWQJaXBfaW5zdGFuY2U7Cj4gKwo+ICsJLyoq Cj4gKwkgKiBTcGVjaWZ5IHJpbmcgaW5kZXggb2YgdGhlIElQLiBXZSBjb3VsZCBoYXZlIHNldmVy YWwgcmluZ3MKPiArCSAqIGluIHRoZSBzYW1lIElQLiBFLmcuIDAgZm9yIFNETUEwIGFuZCAxIGZv ciBTRE1BMS4KPiArCSAqLwo+ICsJdWludDMyX3QgICAgICAgICAgIHJpbmc7Cj4gKwo+ICsJLyoq Cj4gKwkgKiBTcGVjaWZ5IG51bWJlciBvZiByZXNvdXJjZSBoYW5kbGVzIHBhc3NlZC4KPiArCSAq IFNpemUgb2YgJ2hhbmRsZXMnIGFycmF5Cj4gKwkgKgo+ICsJICovCj4gKwl1aW50MzJfdCBudW1i ZXJfb2ZfcmVzb3VyY2VzOwo+ICsKPiArCS8qKiBBcnJheSBvZiByZXNvdXJjZXMgdXNlZCBieSBz dWJtaXNzaW9uLiAqLwo+ICsJYW1kZ3B1X2JvX2hhbmRsZSAgICpyZXNvdXJjZXM7Cj4gKwo+ICsJ LyoqIEFycmF5IG9mIHJlc291cmNlcyBmbGFncy4gVGhpcyBpcyBvcHRpb25hbCBhbmQgY2FuIGJl IE5VTEwuICovCj4gKwl1aW50OF90ICpyZXNvdXJjZV9mbGFnczsKPiArCj4gKwkvKiogTnVtYmVy IG9mIElCcyB0byBzdWJtaXQgaW4gdGhlIGZpZWxkIGlicy4gKi8KPiArCXVpbnQzMl90IG51bWJl cl9vZl9pYnM7Cj4gKwpEaXR0by4KCj4gKwkvKioKPiArCSAqIElCcyB0byBzdWJtaXQuIFRob3Nl IElCcyB3aWxsIGJlIHN1Ym1pdCB0b2dldGhlciBhcyBzaW5nbGUgZW50aXR5Cj4gKwkgKi8KPiAr CXN0cnVjdCBhbWRncHVfY3NfaWJfaW5mbyAqaWJzOwo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIFN0 cnVjdHVyZSBkZXNjcmliaW5nIHJlcXVlc3QgdG8gY2hlY2sgc3VibWlzc2lvbiBzdGF0ZSB1c2lu ZyBmZW5jZQo+ICsgKgo+ICsgKiBcc2EgYW1kZ3B1X2NzX3F1ZXJ5X2ZlbmNlX3N0YXR1cygpCj4g KyAqCj4gKyovCj4gK3N0cnVjdCBhbWRncHVfY3NfcXVlcnlfZmVuY2Ugewo+ICsKPiArCS8qKiBJ biB3aGljaCBjb250ZXh0IElCIHdhcyBzZW50IHRvIGV4ZWN1dGlvbiAqLwo+ICsJYW1kZ3B1X2Nv bnRleHRfaGFuZGxlICBjb250ZXh0Owo+ICsKPiArCS8qKiBUaW1lb3V0IGluIG5hbm9zZWNvbmRz LiAqLwo+ICsJdWludDY0X3QgIHRpbWVvdXRfbnM7Cj4gKwo+ICsJLyoqIFRvIHdoaWNoIEhXIElQ IHR5cGUgdGhlIGZlbmNlIGJlbG9uZ3MgKi8KPiArCXVuc2lnbmVkICBpcF90eXBlOwo+ICsKPiAr CS8qKiBJUCBpbnN0YW5jZSBpbmRleCBpZiB0aGVyZSBhcmUgc2V2ZXJhbCBJUHMgb2YgdGhlIHNh bWUgdHlwZS4gKi8KPiArCXVuc2lnbmVkIGlwX2luc3RhbmNlOwo+ICsKPiArCS8qKiBSaW5nIGlu ZGV4IG9mIHRoZSBIVyBJUCAqLwo+ICsJdWludDMyX3QgICAgICByaW5nOwo+ICsKRGl0dG8uCgo+ ICsJLyoqIEZsYWdzICovCj4gKwl1aW50NjRfdCAgZmxhZ3M7Cj4gKwo+ICsJLyoqIFNwZWNpZnkg ZmVuY2UgZm9yIHdoaWNoIHdlIG5lZWQgdG8gY2hlY2sKPiArCSAqIHN1Ym1pc3Npb24gc3RhdHVz LiovCj4gKwl1aW50NjRfdAlmZW5jZTsKCgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9hbWRncHUv YW1kZ3B1X2JvLmMKCj4gKyNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKSG93IGFib3V0Cgoj aWZkZWYgSEFWRV9DT05GSUdfSAojaW5jbHVkZSAiY29uZmlnLmgiCiNlbmRpZgoKSWYgeW91IGZl ZWwgYWdhaW5zdCBwb2x1dGluZyBhbGwgdGhlIEMgc291cmNlcyB3aXRoIGl0LCB5b3Ugc2hvdWxk CmVuc3VyZSB0aGF0IGFtZGdwdV9pbnRlcm5hbC5oIGlzIGluY2x1ZGVkIGJlZm9yZSBhbnkgb3Ro ZXIgaGVhZGVyIGluCmV2ZXJ5IHNvdXJjZSBhbmQgaGVhZGVyIGZpbGUuCgoKPiAraW50IGFtZGdw dV9ib19jcHVfbWFwKGFtZGdwdV9ib19oYW5kbGUgYm8sIHZvaWQgKipjcHUpCj4gK3sKPiArCXVu aW9uIGRybV9hbWRncHVfZ2VtX21tYXAgYXJnczsKPiArCXZvaWQgKnB0cjsKPiArCWludCByOwo+ ICsKPiArCXB0aHJlYWRfbXV0ZXhfbG9jaygmYm8tPmNwdV9hY2Nlc3NfbXV0ZXgpOwo+ICsKPiAr CWlmIChiby0+Y3B1X3B0cikgewo+ICsJCS8qIGFscmVhZHkgbWFwcGVkICovCj4gKwkJYXNzZXJ0 KGJvLT5jcHVfbWFwX2NvdW50ID4gMCk7Cj4gKwkJYm8tPmNwdV9tYXBfY291bnQrKzsKPiArCQkq Y3B1ID0gYm8tPmNwdV9wdHI7Cj4gKwkJcHRocmVhZF9tdXRleF91bmxvY2soJmJvLT5jcHVfYWNj ZXNzX211dGV4KTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArCj4gKwlhc3NlcnQoYm8tPmNwdV9t YXBfY291bnQgPT0gMCk7Cj4gKwo+ICsJbWVtc2V0KCZhcmdzLCAwLCBzaXplb2YoYXJncykpOwo+ ICsKPiArCS8qIFF1ZXJ5IHRoZSBidWZmZXIgYWRkcmVzcyAoYXJncy5hZGRyX3B0cikuCj4gKwkg KiBUaGUga2VybmVsIGRyaXZlciBpZ25vcmVzIHRoZSBvZmZzZXQgYW5kIHNpemUgcGFyYW1ldGVy cy4gKi8KPiArCWFyZ3MuaW4uaGFuZGxlID0gYm8tPmhhbmRsZTsKPiArCj4gKwlyID0gZHJtQ29t bWFuZFdyaXRlUmVhZChiby0+ZGV2LT5mZCwgRFJNX0FNREdQVV9HRU1fTU1BUCwgJmFyZ3MsCj4g KwkJCQlzaXplb2YoYXJncykpOwo+ICsJaWYgKHIpIHsKPiArCQlwdGhyZWFkX211dGV4X3VubG9j aygmYm8tPmNwdV9hY2Nlc3NfbXV0ZXgpOwo+ICsJCXJldHVybiByOwo+ICsJfQo+ICsKPiArCS8q IE1hcCB0aGUgYnVmZmVyLiAqLwo+ICsJcHRyID0gbW1hcChOVUxMLCBiby0+YWxsb2Nfc2l6ZSwg UFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwKUGxlYXNlIHVzZSBkcm1fbW1hcC9k cm1fbXVubWFwLgoKCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2FtZGdwdS9hbWRncHVfY3MuYwoK PiArc3RhdGljIGludCBhbWRncHVfY3NfY3JlYXRlX2liKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRl diwKPiArCQkJICAgICAgIGFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0LAo+ICsJCQkgICAg ICAgZW51bSBhbWRncHVfY3NfaWJfc2l6ZSBpYl9zaXplLAo+ICsJCQkgICAgICAgYW1kZ3B1X2li X2hhbmRsZSAqaWIpCj4gK3sKCj4gKwluZXdfaWIgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBhbWRn cHVfaWIpKTsKPiArCWlmIChOVUxMID09IG5ld19pYikgewpVc2UgbmV3X2liID09IE5VTEwgb3Ig IW5ld19pYiA/IFRoZXJlIGFyZSBhIGZldyBvdGhlciBwbGFjZXMgdGhhdCBjYW4gZG8gc28uCgo+ IC0tLSAvZGV2L251bGwKPiArKysgYi9hbWRncHUvYW1kZ3B1X2RldmljZS5jCgo+ICtzdGF0aWMg dW5zaWduZWQgZmRfaGFzaCh2b2lkICprZXkpCj4gK3sKPiArCWludCBmZCA9IFBUUl9UT19VSU5U KGtleSk7Cj4gKwlzdHJ1Y3Qgc3RhdCBzdGF0Owo+ICsJZnN0YXQoZmQsICZzdGF0KTsKPiArCj4g KwlpZiAoIVNfSVNDSFIoc3RhdC5zdF9tb2RlKSkKPiArCQlyZXR1cm4gc3RhdC5zdF9kZXYgXiBz dGF0LnN0X2lubzsKSSdtIGEgYml0IHB1enpsZWQsIGhvdyBpcyB0aGlzIHBvc3NpYmxlID8KCj4g KwllbHNlCj4gKwkJcmV0dXJuIHN0YXQuc3RfZGV2IF4gKHN0YXQuc3RfcmRldiAmIFJFTkRFUk5P REVfTUlOT1JfTUFTSyk7CkknbSBub3QgMTAwJSBzdXJlIHRoYXQgdGhlcmUgd29uJ3QgYmUgYW55 IHNpZGUtZWZmZWN0cyB3aXRoIHRoZSBpZGVhIG9mCnVzaW5nIHByaW1hcnkgYW5kIHJlbmRlciBu b2RlIGludGVyY2hhbmdlYWJseS4KClBsdXMgb25lIGNhbm5vdCBtYXNrIG91dCB0byBnZXQgZnJv bSB0aGUgcHJpbWFyeSBkZXZpY2UgdG8gdGhlIHJlbmRlcgpvbmUsIG9yIHZpY2UtdmVyc2EuIFRo ZSBtaW5vciBudW1iZXIgaXMgbm90IHJlbGlhYmxlIChyaWdodGZ1bGx5IHNvKSwKdGh1cyBvbmUg Y2FuIHVzZSBkcm1HZXQoUHJpbWFyeXxSZW5kZXIpRGV2aWNlTmFtZUZyb21GZCBvciBpbnRyb2R1 Y2UKdGhlaXIgZmQgY291bnRlcnBhcnQuCgoKPiArfQo+ICsKPiArc3RhdGljIGludCBmZF9jb21w YXJlKHZvaWQgKmtleTEsIHZvaWQgKmtleTIpCj4gK3sKPiArCWludCBmZDEgPSBQVFJfVE9fVUlO VChrZXkxKTsKPiArCWludCBmZDIgPSBQVFJfVE9fVUlOVChrZXkyKTsKPiArCXN0cnVjdCBzdGF0 IHN0YXQxLCBzdGF0MjsKPiArCWZzdGF0KGZkMSwgJnN0YXQxKTsKPiArCWZzdGF0KGZkMiwgJnN0 YXQyKTsKPiArCj4gKwlpZiAoIVNfSVNDSFIoc3RhdDEuc3RfbW9kZSkgfHwgIVNfSVNDSFIoc3Rh dDIuc3RfbW9kZSkpCj4gKwkJcmV0dXJuIHN0YXQxLnN0X2RldiAhPSBzdGF0Mi5zdF9kZXYgfHwK PiArCQkJc3RhdDEuc3RfaW5vICE9IHN0YXQyLnN0X2lubzsKPiArICAgICAgICBlbHNlCj4gKwkJ cmV0dXJuIG1ham9yKHN0YXQxLnN0X3JkZXYpICE9IG1ham9yKHN0YXQyLnN0X3JkZXYpIHx8Cj4g KwkJCShtaW5vcihzdGF0MS5zdF9yZGV2KSAmIFJFTkRFUk5PREVfTUlOT1JfTUFTSykgIT0KPiAr CQkJKG1pbm9yKHN0YXQyLnN0X3JkZXYpICYgUkVOREVSTk9ERV9NSU5PUl9NQVNLKTsKU2FtZSBj b21tZW50cyBhcHBseS4KCj4gK30KPiArCj4gKy8qKgo+ICsqIEdldCB0aGUgYXV0aGVudGljYXRl ZCBmb3JtIGZkLAo+ICsqCj4gKyogXHBhcmFtICAgZmQgICAtIFxjIFtpbl0gIEZpbGUgZGVzY3Jp cHRvciBmb3IgQU1EIEdQVSBkZXZpY2UKPiArKiBccGFyYW0gICBhdXRoIC0gXGMgW291dF0gUG9p bnRlciB0byBvdXRwdXQgdGhlIGZkIGlzIGF1dGhlbnRpY2F0ZWQgb3Igbm90Cj4gKyogICAgICAg ICAgICAgICAgICAgICAgICAgIEEgcmVuZGVyIG5vZGUgZmQsIG91dHB1dCBhdXRoID0gMAo+ICsq ICAgICAgICAgICAgICAgICAgICAgICAgICBBIGxlZ2FjeSBmZCwgZ2V0IHRoZSBhdXRoZW50aWNh dGVkIGZvciBjb21wYXRpYmlsaXR5IHJvb3QKPiArKgo+ICsqIFxyZXR1cm4gICAwIG9uIHN1Y2Nl c3Ncbgo+ICsqICAgICAgICAgID4wIC0gQU1EIHNwZWNpZmljIGVycm9yIGNvZGVcbgo+ICsqICAg ICAgICAgIDwwIC0gTmVnYXRpdmUgUE9TSVggRXJyb3IgY29kZQo+ICsqLwo+ICtzdGF0aWMgaW50 IGFtZGdwdV9nZXRfYXV0aChpbnQgZmQsIGludCAqYXV0aCkKPiArewo+ICsJaW50IHIgPSAwOwo+ ICsJZHJtX2NsaWVudF90IGNsaWVudDsKPiArCXN0cnVjdCBzdGF0IHN0YXQxOwo+ICsJZnN0YXQo ZmQsJnN0YXQxKTsKPiArCWlmIChtaW5vcihzdGF0MS5zdF9yZGV2KSAmIH5SRU5ERVJOT0RFX01J Tk9SX01BU0spLyogZmluZCBhIHJlbmRlciBub2RlIGZkICovClBsZWFzZSB1c2UgZHJtR2V0Tm9k ZVR5cGVGcm9tRmQoKS4KCgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9hbWRncHUvYW1kZ3B1X2lu dGVybmFsLmgKPiBAQCAtMCwwICsxLDIxMCBAQAoKPiArI2lmbmRlZiBfYW1kZ3B1X2ludGVybmFs X2hfCj4gKyNkZWZpbmUgX2FtZGdwdV9pbnRlcm5hbF9oXwo+ICsKQ2FwaXRhbCBsZXR0ZXJzIGZv ciB0aGUgaGVhZGVyIGd1YXJkID8KCj4gKyNpZmRlZiBIQVZFX0NPTkZJR19ICj4gKyNpbmNsdWRl ICJjb25maWcuaCIKPiArI2VuZGlmCj4gKwo+ICsjaW5jbHVkZSA8YXNzZXJ0Lmg+Cj4gKyNpbmNs dWRlIDxwdGhyZWFkLmg+Cj4gKyNpbmNsdWRlICJ4Zjg2YXRvbWljLmgiCj4gKyNpbmNsdWRlICJh bWRncHUuaCIKPiArI2luY2x1ZGUgInV0aWxfZG91YmxlX2xpc3QuaCIKPiArCj4gKyNkZWZpbmUg QVJSQVlfU0laRShhKSAoc2l6ZW9mKGEpIC8gc2l6ZW9mKChhKVswXSkpCj4gKwpEcm9wIHRoaXMg YW5kIHVzZSB1dGlsX21hdGguaCB3aGVyZSBuZWVkZWQgPwoKCj4gKy8qKgo+ICsgKiBJbmNyZW1l bnQgc3JjIGFuZCBkZWNyZW1lbnQgZHN0IGFzIGlmIHdlIHdlcmUgdXBkYXRpbmcgcmVmZXJlbmNl cwo+ICsgKiBmb3IgYW4gYXNzaWdubWVudCBiZXR3ZWVuIDIgcG9pbnRlcnMgb2Ygc29tZSBvYmpl Y3RzLgo+ICsgKgo+ICsgKiBccmV0dXJuICB0cnVlIGlmIGRzdCBpcyAwCj4gKyAqLwo+ICtzdGF0 aWMgaW5saW5lIGJvb2wgdXBkYXRlX3JlZmVyZW5jZXMoYXRvbWljX3QgKmRzdCwgYXRvbWljX3Qg KnNyYykKPiArewo+ICsJaWYgKGRzdCAhPSBzcmMpIHsKPiArCQkvKiBidW1wIHNyYyBmaXJzdCAq Lwo+ICsJCWlmIChzcmMpIHsKPiArCQkJYXNzZXJ0KGF0b21pY19yZWFkKHNyYykgPiAwKTsKPiAr CQkJYXRvbWljX2luYyhzcmMpOwo+ICsJCX0KPiArCQlpZiAoZHN0KSB7Cj4gKwkJCWFzc2VydChh dG9taWNfcmVhZChkc3QpID4gMCk7Cj4gKwkJCXJldHVybiBhdG9taWNfZGVjX2FuZF90ZXN0KGRz dCk7CkFtIEkgaW1hZ2luaW5nIHNvbWV0aGluZyBvciBkb2VzIHRoZSBhc3NlcnQgY29uZGl0aW9u cyBsb29rIGEgYml0IHN0cmFuZ2UgPwoKCj4gZGlmZiAtLWdpdCBhL2FtZGdwdS91dGlsX2RvdWJs ZV9saXN0LmggYi9hbWRncHUvdXRpbF9kb3VibGVfbGlzdC5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQKPiBpbmRleCAwMDAwMDAwLi4zZjQ4YWUyCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2FtZGdw dS91dGlsX2RvdWJsZV9saXN0LmgKVGhlcmUgYXJlIGFscmVhZHkgdHdvIGlkZW50aWNhbCBjb3Bp ZXMgb2YgdGhpcyBmaWxlIC0gbGV0J3Mgbm90IGFkZCBhCnRoaXJkIG9uZS4KCmZyZWVkcmVuby9s aXN0LmgKdGVzdHMvcmFkZW9uL2xpc3QuaAoKSG93IGFib3V0IHdlIG1vdmUgaXQgb25lIGxldmVs IHVwLCBhbmQgdXBkYXRlIHRoZSBjdXJyZW50IHVzZXJzIChpbmNsLgpNYWtlZmlsZS5zb3VyY2Vz KQoKCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2FtZGdwdS91dGlsX2hhc2guYwoKPiAtLS0gL2Rl di9udWxsCj4gKysrIGIvYW1kZ3B1L3V0aWxfaGFzaF90YWJsZS5jCgpDYW4gb25lIHVzZSB0aGUg ZXhpc3RpbmcgZHJtSGFzaCBmdW5jdGlvbnMgbGlrZSBvbWFwIGFuZCBmcmVlZHJlbm8gPwpXb3Vs ZCBiZSBuaWNlIHRvIGF2b2lkIGdvaW5nIHRoZSBtZXNhJ3Mgcm91dGUgd2hpY2ggaWlyYyBoYXMg Zm91cgpkaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zLgoKCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L2FtZGdwdS91dGlsX21hdGguaApGV0lXIHdlIGNhbiBtb3ZlIHRoaXMgYSBsZXZlbCB1cCwgc28g dGhhdCBvdGhlcnMgY2FuIHVzZSBpdC4gT2J2aW91c2x5CnRoZXJlIGlzIG5vIHJlYXNvbiB0byBi ZSBwYXJ0IG9mIHRoaXMgc2VyaWVzLgoKPiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29u ZmlndXJlLmFjCj4gaW5kZXggMTU1ZDU3Ny4uNTA5ZjJkNCAxMDA2NDQKPiAtLS0gYS9jb25maWd1 cmUuYWMKPiArKysgYi9jb25maWd1cmUuYWMKPiBAQCAtMzYsNiArMzYsNyBAQCBtNF9pZmRlZihb QU1fU0lMRU5UX1JVTEVTXSwgW0FNX1NJTEVOVF9SVUxFUyhbeWVzXSldKQo+ICAKPiAgIyBDaGVj ayBmb3IgcHJvZ3JhbXMKPiAgQUNfUFJPR19DQwo+ICtBQ19QUk9HX0NYWAo+ICAKVGhlcmUgYXJl IG5vIEMrKyBzb3VyY2VzLCBzbyB5b3UgZG9uJ3QgbmVlZCBhIEMrKyBjb21waWxlci4KCj4gQEAg LTIzNiw2ICsyNDIsOSBAQCBpZiB0ZXN0ICJ4JGRybV9jdl9hdG9taWNfcHJpbWl0aXZlcyIgPSAi eG5vbmUiOyB0aGVuCj4gIAlMSUJEUk1fQVRPTUlDU19OT1RfRk9VTkRfTVNHKCRSQURFT04sIHJh ZGVvbiwgUmFkZW9uLCByYWRlb24pCj4gIAlSQURFT049bm8KPiAgCj4gKwlMSUJEUk1fQVRPTUlD U19OT1RfRk9VTkRfTVNHKCRBTURHUFUsIGFtZGdwdSwgQU1ELCBhbWRncHUpCj4gKwlBTURHUFU9 bm8KPiArCkdsYWQgdG8gc2VlIHRoaXMsIHVubGlrZSB0aGUgb3JpZ2luYWwgY29weS9wYXN0ZSBv ZiBhbiBpbnNhbmVseSBsb25nCm1lc3NhZ2UgcHJldmlvdXNseSA6KQoKPiAraWYgdGVzdCAieCRB TURHUFUiID0geHllczsgdGhlbgo+ICsJQUNfREVGSU5FKEhBVkVfQU1ER1BVLCAxLCBbSGF2ZSBh bWRncHUgc3VwcG9ydF0pCj4gK2ZpCj4gKwpVbmxlc3MgeW91J3JlIHBsYW5uaW5nIHRvIGFkZCBz dXBwb3J0IHRvIGxpYmttcyB5b3UgY2FuIGRyb3AgdGhpcy4KCgo+IGRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9hbWRncHVfZHJtLmggYi9pbmNsdWRlL2RybS9hbWRncHVfZHJtLmgKPiBuZXcgZmls ZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmQyNDhkNzcKPiAtLS0gL2Rldi9udWxsCj4g KysrIGIvaW5jbHVkZS9kcm0vYW1kZ3B1X2RybS5oCgo+ICtzdHJ1Y3QgZHJtX2FtZGdwdV9jc19p biB7Cj4gKwkvKiogUmVuZGVyaW5nIGNvbnRleHQgaWQgKi8KPiArCXVpbnQzMl90CQljdHhfaWQ7 Cj4gKwkvKiogIEhhbmRsZSBvZiByZXNvdXJjZSBsaXN0IGFzc29jaWF0ZWQgd2l0aCBDUyAqLwo+ ICsJdWludDMyX3QJCWJvX2xpc3RfaGFuZGxlOwo+ICsJdWludDMyX3QJCW51bV9jaHVua3M7Cj4g Kwl1aW50MzJfdAkJcGFkOwo+ICsJLyogdGhpcyBwb2ludHMgdG8gdWludDY0X3QgKiB3aGljaCBw b2ludCB0byBjcyBjaHVua3MgKi8KPiArCXVpbnQ2NF90CQljaHVua3M7Cj4gK307Cj4gKwo+ICtz dHJ1Y3QgZHJtX2FtZGdwdV9jc19vdXQgewo+ICsJdWludDY0X3QgaGFuZGxlOwo+ICt9Owo+ICsK PiArdW5pb24gZHJtX2FtZGdwdV9jcyB7Cj4gKyAgICAgICBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19p biBpbjsKPiArICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX291dCBvdXQ7Cj4gK307Cj4gKwpE b24ndCB0aGluayBJJ3ZlIHNlZW4gc2ltaWxhciBjb250cnVjdCBpbiBhbnkgb2YgdGhlIG90aGVy IGRybSBkcml2ZXJzLgooR2VudWVubHkgY3VyaW91cykgV2hhdCBiZW5lZml0IGRvZXMgaXQgYnJp bmcgPwoKCkkgdGhpbmsgeW91IHdhbnQgdG8gYWRkIGEgdHJhaWxpbmcgcGFkZGluZyBmb3IgdGhl IGZvbGxvd2luZyBzdHJ1Y3R1cmVzLgpJJ20gdGhpbmtpbmcgb2YgYSBjYXNlIHdoZXJlLCBvbGQg NjRiaXQgdXNlcnNwYWNlIGZlZWRzIGluIHRoZSBsYXN0IHUzMgphcyBydWJiaXNoLCB0byB0aGUg a2VybmVsIHdoaWxlIHRoZSBsYXR0ZXIgdXNlcyBhbiB1cGRhdGVkL2V4cGFuZGVkCnN0cnVjdC4g SW4gc3VjaCBjYXNlIHRoZSBkcml2ZXIgd2lsbCBlaXRoZXIgcmVqZWN0IHRoZSByZXF1ZXN0LCBv ciB3b3JzZQp1c2UgdGhlIHJ1YmJpc2ggZGF0YS4KCgpzdHJ1Y3QgZHJtX2FtZGdwdV9nZW1fbWV0 YWRhdGEKc3RydWN0IGRybV9hbWRncHVfd2FpdF9jc19pbgoKc3RydWN0IGRybV9hbWRncHVfaW5m b19od19pcApzdHJ1Y3QgZHJtX2FtZGdwdV9pbmZvX2RldmljZQoKCgpDaGVlcnMKRW1pbAoKUC5T LiBCYXNlZCBvbiB0aGUgY29kaW5nIHN0eWxlIHNlZW1zIGxpa2UgdGhpcyBpcyB0aGUgY29tYmlu ZWQgd29yayBvZgozKyBkZXZlbG9wZXJzLiBBbnl3YXkgZ2xhZCB0byBzZWUgdGhhdCBpdCdzIG91 dCA6LSkKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==