From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH i-g-t] tests/kms_frontbuffer_tracking: convert macros to functions Date: Fri, 04 Aug 2017 15:30:30 -0300 Message-ID: <1501871430.2634.24.camel@intel.com> References: <1501863684-31321-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id A13EE6E52D for ; Fri, 4 Aug 2017 18:30:48 +0000 (UTC) In-Reply-To: <1501863684-31321-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter , Intel Graphics Development Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org RW0gU2V4LCAyMDE3LTA4LTA0IMOgcyAxODoyMSArMDIwMCwgRGFuaWVsIFZldHRlciBlc2NyZXZl dToKPiBJIGd1ZXNzIHRoaXMgd2FzIGRvbmUgdG8gaGF2ZSBhIGJldHRlciBpbmRpY2F0aW9uIG9m IHdoaWNoIHRlc3RjYXNlCj4gYW5kIGZ1bmN0aW9uIGZhaWxlZCwgYnV0IGlndCBub3dhZGF5cyBk dW1wcyBhbiBlbnRpcmUgc3RhY2t0cmFjZS4KCkJ1dCB3ZSBtYXkgaGF2ZSBtdWx0aXBsZSBkb19h c3NlcnRpb25zKCkgY2FsbHMgaW4gYSBzaW5nbGUgZnVuY3Rpb24uCgo+ICBBbmQKPiBtYWNyb3Mg b2YgdGhpcyBtYWduaXR1ZGUgbWVhbiB0aGUgbGluZSBudW1iZXIgaXMgZW50aXJlbHkKPiBtZWFu aW5nbGVzcywKPiBzaW5jZSBpdCBkb2Vzbid0IHBvaW50IGF0IGEgc3BlY2lmaWMgY2hlY2suCgpG YWxzZS4gSXQgYWx3YXlzIHBvaW50cyB0byBhIGRvX2Fzc2VydGlvbnMoKSBjYWxsLCB3aGljaCBp cyB3aGF0Cm1hdHRlcnMuCgo+IAo+IFJlYXNvbiBJJ3ZlIHN0YXJ0ZWQgdG8gbG9va2luZyBpbnRv IHRoaXMgaXMgdGhhdCBpbiBvdXIgZnVsbCBpZ3QgQ0kKPiBydW5zIHdlIGhhdmUgYSBzZXJpb3Vz IHByb2JsZW0gd2l0aCB0aGUgZmJjIHRlc3RjYXNlcyByYW5kb21seQo+IGZhaWxpbmcgd2l0aAo+ IAo+IChrbXNfZnJvbnRidWZmZXJfdHJhY2tpbmc6MTYwOSkgQ1JJVElDQUw6IFRlc3QgYXNzZXJ0 aW9uIGZhaWx1cmUKPiBmdW5jdGlvbiBlbmFibGVfcHJpbV9zY3JlZW5fYW5kX3dhaXQsIGZpbGUK PiBrbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYzoxNzcxOgoKaHR0cHM6Ly9jZ2l0LmZyZWVkZXNr dG9wLm9yZy94b3JnL2FwcC9pbnRlbC1ncHUtdG9vbHMvdHJlZS90ZXN0cy9rbXNfZnIKb250YnVm ZmVyX3RyYWNraW5nLmMjbjE3NzEKClNlZT8KCgo+IChrbXNfZnJvbnRidWZmZXJfdHJhY2tpbmc6 MTYwOSkgQ1JJVElDQUw6IEZhaWxlZCBhc3NlcnRpb246IGZhbHNlCj4gKGttc19mcm9udGJ1ZmZl cl90cmFja2luZzoxNjA5KSBDUklUSUNBTDogRkJDIGRpc2FibGVkCj4gCj4gQW5kIHRoYXQncyBu b3QgZW50aXJlbHkgaGVscGZ1bC4gQWxzbywgbWFjcm9zIG9mIHRoaXMgbWFnbml0dWRlIGFyZQo+ IGp1c3QgaG9ycmlibGUgdG8gcmVhZC4KCk5BSy4gQmVpbmcgYSBtYWNybyBpbnN0ZWFkIG9mIGEg ZnVuY3Rpb24gaXMgZXh0cmVtZWx5IGhlbHBmdWwgYW5kIHRoZQpsaW5lIG51bWJlciBhbHdheXMg cG9pbnRzIG1lIHRvIHRoZSBjb3JyZWN0IGRvX2Fzc2VydGlvbnMoKSBjYWxsLCBhdApsZWFzdCB3 aGVuIEkgcnVuIHRoaXMgbG9jYWxseS4KCklmIHRoZSBsaW5lIG51bWJlciBpbiB0aGUgQ0kgc3lz dGVtIGRvZXNuJ3QgbWF0Y2ggd2hhdCB5b3Ugc2VlIGluIHlvdXIKZmlsZSwgdGhlbiBpdCdzIGEg cHJvYmxlbSBlaXRoZXIgb24geW91ciBzaWRlIG9yIG9uIHRoZSBDSSBzaWRlLiBCdXQgSQpkb24n dCB0aGluayB0aGF0J3MgeW91ciBwcm9ibGVtLiBJIHRoaW5rIHlvdXIgcHJvYmxlbSBpcyB0aGF0 IHdlIHByaW50CnR3byBkaWZmZXJlbnQgbGluZSBudW1iZXJzICgxNjA5IGFuZCAxNzcxKSwgYW5k IHlvdSdyZSBsb29raW5nIGF0IHRoZQp3cm9uZyBvbmUuIEkgd291bGQgdG90YWxseSBBQ0sgYSBw YXRjaCByZW1vdmluZyB0aGUgMTYwOSBvbmUuLi4gQnV0IEkKZG9uJ3QgdGhpbmsgdGhhdCB3b3Vs ZCByZXF1aXJlIHBhdGNoaW5nIGttc19mcm9udGJ1ZmZ1ZXJfdHJhY2tpbmcuYy4KCklmIHlvdSBy ZWFsbHkgcmVhbGx5IHdhbnQgdG8gY2hhbmdlIHRoaXMgdG8gYSBmdW5jdGlvbiwgY2FuJ3QgeW91 IHRyeQp0byBmaW5kIGEgd2F5IHRvIHBhc3MgYSBfX0xJTkVfXyBhcmd1bWVudCB0aGF0IGNvcnJl c3BvbmRzIHRvIHRoZSBleGFjdApsaW5lIG9mIHRoZSBkb19hc3NlcnRpb25zKCkgY2FsbCBhbmQg cHJpbnQgaXQgc29tZXdoZXJlPyBNYXliZSBhbm90aGVyCndyYXBwZXIgbWFjcm8gY291bGQgYXV0 by1pbmNsdWRlIF9fTElORV9fPyBCdXQgc2VyaW91c2x5LCBwYXRjaCBJR1QgdG8Kbm90IHByaW50 IHRob3NlIGJvZ3VzIG51bWJlcnMsIHNvIHlvdSB3b24ndCBiZSBjb25mdXNlZCBuZXh0IHRpbWUu Cgo+IAo+IENjOiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KPiBTaWdu ZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KPiAtLS0K PiDCoHRlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jIHwgMTY2ICsrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tCj4gLS0tLS0tLS0tLQo+IMKgMSBmaWxlIGNoYW5nZWQsIDg0IGluc2Vy dGlvbnMoKyksIDgyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfZnJv bnRidWZmZXJfdHJhY2tpbmcuYwo+IGIvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMK PiBpbmRleCBlMDM1MjRmMWM0NWIuLjhkMTFkYzA2NTYyMyAxMDA2NDQKPiAtLS0gYS90ZXN0cy9r bXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+ICsrKyBiL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90 cmFja2luZy5jCj4gQEAgLTE2NzcsODggKzE2NzcsOTAgQEAgc3RhdGljIGludCBhZGp1c3RfYXNz ZXJ0aW9uX2ZsYWdzKGNvbnN0Cj4gc3RydWN0IHRlc3RfbW9kZSAqdCwgaW50IGZsYWdzKQo+IMKg CXJldHVybiBmbGFnczsKPiDCoH0KPiDCoAo+IC0jZGVmaW5lIGRvX2NyY19hc3NlcnRpb25zKGZs YWdzLCBtYW5kYXRvcnlfc2lua19jcmMpIGRvIHsJCQo+IFwKPiAtCWludCBmbGFnc19fID0gKGZs YWdzKTsJCQkJCQo+IAlcCj4gLQlzdHJ1Y3QgYm90aF9jcmNzIGNyY187CQkJCQkKPiAJXAo+IC0J CQkJCQkJCQkKPiBcCj4gLQlpZiAoIW9wdC5jaGVja19jcmMgfHwgKGZsYWdzX18gJiBET05UX0FT U0VSVF9DUkMpKQkJCj4gXAo+IC0JCWJyZWFrOwkJCQkJCQo+IAlcCj4gLQkJCQkJCQkJCQo+IFwK PiAtCWNvbGxlY3RfY3JjcygmY3JjXywgbWFuZGF0b3J5X3NpbmtfY3JjKTsJCQkKPiBcCj4gLQlw cmludF9jcmMoIkNhbGN1bGF0ZWQgQ1JDOiIsICZjcmNfKTsJCQkJCj4gXAo+IC0JCQkJCQkJCQkK PiBcCj4gLQlpZ3RfYXNzZXJ0KHdhbnRlZF9jcmMpOwkJCQkJCj4gCVwKPiAtCWlndF9hc3NlcnRf Y3JjX2VxdWFsKCZjcmNfLnBpcGUsICZ3YW50ZWRfY3JjLT5waXBlKTsJCQo+IFwKPiAtCWlmICht YW5kYXRvcnlfc2lua19jcmMpCQkJCQkKPiAJXAo+IC0JCWFzc2VydF9zaW5rX2NyY19lcXVhbCgm Y3JjXy5zaW5rLCAmd2FudGVkX2NyYy0KPiA+c2luayk7CVwKPiAtCWVsc2UgaWYgKHNpbmtfY3Jj LnJlbGlhYmxlICYmCQkJCQo+IAlcCj4gLQkJwqAhc2lua19jcmNfZXF1YWwoJmNyY18uc2luaywg JndhbnRlZF9jcmMtPnNpbmspKQkKPiBcCj4gLQkJaWd0X2luZm8oIlNpbmsgQ1JDIGRpZmZlciwg YnV0IG5vdCByZXF1aXJlZFxuIik7wqAJCj4gXAo+IC19IHdoaWxlICgwKQo+IC0KPiAtI2RlZmlu ZSBkb19zdGF0dXNfYXNzZXJ0aW9ucyhmbGFnc18pIGRvIHsJCQkJCj4gXAo+IC0JaWYgKCFvcHQu Y2hlY2tfc3RhdHVzKSB7CQkJCQkKPiBcCj4gLQkJLyogTWFrZSBzdXJlIHdlIHNldHRsZSBiZWZv cmUgY29udGludWluZy4gKi8JCQo+IFwKPiAtCQlzbGVlcCgxKTsJCQkJCQkKPiBcCj4gLQkJYnJl YWs7CQkJCQkJCj4gCVwKPiAtCX0JCQkJCQkJCQo+IFwKPiAtCQkJCQkJCQkJCj4gXAo+IC0JaWYg KGZsYWdzXyAmIEFTU0VSVF9GQkNfRU5BQkxFRCkgewkJCQkKPiBcCj4gLQkJaWd0X3JlcXVpcmUo IWZiY19ub3RfZW5vdWdoX3N0b2xlbigpKTsJCQo+IAlcCj4gLQkJaWd0X3JlcXVpcmUoIWZiY19z dHJpZGVfbm90X3N1cHBvcnRlZCgpKTsJCQo+IFwKPiAtCQlpZiAoIWZiY193YWl0X3VudGlsX2Vu YWJsZWQoKSkgewkJCQo+IFwKPiAtCQkJZmJjX3ByaW50X3N0YXR1cygpOwkJCQkKPiBcCj4gLQkJ CWlndF9hc3NlcnRfZihmYWxzZSwgIkZCQyBkaXNhYmxlZFxuIik7CQo+IAlcCj4gLQkJfQkJCQkJ CQkKPiBcCj4gLQkJCQkJCQkJCQo+IFwKPiAtCQlpZiAob3B0LmZiY19jaGVja19jb21wcmVzc2lv bikJCQkKPiAJXAo+IC0JCQlpZ3RfYXNzZXJ0KGZiY193YWl0X2Zvcl9jb21wcmVzc2lvbigpKTsJ Cj4gCVwKPiAtCX0gZWxzZSBpZiAoZmxhZ3NfICYgQVNTRVJUX0ZCQ19ESVNBQkxFRCkgewkJCQo+ IFwKPiAtCQlpZ3RfYXNzZXJ0KCFmYmNfd2FpdF91bnRpbF9lbmFibGVkKCkpOwkJCj4gCVwKPiAt CX0JCQkJCQkJCQo+IFwKPiAtCQkJCQkJCQkJCj4gXAo+IC0JaWYgKGZsYWdzXyAmIEFTU0VSVF9Q U1JfRU5BQkxFRCkgewkJCQkKPiBcCj4gLQkJaWYgKCFwc3Jfd2FpdF91bnRpbF9lbmFibGVkKCkp IHsJCQkKPiBcCj4gLQkJCXBzcl9wcmludF9zdGF0dXMoKTsJCQkJCj4gXAo+IC0JCQlpZ3RfYXNz ZXJ0X2YoZmFsc2UsICJQU1IgZGlzYWJsZWRcbiIpOwkKPiAJXAo+IC0JCX0JCQkJCQkJCj4gXAo+ IC0JfSBlbHNlIGlmIChmbGFnc18gJiBBU1NFUlRfUFNSX0RJU0FCTEVEKSB7CQkJCj4gXAo+IC0J CWlndF9hc3NlcnQoIXBzcl93YWl0X3VudGlsX2VuYWJsZWQoKSk7CQkKPiAJXAo+IC0JfQkJCQkJ CQkJCj4gXAo+IC19IHdoaWxlICgwKQo+IC0KPiAtI2RlZmluZSBkb19hc3NlcnRpb25zKGZsYWdz KSBkbyB7CQkJCQkKPiBcCj4gLQlpbnQgZmxhZ3NfID0gYWRqdXN0X2Fzc2VydGlvbl9mbGFncyh0 LCAoZmxhZ3MpKTsJCQo+IFwKPiAtCWJvb2wgbWFuZGF0b3J5X3NpbmtfY3JjID0gdC0+ZmVhdHVy ZSAmIEZFQVRVUkVfUFNSOwkJCj4gXAo+IC0JCQkJCQkJCQkKPiBcCj4gLQl3YWl0X3VzZXIoMiwg IlBhdXNlZCBiZWZvcmUgYXNzZXJ0aW9ucy4iKTsJCQkKPiBcCj4gLQkJCQkJCQkJCQo+IFwKPiAt CS8qIENoZWNrIHRoZSBDUkMgdG8gbWFrZSBzdXJlIHRoZSBkcmF3aW5nIG9wZXJhdGlvbnMgd29y awkKPiBcCj4gLQnCoCogaW1tZWRpYXRlbHksIGluZGVwZW5kZW50bHkgb2YgdGhlIGZlYXR1cmVz IGJlaW5nIGVuYWJsZWQuCj4gKi8JXAo+IC0JZG9fY3JjX2Fzc2VydGlvbnMoZmxhZ3NfLCBtYW5k YXRvcnlfc2lua19jcmMpOwkJCj4gCVwKPiAtCQkJCQkJCQkJCj4gXAo+IC0JLyogTm93IHdlIGNh biBmbHVzaCB0aGluZ3MgdG8gbWFrZSB0aGUgdGVzdCBmYXN0ZXIuICovCQo+IAlcCj4gLQlkb19m bHVzaCh0KTsJCQkJCQkJCj4gXAo+IC0JCQkJCQkJCQkKPiBcCj4gLQlkb19zdGF0dXNfYXNzZXJ0 aW9ucyhmbGFnc18pOwkJCQkKPiAJXAo+IC0JCQkJCQkJCQkKPiBcCj4gLQkvKiBDaGVjayBDUkMg YWdhaW4gdG8gbWFrZSBzdXJlIHRoZSBjb21wcmVzc2VkIHNjcmVlbiBpcyBvaywKPiAJXAo+IC0J wqAqIGV4Y2VwdCBpZiB3ZSdyZSBub3QgZHJhd2luZyBvbiB0aGUgcHJpbWFyeSBzY3JlZW4uIE9u Cj4gdGhpcwlcCj4gLQnCoCogY2FzZSwgdGhlIGZpcnN0IGNoZWNrIHNob3VsZCBiZSBlbm91Z2gg YW5kIGEgbmV3IENSQwo+IGNoZWNrCVwKPiAtCcKgKiB3b3VsZCBvbmx5IGRlbGF5IHRoZSB0ZXN0 IHN1aXRlIHdoaWxlIGFkZGluZyBubyB2YWx1ZSB0bwo+IHRoZQlcCj4gLQnCoCogdGVzdCBzdWl0 ZS4gKi8JCQkJCQkKPiBcCj4gLQlpZiAodC0+c2NyZWVuID09IFNDUkVFTl9QUklNKQkJCQkKPiAJ XAo+IC0JCWRvX2NyY19hc3NlcnRpb25zKGZsYWdzXywgbWFuZGF0b3J5X3NpbmtfY3JjKTsJCj4g CVwKPiAtCQkJCQkJCQkJCj4gXAo+IC0JaWYgKGZiYy5zdXBwb3J0c19sYXN0X2FjdGlvbiAmJiBv cHQuZmJjX2NoZWNrX2xhc3RfYWN0aW9uKSB7Cj4gCVwKPiAtCQlpZiAoZmxhZ3NfICYgQVNTRVJU X0xBU1RfQUNUSU9OX0NIQU5HRUQpCQkKPiBcCj4gLQkJCWlndF9hc3NlcnQoZmJjX2xhc3RfYWN0 aW9uX2NoYW5nZWQoKSk7CQo+IAlcCj4gLQkJZWxzZSBpZiAoZmxhZ3NfICYgQVNTRVJUX05PX0FD VElPTl9DSEFOR0UpCQkKPiBcCj4gLQkJCWlndF9hc3NlcnQoIWZiY19sYXN0X2FjdGlvbl9jaGFu Z2VkKCkpOwkKPiAJXAo+IC0JfQkJCQkJCQkJCj4gXAo+IC0JCQkJCQkJCQkKPiBcCj4gLQl3YWl0 X3VzZXIoMSwgIlBhdXNlZCBhZnRlciBhc3NlcnRpb25zLiIpOwkJCQo+IFwKPiAtfSB3aGlsZSAo MCkKPiArc3RhdGljIHZvaWQgZG9fY3JjX2Fzc2VydGlvbnMoaW50IGZsYWdzLCBib29sIG1hbmRh dG9yeV9zaW5rX2NyYykKPiArewo+ICsJc3RydWN0IGJvdGhfY3JjcyBjcmM7Cj4gKwo+ICsJaWYg KCFvcHQuY2hlY2tfY3JjIHx8IChmbGFncyAmIERPTlRfQVNTRVJUX0NSQykpCj4gKwkJcmV0dXJu Owo+ICsKPiArCWNvbGxlY3RfY3JjcygmY3JjLCBtYW5kYXRvcnlfc2lua19jcmMpOwo+ICsJcHJp bnRfY3JjKCJDYWxjdWxhdGVkIENSQzoiLCAmY3JjKTsKPiArCj4gKwlpZ3RfYXNzZXJ0KHdhbnRl ZF9jcmMpOwo+ICsJaWd0X2Fzc2VydF9jcmNfZXF1YWwoJmNyYy5waXBlLCAmd2FudGVkX2NyYy0+ cGlwZSk7Cj4gKwlpZiAobWFuZGF0b3J5X3NpbmtfY3JjKQo+ICsJCWFzc2VydF9zaW5rX2NyY19l cXVhbCgmY3JjLnNpbmssICZ3YW50ZWRfY3JjLT5zaW5rKTsKPiArCWVsc2UgaWYgKHNpbmtfY3Jj LnJlbGlhYmxlICYmCj4gKwkJwqAhc2lua19jcmNfZXF1YWwoJmNyYy5zaW5rLCAmd2FudGVkX2Ny Yy0+c2luaykpCj4gKwkJaWd0X2luZm8oIlNpbmsgQ1JDIGRpZmZlciwgYnV0IG5vdCByZXF1aXJl ZFxuIik7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRvX3N0YXR1c19hc3NlcnRpb25zKGludCBm bGFncykKPiArewo+ICsJaWYgKCFvcHQuY2hlY2tfc3RhdHVzKSB7Cj4gKwkJLyogTWFrZSBzdXJl IHdlIHNldHRsZSBiZWZvcmUgY29udGludWluZy4gKi8KPiArCQlzbGVlcCgxKTsKPiArCQlyZXR1 cm47Cj4gKwl9Cj4gKwo+ICsJaWYgKGZsYWdzICYgQVNTRVJUX0ZCQ19FTkFCTEVEKSB7Cj4gKwkJ aWd0X3JlcXVpcmUoIWZiY19ub3RfZW5vdWdoX3N0b2xlbigpKTsKPiArCQlpZ3RfcmVxdWlyZSgh ZmJjX3N0cmlkZV9ub3Rfc3VwcG9ydGVkKCkpOwo+ICsJCWlmICghZmJjX3dhaXRfdW50aWxfZW5h YmxlZCgpKSB7Cj4gKwkJCWZiY19wcmludF9zdGF0dXMoKTsKPiArCQkJaWd0X2Fzc2VydF9mKGZh bHNlLCAiRkJDIGRpc2FibGVkXG4iKTsKPiArCQl9Cj4gKwo+ICsJCWlmIChvcHQuZmJjX2NoZWNr X2NvbXByZXNzaW9uKQo+ICsJCQlpZ3RfYXNzZXJ0KGZiY193YWl0X2Zvcl9jb21wcmVzc2lvbigp KTsKPiArCX0gZWxzZSBpZiAoZmxhZ3MgJiBBU1NFUlRfRkJDX0RJU0FCTEVEKSB7Cj4gKwkJaWd0 X2Fzc2VydCghZmJjX3dhaXRfdW50aWxfZW5hYmxlZCgpKTsKPiArCX0KPiArCj4gKwlpZiAoZmxh Z3MgJiBBU1NFUlRfUFNSX0VOQUJMRUQpIHsKPiArCQlpZiAoIXBzcl93YWl0X3VudGlsX2VuYWJs ZWQoKSkgewo+ICsJCQlwc3JfcHJpbnRfc3RhdHVzKCk7Cj4gKwkJCWlndF9hc3NlcnRfZihmYWxz ZSwgIlBTUiBkaXNhYmxlZFxuIik7Cj4gKwkJfQo+ICsJfSBlbHNlIGlmIChmbGFncyAmIEFTU0VS VF9QU1JfRElTQUJMRUQpIHsKPiArCQlpZ3RfYXNzZXJ0KCFwc3Jfd2FpdF91bnRpbF9lbmFibGVk KCkpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBkb19hc3NlcnRpb25zKGludCBmbGFn cykKPiArewo+ICsJZmxhZ3MgPSBhZGp1c3RfYXNzZXJ0aW9uX2ZsYWdzKHQsIGZsYWdzKTsKPiAr CWJvb2wgbWFuZGF0b3J5X3NpbmtfY3JjID0gdC0+ZmVhdHVyZSAmIEZFQVRVUkVfUFNSOwo+ICsK PiArCXdhaXRfdXNlcigyLCAiUGF1c2VkIGJlZm9yZSBhc3NlcnRpb25zLiIpOwo+ICsKPiArCS8q IENoZWNrIHRoZSBDUkMgdG8gbWFrZSBzdXJlIHRoZSBkcmF3aW5nIG9wZXJhdGlvbnMgd29yawo+ ICsJwqAqIGltbWVkaWF0ZWx5LCBpbmRlcGVuZGVudGx5IG9mIHRoZSBmZWF0dXJlcyBiZWluZyBl bmFibGVkLgo+ICovCj4gKwlkb19jcmNfYXNzZXJ0aW9ucyhmbGFncywgbWFuZGF0b3J5X3Npbmtf Y3JjKTsKPiArCj4gKwkvKiBOb3cgd2UgY2FuIGZsdXNoIHRoaW5ncyB0byBtYWtlIHRoZSB0ZXN0 IGZhc3Rlci4gKi8KPiArCWRvX2ZsdXNoKHQpOwo+ICsKPiArCWRvX3N0YXR1c19hc3NlcnRpb25z KGZsYWdzKTsKPiArCj4gKwkvKiBDaGVjayBDUkMgYWdhaW4gdG8gbWFrZSBzdXJlIHRoZSBjb21w cmVzc2VkIHNjcmVlbiBpcyBvaywKPiArCcKgKiBleGNlcHQgaWYgd2UncmUgbm90IGRyYXdpbmcg b24gdGhlIHByaW1hcnkgc2NyZWVuLiBPbgo+IHRoaXMKPiArCcKgKiBjYXNlLCB0aGUgZmlyc3Qg Y2hlY2sgc2hvdWxkIGJlIGVub3VnaCBhbmQgYSBuZXcgQ1JDCj4gY2hlY2sKPiArCcKgKiB3b3Vs ZCBvbmx5IGRlbGF5IHRoZSB0ZXN0IHN1aXRlIHdoaWxlIGFkZGluZyBubyB2YWx1ZSB0bwo+IHRo ZQo+ICsJwqAqIHRlc3Qgc3VpdGUuICovCj4gKwlpZiAodC0+c2NyZWVuID09IFNDUkVFTl9QUklN KQo+ICsJCWRvX2NyY19hc3NlcnRpb25zKGZsYWdzLCBtYW5kYXRvcnlfc2lua19jcmMpOwo+ICsK PiArCWlmIChmYmMuc3VwcG9ydHNfbGFzdF9hY3Rpb24gJiYgb3B0LmZiY19jaGVja19sYXN0X2Fj dGlvbikgewo+ICsJCWlmIChmbGFncyAmIEFTU0VSVF9MQVNUX0FDVElPTl9DSEFOR0VEKQo+ICsJ CQlpZ3RfYXNzZXJ0KGZiY19sYXN0X2FjdGlvbl9jaGFuZ2VkKCkpOwo+ICsJCWVsc2UgaWYgKGZs YWdzXyAmIEFTU0VSVF9OT19BQ1RJT05fQ0hBTkdFKQo+ICsJCQlpZ3RfYXNzZXJ0KCFmYmNfbGFz dF9hY3Rpb25fY2hhbmdlZCgpKTsKPiArCX0KPiArCj4gKwl3YWl0X3VzZXIoMSwgIlBhdXNlZCBh ZnRlciBhc3NlcnRpb25zLiIpOwo+ICt9Cj4gwqAKPiDCoHN0YXRpYyB2b2lkIGVuYWJsZV9wcmlt X3NjcmVlbl9hbmRfd2FpdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+IMKgewpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK