From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhi Wang Subject: Re: [RFCv2 01/14] drm/i915: factor out i915_pvinfo.h Date: Tue, 23 Feb 2016 10:40:08 +0800 Message-ID: <56CBC688.4000705@intel.com> References: <1455795741-3487-1-git-send-email-zhi.a.wang@intel.com> <1455795741-3487-2-git-send-email-zhi.a.wang@intel.com> <1456147420.3659.11.camel@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 7ED946E301 for ; Tue, 23 Feb 2016 02:43:00 +0000 (UTC) In-Reply-To: <1456147420.3659.11.camel@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Joonas Lahtinen , intel-gfx@lists.freedesktop.org, igvt-g@lists.01.org Cc: daniel.vetter@ffwll.ch, david.j.cowperthwaite@intel.com, zhiyuan.lv@intel.com List-Id: intel-gfx@lists.freedesktop.org SGkgSm9vbmFzOgogICAgIFRoYW5rcyBmb3IgdGhlIGNvbW1lbnRzISBMZXQgbWUgY29vayBhIHBh dGNoIHRvIGltcHJvdmUgaXQgCmltbWVkaWF0ZWx5LiA6KQoKVGhhbmtzLApaaGkuCgpPbiAwMi8y Mi8xNiAyMToyMywgSm9vbmFzIExhaHRpbmVuIHdyb3RlOgo+IEhpLAo+Cj4gT24gdG8sIDIwMTYt MDItMTggYXQgMTk6NDIgKzA4MDAsIFpoaSBXYW5nIHdyb3RlOgo+PiBBcyB0aGUgUFZJTkZPIHBh Z2UgZGVmaW5pdGlvbiBpcyB1c2VkIGJ5IGJvdGggR1ZULWcgZ3Vlc3QgKHZHUFUpIGFuZCBHVlQt Zwo+PiBob3N0IChHVlQtZyBrZXJuZWwgZGV2aWNlIG1vZGVsKSwgZmFjdG9yIGl0IG91dCBmb3Ig YmV0dGVyIGNvZGUgc3RydWN0dXJlLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBaaGkgV2FuZyA8emhp LmEud2FuZ0BpbnRlbC5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cHZpbmZvLmggfCAxMTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5oICAgfCAgODYgKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+PiAgIDIgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDg1 IGRlbGV0aW9ucygtKQo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3B2aW5mby5oCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3B2aW5mby5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wdmluZm8uaAo+PiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwLi42OGJkZjYwCj4+IC0tLSAvZGV2L251 bGwKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wdmluZm8uaAo+PiBAQCAtMCww ICsxLDExMyBAQAo+PiArLyoKPj4gKyAqIENvcHlyaWdodChjKSAyMDExLTIwMTYgSW50ZWwgQ29y cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4+ICsgKgo+PiArICogUGVybWlzc2lvbiBp cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n IGEKPj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4+ICsg KiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwKPj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+PiArICogU29mdHdhcmUgaXMg ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK Pj4gKyAqCj4+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJl IGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4+ ICsgKiBTb2Z0d2FyZS4KPj4gKyAqCj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+PiArICogSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFksCj4+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPj4gKyAqIFRIRSBBVVRIT1JTIE9S IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U SEVSCj4+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAo+PiArICogT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBU SEUKPj4gKyAqIFNPRlRXQVJFLgo+PiArICovCj4+ICsKPj4gKyNpZm5kZWYgX0k5MTVfUFZJTkZP X0hfCj4+ICsjZGVmaW5lIF9JOTE1X1BWSU5GT19IXwo+PiArCj4+ICsvKiBUaGUgTU1JTyBvZmZz ZXQgb2YgdGhlIHNoYXJlZCBpbmZvIGJldHdlZW4gZ3Vlc3QgYW5kIGhvc3QgZW11bGF0b3IgKi8K Pj4gKyNkZWZpbmUgVkdUX1BWSU5GT19QQUdFCTB4NzgwMDAKPj4gKyNkZWZpbmUgVkdUX1BWSU5G T19TSVpFCTB4MTAwMAo+PiArCj4+ICsvKgo+PiArICogVGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUg cGFnZXMgYXJlIGRlZmluZWQgaW4gR0VOIE1NSU8gc3BhY2UKPj4gKyAqIGZvciB2aXJ0dWFsaXph dGlvbi4gKE9uZSBwYWdlIGZvciBub3cpCj4+ICsgKi8KPj4gKyNkZWZpbmUgVkdUX01BR0lDICAg ICAgICAgMHg0Nzc2NTQ0Nzc2NTQ0Nzc2VUxMCS8qICd2R1R2R1R2RycgKi8KPj4gKyNkZWZpbmUg VkdUX1ZFUlNJT05fTUFKT1IgMQo+PiArI2RlZmluZSBWR1RfVkVSU0lPTl9NSU5PUiAwCj4+ICsK Pj4gKyNkZWZpbmUgSU5URUxfVkdUX0lGX1ZFUlNJT05fRU5DT0RFKG1ham9yLCBtaW5vcikgKCht YWpvcikgPDwgMTYgfCAobWlub3IpKQo+PiArI2RlZmluZSBJTlRFTF9WR1RfSUZfVkVSU0lPTiBc Cj4+ICsJSU5URUxfVkdUX0lGX1ZFUlNJT05fRU5DT0RFKFZHVF9WRVJTSU9OX01BSk9SLCBWR1Rf VkVSU0lPTl9NSU5PUikKPj4gKwo+PiArLyoKPj4gKyAqIG5vdGlmaWNhdGlvbnMgZnJvbSBndWVz dCB0byB2Z3B1IGRldmljZSBtb2RlbAo+PiArICovCj4+ICtlbnVtIHZndF9nMnZfdHlwZSB7Cj4+ ICsJVkdUX0cyVl9QUEdUVF9MM19QQUdFX1RBQkxFX0NSRUFURSA9IDIsCj4+ICsJVkdUX0cyVl9Q UEdUVF9MM19QQUdFX1RBQkxFX0RFU1RST1ksCj4+ICsJVkdUX0cyVl9QUEdUVF9MNF9QQUdFX1RB QkxFX0NSRUFURSwKPj4gKwlWR1RfRzJWX1BQR1RUX0w0X1BBR0VfVEFCTEVfREVTVFJPWSwKPj4g KwlWR1RfRzJWX0VYRUNMSVNUX0NPTlRFWFRfQ1JFQVRFLAo+PiArCVZHVF9HMlZfRVhFQ0xJU1Rf Q09OVEVYVF9ERVNUUk9ZLAo+PiArCVZHVF9HMlZfTUFYLAo+PiArfTsKPj4gKwo+PiArc3RydWN0 IHZndF9pZiB7Cj4+ICsJdWludDY0X3QgbWFnaWM7CQkvKiBWR1RfTUFHSUMgKi8KPj4gKwl1aW50 MTZfdCB2ZXJzaW9uX21ham9yOwo+PiArCXVpbnQxNl90IHZlcnNpb25fbWlub3I7Cj4+ICsJdWlu dDMyX3Qgdmd0X2lkOwkvKiBJRCBvZiB2R1QgaW5zdGFuY2UgKi8KPj4gKwl1aW50MzJfdCByc3Yx WzEyXTsJLyogcGFkIHRvIG9mZnNldCAweDQwICovCj4+ICsJLyoKPj4gKwkgKiAgRGF0YSBzdHJ1 Y3R1cmUgdG8gZGVzY3JpYmUgdGhlIGJhbG9vbmluZyBpbmZvIG9mIHJlc291cmNlcy4KPj4gKwkg KiAgRWFjaCBWTSBjYW4gb25seSBoYXZlIG9uZSBwb3J0aW9uIG9mIGNvbnRpbnVvdXMgYXJlYSBm b3Igbm93Lgo+PiArCSAqICAoTWF5IHN1cHBvcnQgc2NhdHRlcmVkIHJlc291cmNlIGluIGZ1dHVy ZSkKPj4gKwkgKiAgKHN0YXJ0aW5nIGZyb20gb2Zmc2V0IDB4NDApCj4+ICsJICovCj4+ICsJc3Ry dWN0IHsKPj4gKwkJLyogQXBlcnR1cmUgcmVnaXN0ZXIgYmFsb29uaW5nICovCj4+ICsJCXN0cnVj dCB7Cj4+ICsJCQl1aW50MzJfdCBiYXNlOwo+PiArCQkJdWludDMyX3Qgc2l6ZTsKPj4gKwkJfSBt YXBwYWJsZV9nbWFkcjsJLyogYXBlcnR1cmUgKi8KPj4gKwkJLyogR01BRFIgcmVnaXN0ZXIgYmFs b29uaW5nICovCj4+ICsJCXN0cnVjdCB7Cj4+ICsJCQl1aW50MzJfdCBiYXNlOwo+PiArCQkJdWlu dDMyX3Qgc2l6ZTsKPj4gKwkJfSBub25tYXBwYWJsZV9nbWFkcjsJLyogbm9uIGFwZXJ0dXJlICov Cj4+ICsJCS8qIGFsbG93ZWQgZmVuY2UgcmVnaXN0ZXJzICovCj4+ICsJCXVpbnQzMl90IGZlbmNl X251bTsKPj4gKwkJdWludDMyX3QgcnN2MlszXTsKPj4gKwl9IGF2YWlsX3JzOwkJLyogYXZhaWxh YmxlL2Fzc2lnbmVkIHJlc291cmNlICovCj4+ICsJdWludDMyX3QgcnN2M1sweDIwMCAtIDI0XTsJ LyogcGFkIHRvIGhhbGYgcGFnZSAqLwo+PiArCS8qCj4+ICsJICogVGhlIGJvdHRvbSBoYWxmIHBh Z2UgaXMgZm9yIHJlc3BvbnNlIGZyb20gR2Z4IGRyaXZlciB0byBoeXBlcnZpc29yLgo+PiArCSAq Lwo+PiArCXVpbnQzMl90IHJzdjQ7Cj4+ICsJdWludDMyX3QgZGlzcGxheV9yZWFkeTsJLyogcmVh ZHkgZm9yIGRpc3BsYXkgb3duZXIgc3dpdGNoICovCj4+ICsKPj4gKwl1aW50MzJfdCByc3Y1WzRd Owo+PiArCj4+ICsJdWludDMyX3QgZzJ2X25vdGlmeTsKPj4gKwl1aW50MzJfdCByc3Y2WzddOwo+ PiArCj4+ICsJc3RydWN0IHsKPj4gKwkJdWludDMyX3QgbG87Cj4+ICsJCXVpbnQzMl90IGhpOwo+ PiArCX0gcGRwWzRdOwo+PiArCj4+ICsJdWludDMyX3QgZXhlY2xpc3RfY29udGV4dF9kZXNjcmlw dG9yX2xvOwo+PiArCXVpbnQzMl90IGV4ZWNsaXN0X2NvbnRleHRfZGVzY3JpcHRvcl9oaTsKPj4g Kwo+PiArCXVpbnQzMl90ICByc3Y3WzB4MjAwIC0gMjRdOyAgICAvKiBwYWQgdG8gb25lIHBhZ2Ug Ki8KPj4gK30gX19wYWNrZWQ7Cj4+ICsKPj4gKyNkZWZpbmUgdmd0aWZfcmVnKHgpIFwKPj4gKwlf TU1JTygoVkdUX1BWSU5GT19QQUdFICsgKGxvbmcpJigoc3RydWN0IHZndF9pZiAqKU5VTEwpLT54 KSkKPgo+IEkgcmVhbGl6ZSB0aGlzIGlzIGNvZGUtbW90aW9uIHBhdGNoLCBidXQgd2h5IGRvZXMg bm90IHRoaXMgdXNlCj4gb2Zmc2V0b2Y/Cj4KPj4gKwo+PiArLyogdkdQVSBkaXNwbGF5IHN0YXR1 cyB0byBiZSB1c2VkIGJ5IHRoZSBob3N0IHNpZGUgKi8KPj4gKyNkZWZpbmUgVkdUX0RSVl9ESVNQ TEFZX05PVF9SRUFEWSAwCj4+ICsjZGVmaW5lIFZHVF9EUlZfRElTUExBWV9SRUFEWSAgICAgMSAg LyogcmVhZHkgZm9yIGRpc3BsYXkgc3dpdGNoICovCj4+ICsKPj4gKyNlbmRpZiAvKiBfSTkxNV9Q VklORk9fSF8gKi8KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdw dS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmgKPj4gaW5kZXggM2M4M2I0Ny4u YTNiMDZmMyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmgK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmgKPj4gQEAgLTI0LDkxICsy NCw3IEBACj4+ICAgI2lmbmRlZiBfSTkxNV9WR1BVX0hfCj4+ICAgI2RlZmluZSBfSTkxNV9WR1BV X0hfCj4+Cj4+IC0vKiBUaGUgTU1JTyBvZmZzZXQgb2YgdGhlIHNoYXJlZCBpbmZvIGJldHdlZW4g Z3Vlc3QgYW5kIGhvc3QgZW11bGF0b3IgKi8KPj4gLSNkZWZpbmUgVkdUX1BWSU5GT19QQUdFCTB4 NzgwMDAKPj4gLSNkZWZpbmUgVkdUX1BWSU5GT19TSVpFCTB4MTAwMAo+PiAtCj4+IC0vKgo+PiAt ICogVGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUgcGFnZXMgYXJlIGRlZmluZWQgaW4gR0VOIE1NSU8g c3BhY2UKPj4gLSAqIGZvciB2aXJ0dWFsaXphdGlvbi4gKE9uZSBwYWdlIGZvciBub3cpCj4+IC0g Ki8KPj4gLSNkZWZpbmUgVkdUX01BR0lDICAgICAgICAgMHg0Nzc2NTQ0Nzc2NTQ0Nzc2VUxMCS8q ICd2R1R2R1R2RycgKi8KPj4gLSNkZWZpbmUgVkdUX1ZFUlNJT05fTUFKT1IgMQo+PiAtI2RlZmlu ZSBWR1RfVkVSU0lPTl9NSU5PUiAwCj4+IC0KPj4gLSNkZWZpbmUgSU5URUxfVkdUX0lGX1ZFUlNJ T05fRU5DT0RFKG1ham9yLCBtaW5vcikgKChtYWpvcikgPDwgMTYgfCAobWlub3IpKQo+PiAtI2Rl ZmluZSBJTlRFTF9WR1RfSUZfVkVSU0lPTiBcCj4+IC0JSU5URUxfVkdUX0lGX1ZFUlNJT05fRU5D T0RFKFZHVF9WRVJTSU9OX01BSk9SLCBWR1RfVkVSU0lPTl9NSU5PUikKPj4gLQo+PiAtLyoKPj4g LSAqIG5vdGlmaWNhdGlvbnMgZnJvbSBndWVzdCB0byB2Z3B1IGRldmljZSBtb2RlbAo+PiAtICov Cj4+IC1lbnVtIHZndF9nMnZfdHlwZSB7Cj4+IC0JVkdUX0cyVl9QUEdUVF9MM19QQUdFX1RBQkxF X0NSRUFURSA9IDIsCj4+IC0JVkdUX0cyVl9QUEdUVF9MM19QQUdFX1RBQkxFX0RFU1RST1ksCj4+ IC0JVkdUX0cyVl9QUEdUVF9MNF9QQUdFX1RBQkxFX0NSRUFURSwKPj4gLQlWR1RfRzJWX1BQR1RU X0w0X1BBR0VfVEFCTEVfREVTVFJPWSwKPj4gLQlWR1RfRzJWX0VYRUNMSVNUX0NPTlRFWFRfQ1JF QVRFLAo+PiAtCVZHVF9HMlZfRVhFQ0xJU1RfQ09OVEVYVF9ERVNUUk9ZLAo+PiAtCVZHVF9HMlZf TUFYLAo+PiAtfTsKPj4gLQo+PiAtc3RydWN0IHZndF9pZiB7Cj4+IC0JdWludDY0X3QgbWFnaWM7 CQkvKiBWR1RfTUFHSUMgKi8KPj4gLQl1aW50MTZfdCB2ZXJzaW9uX21ham9yOwo+PiAtCXVpbnQx Nl90IHZlcnNpb25fbWlub3I7Cj4+IC0JdWludDMyX3Qgdmd0X2lkOwkvKiBJRCBvZiB2R1QgaW5z dGFuY2UgKi8KPj4gLQl1aW50MzJfdCByc3YxWzEyXTsJLyogcGFkIHRvIG9mZnNldCAweDQwICov Cj4+IC0JLyoKPj4gLQkgKiAgRGF0YSBzdHJ1Y3R1cmUgdG8gZGVzY3JpYmUgdGhlIGJhbG9vbmlu ZyBpbmZvIG9mIHJlc291cmNlcy4KPj4gLQkgKiAgRWFjaCBWTSBjYW4gb25seSBoYXZlIG9uZSBw b3J0aW9uIG9mIGNvbnRpbnVvdXMgYXJlYSBmb3Igbm93Lgo+PiAtCSAqICAoTWF5IHN1cHBvcnQg c2NhdHRlcmVkIHJlc291cmNlIGluIGZ1dHVyZSkKPj4gLQkgKiAgKHN0YXJ0aW5nIGZyb20gb2Zm c2V0IDB4NDApCj4+IC0JICovCj4+IC0Jc3RydWN0IHsKPj4gLQkJLyogQXBlcnR1cmUgcmVnaXN0 ZXIgYmFsb29uaW5nICovCj4+IC0JCXN0cnVjdCB7Cj4+IC0JCQl1aW50MzJfdCBiYXNlOwo+PiAt CQkJdWludDMyX3Qgc2l6ZTsKPj4gLQkJfSBtYXBwYWJsZV9nbWFkcjsJLyogYXBlcnR1cmUgKi8K Pj4gLQkJLyogR01BRFIgcmVnaXN0ZXIgYmFsb29uaW5nICovCj4+IC0JCXN0cnVjdCB7Cj4+IC0J CQl1aW50MzJfdCBiYXNlOwo+PiAtCQkJdWludDMyX3Qgc2l6ZTsKPj4gLQkJfSBub25tYXBwYWJs ZV9nbWFkcjsJLyogbm9uIGFwZXJ0dXJlICovCj4+IC0JCS8qIGFsbG93ZWQgZmVuY2UgcmVnaXN0 ZXJzICovCj4+IC0JCXVpbnQzMl90IGZlbmNlX251bTsKPj4gLQkJdWludDMyX3QgcnN2MlszXTsK Pj4gLQl9IGF2YWlsX3JzOwkJLyogYXZhaWxhYmxlL2Fzc2lnbmVkIHJlc291cmNlICovCj4+IC0J dWludDMyX3QgcnN2M1sweDIwMCAtIDI0XTsJLyogcGFkIHRvIGhhbGYgcGFnZSAqLwo+PiAtCS8q Cj4+IC0JICogVGhlIGJvdHRvbSBoYWxmIHBhZ2UgaXMgZm9yIHJlc3BvbnNlIGZyb20gR2Z4IGRy aXZlciB0byBoeXBlcnZpc29yLgo+PiAtCSAqLwo+PiAtCXVpbnQzMl90IHJzdjQ7Cj4+IC0JdWlu dDMyX3QgZGlzcGxheV9yZWFkeTsJLyogcmVhZHkgZm9yIGRpc3BsYXkgb3duZXIgc3dpdGNoICov Cj4+IC0KPj4gLQl1aW50MzJfdCByc3Y1WzRdOwo+PiAtCj4+IC0JdWludDMyX3QgZzJ2X25vdGlm eTsKPj4gLQl1aW50MzJfdCByc3Y2WzddOwo+PiAtCj4+IC0Jc3RydWN0IHsKPj4gLQkJdWludDMy X3QgbG87Cj4+IC0JCXVpbnQzMl90IGhpOwo+PiAtCX0gcGRwWzRdOwo+PiAtCj4+IC0JdWludDMy X3QgZXhlY2xpc3RfY29udGV4dF9kZXNjcmlwdG9yX2xvOwo+PiAtCXVpbnQzMl90IGV4ZWNsaXN0 X2NvbnRleHRfZGVzY3JpcHRvcl9oaTsKPj4gLQo+PiAtCXVpbnQzMl90ICByc3Y3WzB4MjAwIC0g MjRdOyAgICAvKiBwYWQgdG8gb25lIHBhZ2UgKi8KPj4gLX0gX19wYWNrZWQ7Cj4+IC0KPj4gLSNk ZWZpbmUgdmd0aWZfcmVnKHgpIFwKPj4gLQlfTU1JTygoVkdUX1BWSU5GT19QQUdFICsgKGxvbmcp Jigoc3RydWN0IHZndF9pZiAqKU5VTEwpLT54KSkKPj4gLQo+PiAtLyogdkdQVSBkaXNwbGF5IHN0 YXR1cyB0byBiZSB1c2VkIGJ5IHRoZSBob3N0IHNpZGUgKi8KPj4gLSNkZWZpbmUgVkdUX0RSVl9E SVNQTEFZX05PVF9SRUFEWSAwCj4+IC0jZGVmaW5lIFZHVF9EUlZfRElTUExBWV9SRUFEWSAgICAg MSAgLyogcmVhZHkgZm9yIGRpc3BsYXkgc3dpdGNoICovCj4+ICsjaW5jbHVkZSAiaTkxNV9wdmlu Zm8uaCIKPj4KPj4gICBleHRlcm4gdm9pZCBpOTE1X2NoZWNrX3ZncHUoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4+ICAgZXh0ZXJuIGludCBpbnRlbF92Z3RfYmFsbG9vbihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==