From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex =?utf-8?Q?Benn=C3=A9e?= Subject: Re: [PATCH v11 3/4] hw/arm/virt: add dynamic sysbus device support Date: Thu, 26 Mar 2015 11:27:55 +0000 Message-ID: <87384sc81w.fsf@linaro.org> References: <1425485909-5091-1-git-send-email-eric.auger@linaro.org> <1425485909-5091-4-git-send-email-eric.auger@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from localhost (localhost [127.0.0.1]) by mm01.cs.columbia.edu (Postfix) with ESMTP id C362E49BBB for ; Thu, 26 Mar 2015 07:20:27 -0400 (EDT) Received: from mm01.cs.columbia.edu ([127.0.0.1]) by localhost (mm01.cs.columbia.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SYdB1gz0y-BU for ; Thu, 26 Mar 2015 07:20:25 -0400 (EDT) Received: from socrates.bennee.com (static.88-198-71-155.clients.your-server.de [88.198.71.155]) by mm01.cs.columbia.edu (Postfix) with ESMTPS id A9F2D49BB8 for ; Thu, 26 Mar 2015 07:20:25 -0400 (EDT) In-reply-to: <1425485909-5091-4-git-send-email-eric.auger@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu To: Eric Auger Cc: eric.auger@st.com, patches@linaro.org, qemu-devel@nongnu.org, pbonzini@redhat.com, kvmarm@lists.cs.columbia.edu List-Id: kvmarm@lists.cs.columbia.edu CkVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAbGluYXJvLm9yZz4gd3JpdGVzOgoKPiBBbGxvd3Mgc3lz YnVzIGRldmljZXMgdG8gYmUgaW5zdGFudGlhdGVkIGZyb20gY29tbWFuZCBsaW5lIGJ5Cj4gdXNp bmcgLWRldmljZSBvcHRpb24uIE1hY2h2aXJ0IGNyZWF0ZXMgYSBwbGF0Zm9ybSBidXMgYXQgaW5p dC4KPiBUaGUgZHluYW1pYyBzeXNidXMgZGV2aWNlcyBhcmUgYXR0YWNoZWQgdG8gdGhpcyBwbGF0 Zm9ybSBidXMgZGV2aWNlLgo+Cj4gVGhlIHBsYXRmb3JtIGJ1cyBkZXZpY2UgcmVnaXN0ZXJzIGEg bWFjaGluZSBpbml0IGRvbmUgbm90aWZpZXIKPiB3aG9zZSByb2xlIHdpbGwgYmUgdG8gYmluZCB0 aGUgZHluYW1pYyBzeXNidXMgZGV2aWNlcy4gSW5kZWVkCj4gZHluYW1pYyBzeXNidXMgZGV2aWNl cyBhcmUgY3JlYXRlZCBhZnRlciBtYWNoaW5lIGluaXQuCj4KPiBtYWNodmlydCBhbHNvIHJlZ2lz dGVycyBhIG5vdGlmaWVyIHRoYXQgd2lsbCBidWlsZCB0aGUgZGV2aWNlCj4gdHJlZSBub2RlcyBm b3IgdGhlIHBsYXRmb3JtIGJ1cyBhbmQgaXRzIGNoaWxkcmVuIGR5bmFtaWMgc3lzYnVzCj4gZGV2 aWNlcy4KPgo+IFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBHcmFmIDxhZ3JhZkBzdXNlLmRlPgo+ IFNpZ25lZC1vZmYtYnk6IEVyaWMgQXVnZXIgPGVyaWMuYXVnZXJAbGluYXJvLm9yZz4KClJldmll d2VkLWJ5OiBBbGV4IEJlbm7DqWUgPGFsZXguYmVubmVlQGxpbmFyby5vcmc+Cgo+Cj4gLS0tCj4g djggLT4gdjk6Cj4gLSBQTEFURk9STV9CVVNfTlVNX0lSUVMgc2V0IHRvIDMyIGluc3RlYWQgb2Yg MjAKPiAtIHBsYXRmb3JtIGJ1cyBpcnEgbm93IHN0YXJ0IGF0IDY0IGluc3RlYWQgb2YgNDgKPiAt IHJlbW92ZSBjaGFuZ2Ugb2YgaW5kZW50YXRpb24gaW4gYTE1bWVtbWFwCj4gLSBjb3JyZWN0IG1p c2Mgc3R5bGUgaXNzdWVzCj4KPiB2NyAtPiB2ODoKPiAtIHJlYmFzZSBvbiAyLjIuMAo+IC0gaW4g bWFjaHZpcnRfaW5pdCwgY3JlYXRlX3BsYXRmb3JtX2J1cyBzaW1wbHkgaXMgYWRkZWQKPiAgIGFm dGVyIHRoZSBhcm1fbG9hZF9rZXJuZWwgY2FsbCBpbnN0ZWFkIG9mIG1vdmluZyB0aGlzIGxhdHRl ci4KPiAgIFJlbGF0ZWQgY29tbWVudCBzbGlnaGx5IHJld29yZGVkLgo+IC0gRHVlIHRvIHRob3Nl IGNoYW5nZXMgSSBkcm9wcGVkIEFsZXggYW5kIFNoYW5ub24ncyBSZXZpZXdlZC1ieQo+Cj4gdjYg LT4gdjc6Cj4gVGFrZSBpbnRvIGFjY291bnQgU2hhbm5vbiBjb21tZW50czoKPiAtIHJlbW92ZSBQ TEFURk9STV9CVVNfRklSU1RfSVJRIG1hY3JvCj4gLSBjb3JyZWN0IHBsYXRmb3JtIGJ1cyBzaXpl IHRvIDB4NDAwMDAwCj4gLSBhZGQgYW4gYWRkaXRpb25hbCBjb21tZW50IGluIGExNWlycW1hcCBy ZWxhdGVkIHRvCj4gICBQTEFURk9STV9CVVNfTlVNX0lSUVMKPgo+IHY1IC0+IHY2Ogo+IC0gVGFr ZSBpbnRvIGFjY291bnQgUGV0ZXIncyBjb21tZW50czoKPiAgIC0gcGxhdGZvcm1fYnVzX3BhcmFt cyBpbml0aWFsaXplZCBmcm9tIHZiaS0+bWVtbWFwIGFuZCB2YmktPmlycW1hcC4KPiAgICAgQXMg YSBjb25zZXF1ZW5jZSwgY29uc3QgaXMgcmVtb3ZlZC4gQWxzbyBhbGlnbm1lbnQgaW4gYTE1bWVt bWFwCj4gICAgIGlzIHNsaWdodGx5IGNoYW5nZWQuCj4gICAtIEFSTVBsYXRmb3JtQnVzU3lzdGVt UGFyYW1zIGhhbmRsZSByZW1vdmVkIGZyb20gY3JlYXRlX3BsYXRmb3JtX2J1cwo+ICAgICBwcm90 b3R5cGUKPiAtIGFybV9sb2FkX2tlcm5lbCBoYXMgYmVjb21lIGEgbWFjaGluZSBpbml0IGRvbmUg bm90aWZpZXIgcmVnaXN0cmF0aW9uLgo+ICAgSXQgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIHBsYXRm b3JtX2J1c19jcmVhdGUgdG8gZ3VhcmFudGVlIHRoZSBjb3JyZWN0Cj4gICBub3RpZmllciBleGVj dXRpb24gc2VxdWVuY2UKPgo+IHY0IC0+IHY1Ogo+IC0gcGxhdGZvcm1fYnVzX3BhcmFtcyBiZWNv bWVzIHN0YXRpYyBjb25zdAo+IC0gcmV3b3JkIGNvbW1lbnQgaW4gY3JlYXRlX3BsYXRmb3JtX2J1 cwo+IC0gcmV3b3JkIHRoZSBjb21taXQgbWVzc2FnZQo+Cj4gdjMgLT4gdjQ6Cj4gLSB1c2UgcGxh dGZvcm0gYnVzIG9iamVjdCwgaW5zdGFudGlhdGVkIGluIGNyZWF0ZV9wbGF0Zm9ybV9idXMKPiAt IGRldmljZSB0cmVlIGdlbmVyYXRpb24gZm9yIHBsYXRmb3JtIGJ1cyBhbmQgY2hpbGRyZW4gZHlu YW1pYwo+ICAgc3lzYnVzIGRldmljZXMgaXMgbm8gbW9yZSBoYW5kbGVkIGF0IHJlc2V0IGJ1dCBp biBhCj4gICBtYWNoaW5lX2luaXRfZG9uZV9ub3RpZmllciAoZHVlIHRvIHRoZSBjaGFuZ2UgaW4g aW1wbGVtZW50YWlvbgo+ICAgb2YgQVJNIGxvYWQgZHRiIHVzaW5nIHJvbV9hZGRfYmxvYl9maXhl ZCkuCj4gLSBkZXZpY2UgdHJlZSBlbmhhbmNlbWVudCBub3cgdGFrZXMgaW50byBhY2NvdW50IHRo ZSBjYXNlIG9mCj4gICB1c2VyIHByb3ZpZGVkIGR0Yi4gQmVmb3JlIHRoZSB1c2VyIGR0YiB3YXMg b3ZlcndyaXR0ZW4gd2hpY2gKPiAgIHdhcyB3cm9uZy4gSG93ZXZlciBpbiBjYXNlIHRoZSBkdGIg aXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIsCj4gICBkeW5hbWljIHN5c2J1cyBub2RlcyBhcmUgbm90 IGFkZGVkIHRoZXJlLgo+IC0gcmVuYW1pbmcgb2YgTUFDSFZJUlRfUExBVEZPUk0gZGVmaW5lcwo+ IC0gTUFDSFZJUlRfUExBVEZPUk1fUEFHRV9TSElGVCBhbmQgU0laRV9QQUdFUyBub3QgbmVlZGVk IGFueW1vcmUsCj4gICBoZW5jZSByZW1vdmVkLgo+IC0gRHluU3lzYnVzUGFyYW1zIHN0cnVjdCBy ZW5hbWVkIGludG8gQVJNUGxhdGZvcm1CdXNTeXN0ZW1QYXJhbXMKPiAgIGFuZCBhYm92ZSBwYXJh bXMgcmVtb3ZlZC4KPiAtIHNlcGFyYXRpb24gb2YgZHQgY3JlYXRpb24gYW5kIFFFTVUgYmluZGlu ZyBpcyBub3QgbWFuZGF0ZWQgYW55bW9yZQo+ICAgc2luY2UgdGhlIGRldmljZSB0cmVlIGlzIG5v dCBjcmVhdGVkIGZyb20gc2NyYXRjaCBhbnltb3JlLiBJbnN0ZWFkCj4gICB0aGUgbW9kaWZ5X2R0 YiBmdW5jdGlvbiBpcyB1c2VkLgo+IC0gY3JlYXRlX3BsYXRmb3JtX2J1cyByZWdpc3RlcnMgYW5v dGhlciBtYWNoaW5lIGluaXQgZG9uZSBub3RpZmllcgo+ICAgdG8gc3RhcnQgVkZJTyBJUlEgaGFu ZGxpbmcuIFRoaXMgbGF0dGVyIGV4ZWN1dGVzIGFmdGVyIHRoZQo+ICAgZHluYW1pYyBzeXNidXMg ZGV2aWNlIGJpbmRpbmcuCj4KPiB2MiAtPiB2MzoKPiAtIHJlbmFtaW5nIG9mIGFybV9wbGF0Zm9y bV9idXNfY3JlYXRlX2RldnRyZWUgYW5kIGFybV9sb2FkX2R0Ygo+IC0gYWRkIGNvcHlyaWdodCBp biBody9hcm0vZHluX3N5c2J1c19kZXZ0cmVlLmMKPgo+IHYxIC0+IHYyOgo+IC0gcmVtb3ZlIHVz ZWxlc3MgdmZpby1wbGF0Zm9ybS5oIGluY2x1ZGUgZmlsZQo+IC0gcy9NQUNIVklSVF9QTEFURk9S TV9IT0xFL01BQ0hWSVJUX1BMQVRGT1JNX1NJWkUKPiAtIHVzZSBkeW5fc3lzYnVzX2JpbmRpbmcg YW5kIGR5bl9zeXNidXNfZGV2dHJlZQo+IC0gZHluYW1pYyBzeXNidXMgcGxhdGZvcm0gYnVzZSBz aXplIHNocmlua2VkIHRvIDRNQiBhbmQKPiAgIG1vdmVkIGJldHdlZW4gUlRDIGFuZCBNTUlPCj4K PiB2MToKPgo+IEluc3BpcmVkIGZyb20gd2hhdCBBbGV4IEdyYWYgZGlkIGluIHBwYyBlNTAwCj4g aHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9xZW11LXBwYy8yMDE0LTA3L21zZzAw MDEyLmh0bWwKPgo+IENvbmZsaWN0czoKPiAJaHcvYXJtL3N5c2J1cy1mZHQuYwo+Cj4gQ29uZmxp Y3RzOgo+IAlody9hcm0vdmlydC5jCj4KPiBDb25mbGljdHM6Cj4gCWh3L2FybS92aXJ0LmMKPiAt LS0KPiAgaHcvYXJtL3ZpcnQuYyB8IDU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDEgZmlsZSBjaGFuZ2VkLCA1OSBpbnNlcnRp b25zKCspCj4KPiBkaWZmIC0tZ2l0IGEvaHcvYXJtL3ZpcnQuYyBiL2h3L2FybS92aXJ0LmMKPiBp bmRleCA2OWY1MWFjLi5jM2Y0YzU0IDEwMDY0NAo+IC0tLSBhL2h3L2FybS92aXJ0LmMKPiArKysg Yi9ody9hcm0vdmlydC5jCj4gQEAgLTQzLDYgKzQzLDggQEAKPiAgI2luY2x1ZGUgInFlbXUvYml0 b3BzLmgiCj4gICNpbmNsdWRlICJxZW11L2Vycm9yLXJlcG9ydC5oIgo+ICAjaW5jbHVkZSAiaHcv cGNpLWhvc3QvZ3BleC5oIgo+ICsjaW5jbHVkZSAiaHcvYXJtL3N5c2J1cy1mZHQuaCIKPiArI2lu Y2x1ZGUgImh3L3BsYXRmb3JtLWJ1cy5oIgo+ICAKPiAgI2RlZmluZSBOVU1fVklSVElPX1RSQU5T UE9SVFMgMzIKPiAgCj4gQEAgLTYwLDYgKzYyLDggQEAKPiAgI2RlZmluZSBHSUNfRkRUX0lSUV9Q UElfQ1BVX1NUQVJUIDgKPiAgI2RlZmluZSBHSUNfRkRUX0lSUV9QUElfQ1BVX1dJRFRIIDgKPiAg Cj4gKyNkZWZpbmUgUExBVEZPUk1fQlVTX05VTV9JUlFTIDMyCj4gKwo+ICBlbnVtIHsKPiAgICAg IFZJUlRfRkxBU0gsCj4gICAgICBWSVJUX01FTSwKPiBAQCAtNzEsOCArNzUsMTEgQEAgZW51bSB7 Cj4gICAgICBWSVJUX1JUQywKPiAgICAgIFZJUlRfRldfQ0ZHLAo+ICAgICAgVklSVF9QQ0lFLAo+ ICsgICAgVklSVF9QTEFURk9STV9CVVMsCj4gIH07Cj4gIAo+ICtzdGF0aWMgQVJNUGxhdGZvcm1C dXNTeXN0ZW1QYXJhbXMgcGxhdGZvcm1fYnVzX3BhcmFtczsKPiArCj4gIHR5cGVkZWYgc3RydWN0 IE1lbU1hcEVudHJ5IHsKPiAgICAgIGh3YWRkciBiYXNlOwo+ICAgICAgaHdhZGRyIHNpemU7Cj4g QEAgLTEyOSw2ICsxMzYsNyBAQCBzdGF0aWMgY29uc3QgTWVtTWFwRW50cnkgYTE1bWVtbWFwW10g PSB7Cj4gICAgICBbVklSVF9VQVJUXSA9ICAgICAgIHsgMHgwOTAwMDAwMCwgMHgwMDAwMTAwMCB9 LAo+ICAgICAgW1ZJUlRfUlRDXSA9ICAgICAgICB7IDB4MDkwMTAwMDAsIDB4MDAwMDEwMDAgfSwK PiAgICAgIFtWSVJUX0ZXX0NGR10gPSAgICAgeyAweDA5MDIwMDAwLCAweDAwMDAwMDBhIH0sCj4g KyAgICBbVklSVF9QTEFURk9STV9CVVNdID0gICB7IDB4MDk0MDAwMDAsIDB4MDA0MDAwMDAgfSwK PiAgICAgIFtWSVJUX01NSU9dID0gICAgICAgeyAweDBhMDAwMDAwLCAweDAwMDAwMjAwIH0sCj4g ICAgICAvKiAuLi5yZXBlYXRpbmcgZm9yIGEgdG90YWwgb2YgTlVNX1ZJUlRJT19UUkFOU1BPUlRT LCBlYWNoIG9mIHRoYXQgc2l6ZSAqLwo+ICAgICAgLyoKPiBAQCAtMTQ3LDYgKzE1NSw3IEBAIHN0 YXRpYyBjb25zdCBpbnQgYTE1aXJxbWFwW10gPSB7Cj4gICAgICBbVklSVF9SVENdID0gMiwKPiAg ICAgIFtWSVJUX1BDSUVdID0gMywgLyogLi4uIHRvIDYgKi8KPiAgICAgIFtWSVJUX01NSU9dID0g MTYsIC8qIC4uLnRvIDE2ICsgTlVNX1ZJUlRJT19UUkFOU1BPUlRTIC0gMSAqLwo+ICsgICAgW1ZJ UlRfUExBVEZPUk1fQlVTXSA9IDY0LCAvKiAuLi4gdG8gNjQgKyBQTEFURk9STV9CVVNfTlVNX0lS UVMgLTEgKi8KPiAgfTsKPiAgCj4gIHN0YXRpYyBWaXJ0Qm9hcmRJbmZvIG1hY2hpbmVzW10gPSB7 Cj4gQEAgLTcxMCw2ICs3MTksNDcgQEAgc3RhdGljIHZvaWQgY3JlYXRlX3BjaWUoY29uc3QgVmly dEJvYXJkSW5mbyAqdmJpLCBxZW11X2lycSAqcGljLAo+ICAgICAgZ19mcmVlKG5vZGVuYW1lKTsK PiAgfQo+ICAKPiArc3RhdGljIHZvaWQgY3JlYXRlX3BsYXRmb3JtX2J1cyhWaXJ0Qm9hcmRJbmZv ICp2YmksIHFlbXVfaXJxICpwaWMpCj4gK3sKPiArICAgIERldmljZVN0YXRlICpkZXY7Cj4gKyAg ICBTeXNCdXNEZXZpY2UgKnM7Cj4gKyAgICBpbnQgaTsKPiArICAgIEFSTVBsYXRmb3JtQnVzRkRU UGFyYW1zICpmZHRfcGFyYW1zID0gZ19uZXcoQVJNUGxhdGZvcm1CdXNGRFRQYXJhbXMsIDEpOwo+ ICsgICAgTWVtb3J5UmVnaW9uICpzeXNtZW0gPSBnZXRfc3lzdGVtX21lbW9yeSgpOwo+ICsKPiAr ICAgIHBsYXRmb3JtX2J1c19wYXJhbXMucGxhdGZvcm1fYnVzX2Jhc2UgPSB2YmktPm1lbW1hcFtW SVJUX1BMQVRGT1JNX0JVU10uYmFzZTsKPiArICAgIHBsYXRmb3JtX2J1c19wYXJhbXMucGxhdGZv cm1fYnVzX3NpemUgPSB2YmktPm1lbW1hcFtWSVJUX1BMQVRGT1JNX0JVU10uc2l6ZTsKPiArICAg IHBsYXRmb3JtX2J1c19wYXJhbXMucGxhdGZvcm1fYnVzX2ZpcnN0X2lycSA9IHZiaS0+aXJxbWFw W1ZJUlRfUExBVEZPUk1fQlVTXTsKPiArICAgIHBsYXRmb3JtX2J1c19wYXJhbXMucGxhdGZvcm1f YnVzX251bV9pcnFzID0gUExBVEZPUk1fQlVTX05VTV9JUlFTOwo+ICsKPiArICAgIGZkdF9wYXJh bXMtPnN5c3RlbV9wYXJhbXMgPSAmcGxhdGZvcm1fYnVzX3BhcmFtczsKPiArICAgIGZkdF9wYXJh bXMtPmJpbmZvID0gJnZiaS0+Ym9vdGluZm87Cj4gKyAgICBmZHRfcGFyYW1zLT5pbnRjID0gIi9p bnRjIjsKPiArICAgIC8qCj4gKyAgICAgKiByZWdpc3RlciBhIG1hY2hpbmUgaW5pdCBkb25lIG5v dGlmaWVyIHRoYXQgY3JlYXRlcyB0aGUgZGV2aWNlIHRyZWUKPiArICAgICAqIG5vZGVzIG9mIHRo ZSBwbGF0Zm9ybSBidXMgYW5kIGl0cyBjaGlsZHJlbiBkeW5hbWljIHN5c2J1cyBkZXZpY2VzCj4g KyAgICAgKi8KPiArICAgIGFybV9yZWdpc3Rlcl9wbGF0Zm9ybV9idXNfZmR0X2NyZWF0b3IoZmR0 X3BhcmFtcyk7Cj4gKwo+ICsgICAgZGV2ID0gcWRldl9jcmVhdGUoTlVMTCwgVFlQRV9QTEFURk9S TV9CVVNfREVWSUNFKTsKPiArICAgIGRldi0+aWQgPSBUWVBFX1BMQVRGT1JNX0JVU19ERVZJQ0U7 Cj4gKyAgICBxZGV2X3Byb3Bfc2V0X3VpbnQzMihkZXYsICJudW1faXJxcyIsCj4gKyAgICAgICAg cGxhdGZvcm1fYnVzX3BhcmFtcy5wbGF0Zm9ybV9idXNfbnVtX2lycXMpOwo+ICsgICAgcWRldl9w cm9wX3NldF91aW50MzIoZGV2LCAibW1pb19zaXplIiwKPiArICAgICAgICBwbGF0Zm9ybV9idXNf cGFyYW1zLnBsYXRmb3JtX2J1c19zaXplKTsKPiArICAgIHFkZXZfaW5pdF9ub2ZhaWwoZGV2KTsK PiArICAgIHMgPSBTWVNfQlVTX0RFVklDRShkZXYpOwo+ICsKPiArICAgIGZvciAoaSA9IDA7IGkg PCBwbGF0Zm9ybV9idXNfcGFyYW1zLnBsYXRmb3JtX2J1c19udW1faXJxczsgaSsrKSB7Cj4gKyAg ICAgICAgaW50IGlycW4gPSBwbGF0Zm9ybV9idXNfcGFyYW1zLnBsYXRmb3JtX2J1c19maXJzdF9p cnEgKyBpOwo+ICsgICAgICAgIHN5c2J1c19jb25uZWN0X2lycShzLCBpLCBwaWNbaXJxbl0pOwo+ ICsgICAgfQo+ICsKPiArICAgIG1lbW9yeV9yZWdpb25fYWRkX3N1YnJlZ2lvbihzeXNtZW0sCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm1fYnVzX3BhcmFtcy5wbGF0 Zm9ybV9idXNfYmFzZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXNidXNf bW1pb19nZXRfcmVnaW9uKHMsIDApKTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgKm1hY2h2aXJ0 X2R0Yihjb25zdCBzdHJ1Y3QgYXJtX2Jvb3RfaW5mbyAqYmluZm8sIGludCAqZmR0X3NpemUpCj4g IHsKPiAgICAgIGNvbnN0IFZpcnRCb2FyZEluZm8gKmJvYXJkID0gKGNvbnN0IFZpcnRCb2FyZElu Zm8gKiliaW5mbzsKPiBAQCAtODI5LDYgKzg3OSwxNCBAQCBzdGF0aWMgdm9pZCBtYWNodmlydF9p bml0KE1hY2hpbmVTdGF0ZSAqbWFjaGluZSkKPiAgICAgIHZiaS0+Ym9vdGluZm8uZ2V0X2R0YiA9 IG1hY2h2aXJ0X2R0YjsKPiAgICAgIHZiaS0+Ym9vdGluZm8uZmlybXdhcmVfbG9hZGVkID0gYmlv c19uYW1lIHx8IGRyaXZlX2dldChJRl9QRkxBU0gsIDAsIDApOwo+ICAgICAgYXJtX2xvYWRfa2Vy bmVsKEFSTV9DUFUoZmlyc3RfY3B1KSwgJnZiaS0+Ym9vdGluZm8pOwo+ICsKPiArICAgIC8qCj4g KyAgICAgKiBhcm1fbG9hZF9rZXJuZWwgbWFjaGluZSBpbml0IGRvbmUgbm90aWZpZXIgcmVnaXN0 cmF0aW9uIG11c3QKPiArICAgICAqIGhhcHBlbiBiZWZvcmUgdGhlIHBsYXRmb3JtX2J1c19jcmVh dGUgY2FsbC4gSW4gdGhpcyBsYXR0ZXIsCj4gKyAgICAgKiBhbm90aGVyIG5vdGlmaWVyIGlzIHJl Z2lzdGVyZWQgd2hpY2ggYWRkcyBwbGF0Zm9ybSBidXMgbm9kZXMuCj4gKyAgICAgKiBOb3RpZmll cnMgYXJlIGV4ZWN1dGVkIGluIHJlZ2lzdHJhdGlvbiByZXZlcnNlIG9yZGVyLgo+ICsgICAgICov Cj4gKyAgICBjcmVhdGVfcGxhdGZvcm1fYnVzKHZiaSwgcGljKTsKPiAgfQo+ICAKPiAgc3RhdGlj IGJvb2wgdmlydF9nZXRfc2VjdXJlKE9iamVjdCAqb2JqLCBFcnJvciAqKmVycnApCj4gQEAgLTg2 Nyw2ICs5MjUsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0X2NsYXNzX2luaXQoT2JqZWN0Q2xhc3MgKm9j LCB2b2lkICpkYXRhKQo+ICAgICAgbWMtPmRlc2MgPSAiQVJNIFZpcnR1YWwgTWFjaGluZSIsCj4g ICAgICBtYy0+aW5pdCA9IG1hY2h2aXJ0X2luaXQ7Cj4gICAgICBtYy0+bWF4X2NwdXMgPSA4Owo+ ICsgICAgbWMtPmhhc19keW5hbWljX3N5c2J1cyA9IHRydWU7Cj4gIH0KPiAgCj4gIHN0YXRpYyBj b25zdCBUeXBlSW5mbyBtYWNodmlydF9pbmZvID0gewoKLS0gCkFsZXggQmVubsOpZQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwprdm1hcm0gbWFpbGluZyBs aXN0Cmt2bWFybUBsaXN0cy5jcy5jb2x1bWJpYS5lZHUKaHR0cHM6Ly9saXN0cy5jcy5jb2x1bWJp YS5lZHUvbWFpbG1hbi9saXN0aW5mby9rdm1hcm0K