From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Dr. David Alan Gilbert" Subject: Re: [PATCH v5 2/4] shutdown: Prepare for use of an enum in reset/shutdown_request Date: Fri, 28 Apr 2017 09:08:22 +0100 Message-ID: <20170428080821.GB2085@work-vm> References: <20170428021317.24711-1-eblake@redhat.com> <20170428021317.24711-3-eblake@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d40x6-0007TW-Nu for xen-devel@lists.xenproject.org; Fri, 28 Apr 2017 08:08:32 +0000 Content-Disposition: inline In-Reply-To: <20170428021317.24711-3-eblake@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Eric Blake Cc: Stefano Stabellini , berrange@redhat.com, Eduardo Habkost , "Michael S. Tsirkin" , armbru@redhat.com, Juan Quintela , qemu-devel@nongnu.org, alistair.francis@xilinx.com, zhanghailiang , "open list:X86" , Anthony Perard , Paolo Bonzini , Richard Henderson List-Id: xen-devel@lists.xenproject.org KiBFcmljIEJsYWtlIChlYmxha2VAcmVkaGF0LmNvbSkgd3JvdGU6Cj4gV2Ugd2FudCB0byB0cmFj ayB3aHkgYSBndWVzdCB3YXMgc2h1dGRvd247IGluIHBhcnRpY3VsYXIsIGJlaW5nIGFibGUKPiB0 byB0ZWxsIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYSBndWVzdCByZXF1ZXN0IChzdWNoIGFzIEFD UEkgcmVxdWVzdCkKPiBhbmQgaG9zdCByZXF1ZXN0IChzdWNoIGFzIFNJR0lOVCkgd2lsbCBwcm92 ZSB1c2VmdWwgdG8gbGlidmlydC4KPiBTaW5jZSBhbGwgcmVxdWVzdHMgZXZlbnR1YWxseSBlbmQg dXAgY2hhbmdpbmcgc2h1dGRvd25fcmVxdWVzdGVkIGluCj4gdmwuYywgdGhlIGxvZ2ljYWwgY2hh bmdlIGlzIHRvIG1ha2UgdGhhdCB2YWx1ZSB0cmFjayB0aGUgcmVhc29uLAo+IHJhdGhlciB0aGFu IGl0cyBjdXJyZW50IDAvMSBjb250ZW50cy4KPiAKPiBTaW5jZSBjb21tYW5kLWxpbmUgb3B0aW9u cyBjb250cm9sIHdoZXRoZXIgYSByZXNldCByZXF1ZXN0IGlzIHR1cm5lZAo+IGludG8gYSBzaHV0 ZG93biByZXF1ZXN0IGluc3RlYWQsIHRoZSBzYW1lIHRyZWF0bWVudCBpcyBnaXZlbiB0bwo+IHJl c2V0X3JlcXVlc3RlZC4KPiAKPiBUaGlzIHBhdGNoIGFkZHMgYSBRQVBJIGVudW0gU2h1dGRvd25D YXVzZSB0aGF0IGRlc2NyaWJlcyByZWFzb25zCj4gdGhhdCBhIHNodXRkb3duIGNhbiBiZSByZXF1 ZXN0ZWQsIGFuZCBjaGFuZ2VzIHFlbXVfc3lzdGVtX3Jlc2V0KCkgdG8KPiBwYXNzIHRoZSByZWFz b24gdGhyb3VnaCwgYWx0aG91Z2ggZm9yIG5vdyBpdCBpcyBub3QgcmVwb3J0ZWQuICBUaGUKPiBu ZXh0IHBhdGNoIHdpbGwgYWN0dWFsbHkgd2lyZSB0aGluZ3MgdXAgdG8gbW9kaWZ5IGV2ZW50cyB0 byByZXBvcnQKPiBkYXRhIGJhc2VkIG9uIHRoZSByZWFzb24sIGFuZCB0byBwYXNzIHRoZSBjb3Jy ZWN0IGVudW0gdmFsdWUgaW4gZnJvbQo+IHZhcmlvdXMgY2FsbC1zaXRlcyB0aGF0IGNhbiB0cmln Z2VyIGEgcmVzZXQvc2h1dGRvd24uICBTaW5jZSBRQVBJCj4gZ2VuZXJhdGVzIGVudW1zIHN0YXJ0 aW5nIGF0IDAsIGl0J3MgZWFzaWVyIGlmIHdlIHVzZSBhIGRpZmZlcmVudAo+IG51bWJlciBhcyBv dXIgc2VudGluZWwgdGhhdCBubyByZXF1ZXN0IGhhcyBoYXBwZW5lZCB5ZXQuICBNb3N0IG9mCj4g dGhlIGNoYW5nZXMgYXJlIGluIHZsLmMsIGJ1dCB4ZW4gd2FzIHVzaW5nIHRoaW5ncyBleHRlcm5h bGx5Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEVyaWMgQmxha2UgPGVibGFrZUByZWRoYXQuY29tPgo+ IAo+IC0tLQo+IHY0OiBzL1NodXRkb3duVHlwZS9TaHV0ZG93bkNhdXNlLywgbm8gdGhhbmtzIHRv IG1pbmd3IGhlYWRlciBwb2xsdXRpb24KPiB2MzogbmV3IHBhdGNoCj4gLS0tCj4gIHFhcGktc2No ZW1hLmpzb24gICAgICAgIHwgMjMgKysrKysrKysrKysrKysrKysrKysrKysKPiAgaW5jbHVkZS9z eXNlbXUvc3lzZW11LmggfCAgMiArLQo+ICB2bC5jICAgICAgICAgICAgICAgICAgICB8IDQ0ICsr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCj4gIGh3L2kzODYveGVu L3hlbi1odm0uYyAgIHwgIDkgKysrKysrLS0tCj4gIG1pZ3JhdGlvbi9jb2xvLmMgICAgICAgIHwg IDIgKy0KPiAgbWlncmF0aW9uL3NhdmV2bS5jICAgICAgfCAgMiArLQo+ICA2IGZpbGVzIGNoYW5n ZWQsIDYwIGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9x YXBpLXNjaGVtYS5qc29uIGIvcWFwaS1zY2hlbWEuanNvbgo+IGluZGV4IDAxYjA4N2YuLmE0ZWJk ZDEgMTAwNjQ0Cj4gLS0tIGEvcWFwaS1zY2hlbWEuanNvbgo+ICsrKyBiL3FhcGktc2NoZW1hLmpz b24KPiBAQCAtMjMwNCw2ICsyMzA0LDI5IEBACj4gIHsgJ2NvbW1hbmQnOiAnc3lzdGVtX3Bvd2Vy ZG93bicgfQo+IAo+ICAjIwo+ICsjIEBTaHV0ZG93bkNhdXNlOgo+ICsjCj4gKyMgRW51bWVyYXRp b24gb2YgdmFyaW91cyBjYXVzZXMgZm9yIHNodXRkb3duLgo+ICsjCj4gKyMgQGhvc3QtcW1wOiBS ZWFjdGlvbiB0byBhIFFNUCBjb21tYW5kLCBzdWNoIGFzICdxdWl0Jwo+ICsjIEBob3N0LXNpZ25h bDogUmVhY3Rpb24gdG8gYSBzaWduYWwsIHN1Y2ggYXMgU0lHSU5UCj4gKyMgQGhvc3QtdWk6IFJl YWN0aW9uIHRvIGEgVUkgZXZlbnQsIHN1Y2ggYXMgY2xvc2luZyB0aGUgd2luZG93Cj4gKyMgQGhv c3QtcmVwbGF5OiBUaGUgaG9zdCBpcyByZXBsYXlpbmcgYW4gZWFybGllciBzaHV0ZG93biBldmVu dAo+ICsjIEBob3N0LWVycm9yOiBRZW11IGVuY291bnRlcmVkIGFuIGVycm9yIHRoYXQgcHJldmVu dHMgZnVydGhlciB1c2Ugb2YgdGhlIGd1ZXN0Cj4gKyMgQGd1ZXN0LXNodXRkb3duOiBUaGUgZ3Vl c3QgcmVxdWVzdGVkIGEgc2h1dGRvd24sIHN1Y2ggYXMgdmlhIEFDUEkgb3IKPiArIyAgICAgICAg ICAgICAgICAgIG90aGVyIGhhcmR3YXJlLXNwZWNpZmljIGFjdGlvbgo+ICsjIEBndWVzdC1yZXNl dDogVGhlIGd1ZXN0IHJlcXVlc3RlZCBhIHJlc2V0LCBhbmQgdGhlIGNvbW1hbmQgbGluZQo+ICsj ICAgICAgICAgICAgICAgcmVzcG9uc2UgdG8gYSByZXNldCBpcyB0byBpbnN0ZWFkIHRyaWdnZXIg YSBzaHV0ZG93bgo+ICsjIEBndWVzdC1wYW5pYzogVGhlIGd1ZXN0IHBhbmlja2VkLCBhbmQgdGhl IGNvbW1hbmQgbGluZSByZXNwb25zZSB0bwo+ICsjICAgICAgICAgICAgICAgYSBwYW5pYyBpcyB0 byB0cmlnZ2VyIGEgc2h1dGRvd24KCkl0J3MgYSBsaXR0bGUgY29hcnNlIGdyYWluZWQ7ICBpcyB0 aGVyZSBhbnl3YXkgdG8gcGFzcyBwbGF0Zm9ybSBzcGVjaWZpYyBpbmZvcm1hdGlvbgpmb3IgZGVi dWc/ICBJIGFzayBiZWNhdXNlIEkgc3BlbnQgYSB3aGlsZSBkZWJ1Z2dpbmcgYSBmZXcgYnVncyB3 aXRoIHVuZXhwZWN0ZWQKcmVzZXRzIGFuZCBoYWQgdG8gZmlndXJlIG91dCB3aGljaCBvZiB4ODYn cyBtYW55IHJlc2V0IGNhdXNlcyB0cmlnZ2VyZWQgaXQuCgpEYXZlCgo+ICsjIFNpbmNlOiAyLjEw Cj4gKyMjCj4gK3sgJ2VudW0nOiAnU2h1dGRvd25DYXVzZScsCj4gKyAgJ2RhdGEnOiBbICdob3N0 LXFtcCcsICdob3N0LXNpZ25hbCcsICdob3N0LXVpJywgJ2hvc3QtcmVwbGF5JywgJ2hvc3QtZXJy b3InLAo+ICsgICAgICAgICAgICAnZ3Vlc3Qtc2h1dGRvd24nLCAnZ3Vlc3QtcmVzZXQnLCAnZ3Vl c3QtcGFuaWMnIF0gfQo+ICsKPiArIyMKPiAgIyBAY3B1Ogo+ICAjCj4gICMgVGhpcyBjb21tYW5k IGlzIGEgbm9wIHRoYXQgaXMgb25seSBwcm92aWRlZCBmb3IgdGhlIHB1cnBvc2VzIG9mIGNvbXBh dGliaWxpdHkuCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvc3lzZW11L3N5c2VtdS5oIGIvaW5jbHVk ZS9zeXNlbXUvc3lzZW11LmgKPiBpbmRleCAxNjE3NWY3Li4wMGE5MDdmIDEwMDY0NAo+IC0tLSBh L2luY2x1ZGUvc3lzZW11L3N5c2VtdS5oCj4gKysrIGIvaW5jbHVkZS9zeXNlbXUvc3lzZW11LmgK PiBAQCAtNjUsNyArNjUsNyBAQCBib29sIHFlbXVfdm1zdG9wX3JlcXVlc3RlZChSdW5TdGF0ZSAq cik7Cj4gIGludCBxZW11X3NodXRkb3duX3JlcXVlc3RlZF9nZXQodm9pZCk7Cj4gIGludCBxZW11 X3Jlc2V0X3JlcXVlc3RlZF9nZXQodm9pZCk7Cj4gIHZvaWQgcWVtdV9zeXN0ZW1fa2lsbGVkKGlu dCBzaWduYWwsIHBpZF90IHBpZCk7Cj4gLXZvaWQgcWVtdV9zeXN0ZW1fcmVzZXQoYm9vbCByZXBv cnQpOwo+ICt2b2lkIHFlbXVfc3lzdGVtX3Jlc2V0KGJvb2wgcmVwb3J0LCBpbnQgcmVhc29uKTsK PiAgdm9pZCBxZW11X3N5c3RlbV9ndWVzdF9wYW5pY2tlZChHdWVzdFBhbmljSW5mb3JtYXRpb24g KmluZm8pOwo+ICBzaXplX3QgcWVtdV90YXJnZXRfcGFnZV9zaXplKHZvaWQpOwo+IAo+IGRpZmYg LS1naXQgYS92bC5jIGIvdmwuYwo+IGluZGV4IDg3OTc4NmEuLjJiOTViN2YgMTAwNjQ0Cj4gLS0t IGEvdmwuYwo+ICsrKyBiL3ZsLmMKPiBAQCAtMTU5Nyw4ICsxNTk3LDggQEAgdm9pZCB2bV9zdGF0 ZV9ub3RpZnkoaW50IHJ1bm5pbmcsIFJ1blN0YXRlIHN0YXRlKQo+ICAgICAgfQo+ICB9Cj4gCj4g LXN0YXRpYyBpbnQgcmVzZXRfcmVxdWVzdGVkOwo+IC1zdGF0aWMgaW50IHNodXRkb3duX3JlcXVl c3RlZCwgc2h1dGRvd25fc2lnbmFsOwo+ICtzdGF0aWMgaW50IHJlc2V0X3JlcXVlc3RlZCA9IC0x Owo+ICtzdGF0aWMgaW50IHNodXRkb3duX3JlcXVlc3RlZCA9IC0xLCBzaHV0ZG93bl9zaWduYWw7 Cj4gIHN0YXRpYyBwaWRfdCBzaHV0ZG93bl9waWQ7Cj4gIHN0YXRpYyBpbnQgcG93ZXJkb3duX3Jl cXVlc3RlZDsKPiAgc3RhdGljIGludCBkZWJ1Z19yZXF1ZXN0ZWQ7Cj4gQEAgLTE2MjQsNyArMTYy NCw3IEBAIGludCBxZW11X3Jlc2V0X3JlcXVlc3RlZF9nZXQodm9pZCkKPiAKPiAgc3RhdGljIGlu dCBxZW11X3NodXRkb3duX3JlcXVlc3RlZCh2b2lkKQo+ICB7Cj4gLSAgICByZXR1cm4gYXRvbWlj X3hjaGcoJnNodXRkb3duX3JlcXVlc3RlZCwgMCk7Cj4gKyAgICByZXR1cm4gYXRvbWljX3hjaGco JnNodXRkb3duX3JlcXVlc3RlZCwgLTEpOwo+ICB9Cj4gCj4gIHN0YXRpYyB2b2lkIHFlbXVfa2ls bF9yZXBvcnQodm9pZCkKPiBAQCAtMTY1MCwxMSArMTY1MCwxMSBAQCBzdGF0aWMgdm9pZCBxZW11 X2tpbGxfcmVwb3J0KHZvaWQpCj4gIHN0YXRpYyBpbnQgcWVtdV9yZXNldF9yZXF1ZXN0ZWQodm9p ZCkKPiAgewo+ICAgICAgaW50IHIgPSByZXNldF9yZXF1ZXN0ZWQ7Cj4gLSAgICBpZiAociAmJiBy ZXBsYXlfY2hlY2twb2ludChDSEVDS1BPSU5UX1JFU0VUX1JFUVVFU1RFRCkpIHsKPiAtICAgICAg ICByZXNldF9yZXF1ZXN0ZWQgPSAwOwo+ICsgICAgaWYgKHIgPj0gMCAmJiByZXBsYXlfY2hlY2tw b2ludChDSEVDS1BPSU5UX1JFU0VUX1JFUVVFU1RFRCkpIHsKPiArICAgICAgICByZXNldF9yZXF1 ZXN0ZWQgPSAtMTsKPiAgICAgICAgICByZXR1cm4gcjsKPiAgICAgIH0KPiAtICAgIHJldHVybiBm YWxzZTsKPiArICAgIHJldHVybiAtMTsKPiAgfQo+IAo+ICBzdGF0aWMgaW50IHFlbXVfc3VzcGVu ZF9yZXF1ZXN0ZWQodm9pZCkKPiBAQCAtMTY4Niw3ICsxNjg2LDEyIEBAIHN0YXRpYyBpbnQgcWVt dV9kZWJ1Z19yZXF1ZXN0ZWQodm9pZCkKPiAgICAgIHJldHVybiByOwo+ICB9Cj4gCj4gLXZvaWQg cWVtdV9zeXN0ZW1fcmVzZXQoYm9vbCByZXBvcnQpCj4gKy8qCj4gKyAqIFJlc2V0IHRoZSBWTS4g SWYgQHJlcG9ydCBpcyBWTVJFU0VUX1JFUE9SVCwgaXNzdWUgYW4gZXZlbnQsIHVzaW5nCj4gKyAq IHRoZSBAcmVhc29uIGludGVycHJldGVkIGFzIFNodXRkb3duVHlwZSBmb3IgZGV0YWlscy4gIE90 aGVyd2lzZSwKPiArICogQHJlcG9ydCBpcyBWTVJFU0VUX1NJTEVOVCBhbmQgQHJlYXNvbiBpcyBp Z25vcmVkLgo+ICsgKi8KPiArdm9pZCBxZW11X3N5c3RlbV9yZXNldChib29sIHJlcG9ydCwgaW50 IHJlYXNvbikKPiAgewo+ICAgICAgTWFjaGluZUNsYXNzICptYzsKPiAKPiBAQCAtMTcwMCw2ICsx NzA1LDcgQEAgdm9pZCBxZW11X3N5c3RlbV9yZXNldChib29sIHJlcG9ydCkKPiAgICAgICAgICBx ZW11X2RldmljZXNfcmVzZXQoKTsKPiAgICAgIH0KPiAgICAgIGlmIChyZXBvcnQpIHsKPiArICAg ICAgICBhc3NlcnQocmVhc29uID49IDApOwo+ICAgICAgICAgIHFhcGlfZXZlbnRfc2VuZF9yZXNl dCgmZXJyb3JfYWJvcnQpOwo+ICAgICAgfQo+ICAgICAgY3B1X3N5bmNocm9uaXplX2FsbF9wb3N0 X3Jlc2V0KCk7Cj4gQEAgLTE3MzgsOSArMTc0NCwxMCBAQCB2b2lkIHFlbXVfc3lzdGVtX2d1ZXN0 X3Bhbmlja2VkKEd1ZXN0UGFuaWNJbmZvcm1hdGlvbiAqaW5mbykKPiAgdm9pZCBxZW11X3N5c3Rl bV9yZXNldF9yZXF1ZXN0KHZvaWQpCj4gIHsKPiAgICAgIGlmIChub19yZWJvb3QpIHsKPiAtICAg ICAgICBzaHV0ZG93bl9yZXF1ZXN0ZWQgPSAxOwo+ICsgICAgICAgIC8qIEZJWE1FIC0gYWRkIGEg cGFyYW1ldGVyIHRvIGFsbG93IGNhbGxlcnMgdG8gc3BlY2lmeSByZWFzb24gKi8KPiArICAgICAg ICBzaHV0ZG93bl9yZXF1ZXN0ZWQgPSBTSFVURE9XTl9DQVVTRV9HVUVTVF9SRVNFVDsKPiAgICAg IH0gZWxzZSB7Cj4gLSAgICAgICAgcmVzZXRfcmVxdWVzdGVkID0gMTsKPiArICAgICAgICByZXNl dF9yZXF1ZXN0ZWQgPSBTSFVURE9XTl9DQVVTRV9HVUVTVF9SRVNFVDsKPiAgICAgIH0KPiAgICAg IGNwdV9zdG9wX2N1cnJlbnQoKTsKPiAgICAgIHFlbXVfbm90aWZ5X2V2ZW50KCk7Cj4gQEAgLTE4 MDcsNyArMTgxNCw3IEBAIHZvaWQgcWVtdV9zeXN0ZW1fa2lsbGVkKGludCBzaWduYWwsIHBpZF90 IHBpZCkKPiAgICAgIC8qIENhbm5vdCBjYWxsIHFlbXVfc3lzdGVtX3NodXRkb3duX3JlcXVlc3Qg ZGlyZWN0bHkgYmVjYXVzZQo+ICAgICAgICogd2UgYXJlIGluIGEgc2lnbmFsIGhhbmRsZXIuCj4g ICAgICAgKi8KPiAtICAgIHNodXRkb3duX3JlcXVlc3RlZCA9IDE7Cj4gKyAgICBzaHV0ZG93bl9y ZXF1ZXN0ZWQgPSBTSFVURE9XTl9DQVVTRV9IT1NUX1NJR05BTDsKPiAgICAgIHFlbXVfbm90aWZ5 X2V2ZW50KCk7Cj4gIH0KPiAKPiBAQCAtMTgxNSw3ICsxODIyLDggQEAgdm9pZCBxZW11X3N5c3Rl bV9zaHV0ZG93bl9yZXF1ZXN0KHZvaWQpCj4gIHsKPiAgICAgIHRyYWNlX3FlbXVfc3lzdGVtX3No dXRkb3duX3JlcXVlc3QoKTsKPiAgICAgIHJlcGxheV9zaHV0ZG93bl9yZXF1ZXN0KCk7Cj4gLSAg ICBzaHV0ZG93bl9yZXF1ZXN0ZWQgPSAxOwo+ICsgICAgLyogRklYTUUgLSBhZGQgYSBwYXJhbWV0 ZXIgdG8gYWxsb3cgY2FsbGVycyB0byBzcGVjaWZ5IHJlYXNvbiAqLwo+ICsgICAgc2h1dGRvd25f cmVxdWVzdGVkID0gU0hVVERPV05fQ0FVU0VfR1VFU1RfU0hVVERPV047Cj4gICAgICBxZW11X25v dGlmeV9ldmVudCgpOwo+ICB9Cj4gCj4gQEAgLTE4NDYsMTMgKzE4NTQsMTYgQEAgdm9pZCBxZW11 X3N5c3RlbV9kZWJ1Z19yZXF1ZXN0KHZvaWQpCj4gIHN0YXRpYyBib29sIG1haW5fbG9vcF9zaG91 bGRfZXhpdCh2b2lkKQo+ICB7Cj4gICAgICBSdW5TdGF0ZSByOwo+ICsgICAgaW50IHJlcXVlc3Q7 Cj4gKwo+ICAgICAgaWYgKHFlbXVfZGVidWdfcmVxdWVzdGVkKCkpIHsKPiAgICAgICAgICB2bV9z dG9wKFJVTl9TVEFURV9ERUJVRyk7Cj4gICAgICB9Cj4gICAgICBpZiAocWVtdV9zdXNwZW5kX3Jl cXVlc3RlZCgpKSB7Cj4gICAgICAgICAgcWVtdV9zeXN0ZW1fc3VzcGVuZCgpOwo+ICAgICAgfQo+ IC0gICAgaWYgKHFlbXVfc2h1dGRvd25fcmVxdWVzdGVkKCkpIHsKPiArICAgIHJlcXVlc3QgPSBx ZW11X3NodXRkb3duX3JlcXVlc3RlZCgpOwo+ICsgICAgaWYgKHJlcXVlc3QgPj0gMCkgewo+ICAg ICAgICAgIHFlbXVfa2lsbF9yZXBvcnQoKTsKPiAgICAgICAgICBxYXBpX2V2ZW50X3NlbmRfc2h1 dGRvd24oJmVycm9yX2Fib3J0KTsKPiAgICAgICAgICBpZiAobm9fc2h1dGRvd24pIHsKPiBAQCAt MTg2MSw5ICsxODcyLDEwIEBAIHN0YXRpYyBib29sIG1haW5fbG9vcF9zaG91bGRfZXhpdCh2b2lk KQo+ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKPiAgICAgICAgICB9Cj4gICAgICB9Cj4gLSAg ICBpZiAocWVtdV9yZXNldF9yZXF1ZXN0ZWQoKSkgewo+ICsgICAgcmVxdWVzdCA9IHFlbXVfcmVz ZXRfcmVxdWVzdGVkKCk7Cj4gKyAgICBpZiAocmVxdWVzdCA+PSAwKSB7Cj4gICAgICAgICAgcGF1 c2VfYWxsX3ZjcHVzKCk7Cj4gLSAgICAgICAgcWVtdV9zeXN0ZW1fcmVzZXQoVk1SRVNFVF9SRVBP UlQpOwo+ICsgICAgICAgIHFlbXVfc3lzdGVtX3Jlc2V0KFZNUkVTRVRfUkVQT1JULCByZXF1ZXN0 KTsKPiAgICAgICAgICByZXN1bWVfYWxsX3ZjcHVzKCk7Cj4gICAgICAgICAgaWYgKCFydW5zdGF0 ZV9jaGVjayhSVU5fU1RBVEVfUlVOTklORykgJiYKPiAgICAgICAgICAgICAgICAgICFydW5zdGF0 ZV9jaGVjayhSVU5fU1RBVEVfSU5NSUdSQVRFKSkgewo+IEBAIC0xODcyLDcgKzE4ODQsNyBAQCBz dGF0aWMgYm9vbCBtYWluX2xvb3Bfc2hvdWxkX2V4aXQodm9pZCkKPiAgICAgIH0KPiAgICAgIGlm IChxZW11X3dha2V1cF9yZXF1ZXN0ZWQoKSkgewo+ICAgICAgICAgIHBhdXNlX2FsbF92Y3B1cygp Owo+IC0gICAgICAgIHFlbXVfc3lzdGVtX3Jlc2V0KFZNUkVTRVRfU0lMRU5UKTsKPiArICAgICAg ICBxZW11X3N5c3RlbV9yZXNldChWTVJFU0VUX1NJTEVOVCwgLTEpOwo+ICAgICAgICAgIG5vdGlm aWVyX2xpc3Rfbm90aWZ5KCZ3YWtldXBfbm90aWZpZXJzLCAmd2FrZXVwX3JlYXNvbik7Cj4gICAg ICAgICAgd2FrZXVwX3JlYXNvbiA9IFFFTVVfV0FLRVVQX1JFQVNPTl9OT05FOwo+ICAgICAgICAg IHJlc3VtZV9hbGxfdmNwdXMoKTsKPiBAQCAtNDY4NCw3ICs0Njk2LDcgQEAgaW50IG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2LCBjaGFyICoqZW52cCkKPiAgICAgICAgIHJlYWRpbmcgZnJvbSB0 aGUgb3RoZXIgcmVhZHMsIGJlY2F1c2UgdGltZXIgcG9sbGluZyBmdW5jdGlvbnMgcXVlcnkKPiAg ICAgICAgIGNsb2NrIHZhbHVlcyBmcm9tIHRoZSBsb2cuICovCj4gICAgICByZXBsYXlfY2hlY2tw b2ludChDSEVDS1BPSU5UX1JFU0VUKTsKPiAtICAgIHFlbXVfc3lzdGVtX3Jlc2V0KFZNUkVTRVRf U0lMRU5UKTsKPiArICAgIHFlbXVfc3lzdGVtX3Jlc2V0KFZNUkVTRVRfU0lMRU5ULCAtMSk7Cj4g ICAgICByZWdpc3Rlcl9nbG9iYWxfc3RhdGUoKTsKPiAgICAgIGlmIChyZXBsYXlfbW9kZSAhPSBS RVBMQVlfTU9ERV9OT05FKSB7Cj4gICAgICAgICAgcmVwbGF5X3Ztc3RhdGVfaW5pdCgpOwo+IGRp ZmYgLS1naXQgYS9ody9pMzg2L3hlbi94ZW4taHZtLmMgYi9ody9pMzg2L3hlbi94ZW4taHZtLmMK PiBpbmRleCBiMWMwNWZmLi4zYTY0ODRjIDEwMDY0NAo+IC0tLSBhL2h3L2kzODYveGVuL3hlbi1o dm0uYwo+ICsrKyBiL2h3L2kzODYveGVuL3hlbi1odm0uYwo+IEBAIC0xMDg5LDExICsxMDg5LDE0 IEBAIHN0YXRpYyB2b2lkIGNwdV9oYW5kbGVfaW9yZXEodm9pZCAqb3BhcXVlKQo+ICAgICAgICAg ICAqIGNhdXNlcyBYZW4gdG8gcG93ZXJkb3duIHRoZSBkb21haW4uCj4gICAgICAgICAgICovCj4g ICAgICAgICAgaWYgKHJ1bnN0YXRlX2lzX3J1bm5pbmcoKSkgewo+IC0gICAgICAgICAgICBpZiAo cWVtdV9zaHV0ZG93bl9yZXF1ZXN0ZWRfZ2V0KCkpIHsKPiArICAgICAgICAgICAgaW50IHJlcXVl c3Q7Cj4gKwo+ICsgICAgICAgICAgICBpZiAocWVtdV9zaHV0ZG93bl9yZXF1ZXN0ZWRfZ2V0KCkg Pj0gMCkgewo+ICAgICAgICAgICAgICAgICAgZGVzdHJveV9odm1fZG9tYWluKGZhbHNlKTsKPiAg ICAgICAgICAgICAgfQo+IC0gICAgICAgICAgICBpZiAocWVtdV9yZXNldF9yZXF1ZXN0ZWRfZ2V0 KCkpIHsKPiAtICAgICAgICAgICAgICAgIHFlbXVfc3lzdGVtX3Jlc2V0KFZNUkVTRVRfUkVQT1JU KTsKPiArICAgICAgICAgICAgcmVxdWVzdCA9IHFlbXVfcmVzZXRfcmVxdWVzdGVkX2dldCgpOwo+ ICsgICAgICAgICAgICBpZiAocmVxdWVzdCA+PSAwKSB7Cj4gKyAgICAgICAgICAgICAgICBxZW11 X3N5c3RlbV9yZXNldChWTVJFU0VUX1JFUE9SVCwgcmVxdWVzdCk7Cj4gICAgICAgICAgICAgICAg ICBkZXN0cm95X2h2bV9kb21haW4odHJ1ZSk7Cj4gICAgICAgICAgICAgIH0KPiAgICAgICAgICB9 Cj4gZGlmZiAtLWdpdCBhL21pZ3JhdGlvbi9jb2xvLmMgYi9taWdyYXRpb24vY29sby5jCj4gaW5k ZXggYzE5ZWIzZi4uMTdhNTQ4MiAxMDA2NDQKPiAtLS0gYS9taWdyYXRpb24vY29sby5jCj4gKysr IGIvbWlncmF0aW9uL2NvbG8uYwo+IEBAIC02MTEsNyArNjExLDcgQEAgdm9pZCAqY29sb19wcm9j ZXNzX2luY29taW5nX3RocmVhZCh2b2lkICpvcGFxdWUpCj4gICAgICAgICAgfQo+IAo+ICAgICAg ICAgIHFlbXVfbXV0ZXhfbG9ja19pb3RocmVhZCgpOwo+IC0gICAgICAgIHFlbXVfc3lzdGVtX3Jl c2V0KFZNUkVTRVRfU0lMRU5UKTsKPiArICAgICAgICBxZW11X3N5c3RlbV9yZXNldChWTVJFU0VU X1NJTEVOVCwgLTEpOwo+ICAgICAgICAgIHZtc3RhdGVfbG9hZGluZyA9IHRydWU7Cj4gICAgICAg ICAgaWYgKHFlbXVfbG9hZHZtX3N0YXRlKGZiKSA8IDApIHsKPiAgICAgICAgICAgICAgZXJyb3Jf cmVwb3J0KCJDT0xPOiBsb2Fkdm0gZmFpbGVkIik7Cj4gZGlmZiAtLWdpdCBhL21pZ3JhdGlvbi9z YXZldm0uYyBiL21pZ3JhdGlvbi9zYXZldm0uYwo+IGluZGV4IDAzYWUxYmQuLmRjYmFmMDAgMTAw NjQ0Cj4gLS0tIGEvbWlncmF0aW9uL3NhdmV2bS5jCj4gKysrIGIvbWlncmF0aW9uL3NhdmV2bS5j Cj4gQEAgLTIyOTIsNyArMjI5Miw3IEBAIGludCBsb2FkX3Ztc3RhdGUoY29uc3QgY2hhciAqbmFt ZSkKPiAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiAgICAgIH0KPiAKPiAtICAgIHFlbXVfc3lz dGVtX3Jlc2V0KFZNUkVTRVRfU0lMRU5UKTsKPiArICAgIHFlbXVfc3lzdGVtX3Jlc2V0KFZNUkVT RVRfU0lMRU5ULCAtMSk7Cj4gICAgICBtaXMtPmZyb21fc3JjX2ZpbGUgPSBmOwo+IAo+ICAgICAg YWlvX2NvbnRleHRfYWNxdWlyZShhaW9fY29udGV4dCk7Cj4gLS0gCj4gMi45LjMKPiAKLS0KRHIu IERhdmlkIEFsYW4gR2lsYmVydCAvIGRnaWxiZXJ0QHJlZGhhdC5jb20gLyBNYW5jaGVzdGVyLCBV SwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==