From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: HVMlite ABI specification DRAFT A Date: Thu, 4 Feb 2016 18:22:37 +0000 Message-ID: <56B396ED.7010209@citrix.com> References: <56B38EDE.5090700@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1aROYF-00080G-3f for xen-devel@lists.xenproject.org; Thu, 04 Feb 2016 18:22:43 +0000 In-Reply-To: <56B38EDE.5090700@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , xen-devel Cc: Wei Liu , Stefano Stabellini , Tim Deegan , Paul Durrant , David Vrabel , Jan Beulich , samuel.thibault@ens-lyon.org, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org T24gMDQvMDIvMTYgMTc6NDgsIFJvZ2VyIFBhdSBNb25uw6kgd3JvdGU6Cj4gSGVsbG8sCj4KPiBJ J3ZlIENjZWQgYSBidW5jaCBvZiBwZW9wbGUgd2hvIGhhdmUgZXhwcmVzc2VkIGludGVyZXN0IGlu IHRoZSBIVk1saXRlIAo+IGRlc2lnbi9pbXBsZW1lbnRhdGlvbiwgYm90aCBmcm9tIGEgWGVuIG9y IE9TIHBvaW50IG9mIHZpZXcuIElmIHlvdSAKPiB3b3VsZCBsaWtlIHRvIGJlIHJlbW92ZWQsIHBs ZWFzZSBzYXkgc28gYW5kIEkgd2lsbCByZW1vdmUgeW91IGluIAo+IGZ1cnRoZXIgaXRlcmF0aW9u cy4gVGhlIHNhbWUgYXBwbGllcyBpZiB5b3Ugd2FudCB0byBiZSBhZGRlZCB0byB0aGUgQ2MuCj4K PiBUaGlzIGlzIGFuIGluaXRpYWwgZHJhZnQgb24gdGhlIEhWTWxpdGUgZGVzaWduIGFuZCBpbXBs ZW1lbnRhdGlvbi4gSSd2ZSAKPiBtaXhlZCBjZXJ0YWluIGFzcGVjdHMgb2YgdGhlIGRlc2lnbiB3 aXRoIHRoZSBpbXBsZW1lbnRhdGlvbiwgYmVjYXVzZSBJIAo+IHRoaW5rIHdlIGFyZSBxdWl0ZSB0 aWVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBwb3NzaWJpbGl0aWVzIGluIGNlcnRhaW4gCj4gYXNw ZWN0cywgc28gbm90IHNwZWFraW5nIGFib3V0IGl0IHdvdWxkIG1ha2UgdGhlIGRvY3VtZW50IGlu Y29tcGxldGUuIEkgCj4gbWlnaHQgYmUgd3Jvbmcgb24gdGhhdCwgc28gZmVlbCBmcmVlIHRvIGNv bW1lbnQgb3RoZXJ3aXNlIGlmIHlvdSB3b3VsZCAKPiBwcmVmZXIgYSBkaWZmZXJlbnQgYXBwcm9h Y2guIEF0IGxlYXN0IHRoaXMgc2hvdWxkIGdldCB0aGUgY29udmVyc2F0aW9uIAo+IHN0YXJ0ZWQg aW50byBhIGNvdXBsZSBvZiBwZW5kaW5nIGl0ZW1zIHJlZ2FyZGluZyBIVk1saXRlLiBJIGRvbid0 IHdhbnQgCj4gdG8gc3BvaWwgdGhlIGZ1biwgYnV0IElNSE8gdGhleSBhcmU6Cj4KPiAgLSBMb2Nh bCBBUElDOiBzaG91bGQgd2UgX2Fsd2F5c18gcHJvdmlkZSBhIGxvY2FsIEFQSUMgdG8gSFZNbGl0 ZSAKPiAgICBndWVzdHM/CgpJIHRoaW5rIGl0IHdvdWxkIGJlIGJlc3QgdG8gb2ZmZXIgYW4gTEFQ SUMgYnkgZGVmYXVsdCAodG8gYmUgaGVscGZ1bCB0bwptb3N0IG1vZGVybiBPU2VzKSwgYnV0IGxl YXZlIHRoZSBvcHRpb24gZm9yIGFuIGFkbWluaXN0cmF0b3IgdG8gZGlzYWJsZQppZiB0aGV5IHNw ZWNpZmljYWxseSBkb24ndCB3YW50IG9uZS4KCj4gIC0gSFZNbGl0ZSBoYXJkd2FyZSBkb21haW46 IGNhbiB3ZSBnZXQgcmlkIG9mIHRoZSBQSFlTREVWIG9wcyBhbmQgUElSUSAKPiAgICBldmVudCBj aGFubmVscz8KPiAgLSBIVk1saXRlIFBDSS1wYXNzdGhyb3VnaDogY2FuIHdlIGdldCByaWQgb2Yg cGNpYmFjay9wY2lmcm9udD8KCisxMDAwLCBmb3IgYm90aC4KCj4KPiBUaGUgZG9jdW1lbnQgaXMg c3RpbGwgZmFyIGZyb20gY29tcGxldGUsIGFuZCBJJ3ZlIG9ubHkgdHJpZWQgdG8gCj4gcmVwcmVz ZW50IHRoZSBwb2ludHMgd2hlcmUgdGhlcmUncyBjb25zZW5zdXMgKGxpa2UgdGhlIGJvb3QgQUJJ KSBvciAKPiBwYXJ0cyB3aGVyZSBmZWVkYmFjayBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gcmVhY2gg YSBjb25zZW5zdXMgKGxpa2UgdGhlIAo+IGl0ZW1zIHBvaW50ZWQgYWJvdmUpLiBJJ20gb2YgY291 cnNlIG5vdCBhcyBrbm93bGVkZ2VhYmxlIGFzIHNvbWUgcGVvcGxlIAo+IG9uIHRoZSBDYywgc28g cGxlYXNlIGNvcnJlY3QgbWUgaWYgeW91IHRoaW5rIHRoZXJlIGFyZSBtaXN0YWtlcyBvciAKPiBz aW1wbHkgaW1wb3NzaWJsZSBnb2Fscy4KPgo+IFJvZ2VyLgo+IC0tLQo+Cj4gWGVuIEhWTWxpdGUg QUJJCj4gPT09PT09PT09PT09PT09CgpBbnkgY2hhbmNlIHRoaXMgY2FuIGVuZCB1cCBsaXZpbmcg aW4gZG9jcy9zcGVjcy9IVk1MaXRlLUFCSS4kRk9PLAphbG9uZ3NpZGUgdGhlIGV4aXN0aW5nIGZv cm1hbCBzcGVjcz8KCldvdWxkIGl0IGFsc28gYmUgcG9zc2libGUgdG8gd3JpdGUgYSBmZWF0dXJl IGRvY3VtZW50IGluCmRvY3MvZmVhdHVyZXMvSFZNTGl0ZS4kRk9PID8KCj4KPiBCb290IEFCSQo+ IC0tLS0tLS0tCj4KPiBTaW5jZSB0aGUgWGVuIGVudHJ5IHBvaW50IGludG8gdGhlIGtlcm5lbCBj YW4gYmUgZGlmZmVyZW50IGZyb20gdGhlCj4gbmF0aXZlIGVudHJ5IHBvaW50LCBhIGBFTEZOT1RF YCBpcyB1c2VkIGluIG9yZGVyIHRvIHRlbGwgdGhlIGRvbWFpbgo+IGJ1aWxkZXIgaG93IHRvIGxv YWQgYW5kIGp1bXAgaW50byB0aGUga2VybmVsIGVudHJ5IHBvaW50Ogo+Cj4gICAgIEVMRk5PVEUo WGVuLCBYRU5fRUxGTk9URV9QSFlTMzJfRU5UUlksICAgICAgICAgIC5sb25nLCAgeGVuX3N0YXJ0 MzIpCj4KPiBUaGUgcHJlc2VuY2Ugb2YgdGhlIGBYRU5fRUxGTk9URV9QSFlTMzJfRU5UUllgIG5v dGUgaW5kaWNhdGVzIHRoYXQgdGhlCj4ga2VybmVsIHN1cHBvcnRzIHRoZSBib290IEFCSSBkZXNj cmliZWQgaW4gdGhpcyBkb2N1bWVudC4KPgo+IFRoZSBkb21haW4gYnVpbGRlciBtdXN0IGxvYWQg dGhlIGtlcm5lbCBpbnRvIHRoZSBndWVzdCBtZW1vcnkgc3BhY2UgYW5kCj4ganVtcCBpbnRvIHRo ZSBlbnRyeSBwb2ludCBkZWZpbmVkIGF0IGBYRU5fRUxGTk9URV9QSFlTMzJfRU5UUllgIHdpdGgg dGhlCj4gZm9sbG93aW5nIG1hY2hpbmUgc3RhdGU6CgpHaXZlbiBtdWx0aXBsZSBwb3NzaWJsZSBl bnRyaWVzLCB0aGUgZG9tYWluIGJ1aWxkZXIgbWlnaHQgaGF2ZSBtdWx0aXBsZQpzdGFydGluZyBv cHRpb25zIGF2YWlsYWJsZS4KCkkgd291bGQgcmV3b3JkIHRoaXMgdG8gIldoZW4gc3RhcnRpbmcg YW4gSFZNTGl0ZSBkb21haW4sIHRoZSBkb21haW4KYnVpbGRlciBzaGFsbCBsb2FkIC4uLiIsIHdo aWNoIGFsbG93cyB0aGUgZG9taWFuIGJ1aWxkZXIgdG8gY2hvc2UgYW4KYWx0ZXJuYXRpdmUgZW50 cnkgbWV0aG9kLCBhdCBpdHMgZGlzY3JldGlvbi4KCj4KPiAgKiBgZWJ4YDogY29udGFpbnMgdGhl IHBoeXNpY2FsIG1lbW9yeSBhZGRyZXNzIHdoZXJlIHRoZSBsb2FkZXIgaGFzIHBsYWNlZAo+ICAg IHRoZSBib290IHN0YXJ0IGluZm8gc3RydWN0dXJlLgo+Cj4gICogYGNyMGA6IGJpdCAwIChQRSkg bXVzdCBiZSBzZXQuIEFsbCB0aGUgb3RoZXIgd3JpdGVhYmxlIGJpdHMgYXJlIGNsZWFyZWQuCj4K PiAgKiBgY3I0YDogYWxsIGJpdHMgYXJlIGNsZWFyZWQuCj4KPiAgKiBgY3NgOiBtdXN0IGJlIGEg MzItYml0IHJlYWQvZXhlY3V0ZSBjb2RlIHNlZ21lbnQgd2l0aCBhIGJhc2Ugb2Yg4oCYMOKAmQo+ ICAgIGFuZCBhIGxpbWl0IG9mIOKAmDB4RkZGRkZGRkbigJkuIFRoZSBzZWxlY3RvciB2YWx1ZSBp cyB1bnNwZWNpZmllZC4KPgo+ICAqIGBkc2AsIGBlc2A6IG11c3QgYmUgYSAzMi1iaXQgcmVhZC93 cml0ZSBkYXRhIHNlZ21lbnQgd2l0aCBhIGJhc2Ugb2YKPiAgICDigJgw4oCZIGFuZCBhIGxpbWl0 IG9mIOKAmDB4RkZGRkZGRkbigJkuIFRoZSBzZWxlY3RvciB2YWx1ZXMgYXJlIGFsbCB1bnNwZWNp ZmllZC4KPgo+ICAqIGB0cmA6IG11c3QgYmUgYSAzMi1iaXQgVFNTIChhY3RpdmUpIHdpdGggYSBi YXNlIG9mICcwJyBhbmQgYSBsaW1pdCBvZiAnMHg2NycuCj4KPiAgKiBgZWZsYWdzYDogYml0IDE3 IChWTSkgbXVzdCBiZSBjbGVhcmVkLiBCaXQgOSAoSUYpIG11c3QgYmUgY2xlYXJlZC4KPiAgICBC aXQgOCAoVEYpIG11c3QgYmUgY2xlYXJlZC4gT3RoZXIgYml0cyBhcmUgYWxsIHVuc3BlY2lmaWVk LgoKSSB3b3VsZCBhbHNvIHNwZWNpZnkgdGhhdCB0aGUgZGlyZWN0aW9uIGZsYWcgc2hhbGwgYmUg Y2xlYXIsIHRvIHByZXZlbnQKYWxsIGtlcm5lbHMgbmVlZGluZyB0byBgY2xkYCBvbiBlbnRyeS4K Cj4KPiBBbGwgb3RoZXIgcHJvY2Vzc29yIHJlZ2lzdGVycyBhbmQgZmxhZyBiaXRzIGFyZSB1bnNw ZWNpZmllZC4gVGhlIE9TIGlzIGluCj4gY2hhcmdlIG9mIHNldHRpbmcgdXAgaXQncyBvd24gc3Rh Y2ssIEdEVCBhbmQgSURULgo+Cj4gVGhlIGZvcm1hdCBvZiB0aGUgYm9vdCBzdGFydCBpbmZvIHN0 cnVjdHVyZSBpcyB0aGUgZm9sbG93aW5nIChwb2ludGVkIHRvCj4gYmUgJWVieCk6Cj4KPiAgICAg c3RydWN0IGh2bV9zdGFydF9pbmZvIHsKPiAgICAgI2RlZmluZSBIVk1fU1RBUlRfTUFHSUNfVkFM VUUgMHgzMzZlYzU3OAo+ICAgICAgICAgdWludDMyX3QgbWFnaWM7ICAgICAgICAgICAgIC8qIENv bnRhaW5zIHRoZSBtYWdpYyB2YWx1ZSAweDMzNmVjNTc4ICAgICAgICovCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogKCJ4RW4zIiB3aXRoIHRoZSAweDgwIGJpdCBvZiB0 aGUgIkUiIHNldCkuKi8KPiAgICAgICAgIHVpbnQzMl90IGZsYWdzOyAgICAgICAgICAgICAvKiBT SUZfeHh4IGZsYWdzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwo+ICAgICAgICAgdWlu dDMyX3QgY21kbGluZV9wYWRkcjsgICAgIC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIGNvbW1h bmQgbGluZS4gICAgICovCj4gICAgICAgICB1aW50MzJfdCBucl9tb2R1bGVzOyAgICAgICAgLyog TnVtYmVyIG9mIG1vZHVsZXMgcGFzc2VkIHRvIHRoZSBrZXJuZWwuICAgKi8KPiAgICAgICAgIHVp bnQzMl90IG1vZGxpc3RfcGFkZHI7ICAgICAvKiBQaHlzaWNhbCBhZGRyZXNzIG9mIGFuIGFycmF5 IG9mICAgICAgICAgICAqLwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IGh2bV9tb2RsaXN0X2VudHJ5LiAgICAgICAgICAgICAgICAgICAgICAgICovCj4gICAgIH07CgpG b3IgYm90aCBwYWRkciB2YWx1ZXMsIHplcm8gaW5kaWNhdGVzICJub3QgcHJvdmlkZWQiLgoKPgo+ ICAgICBzdHJ1Y3QgaHZtX21vZGxpc3RfZW50cnkgewo+ICAgICAgICAgdWludDMyX3QgcGFkZHI7 ICAgICAgICAgICAgIC8qIFBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIG1vZHVsZS4gICAgICAgICAg ICovCj4gICAgICAgICB1aW50MzJfdCBzaXplOyAgICAgICAgICAgICAgLyogU2l6ZSBvZiB0aGUg bW9kdWxlIGluIGJ5dGVzLiAgICAgICAgICAgICAgKi8KPiAgICAgfTsKPgo+IE90aGVyIHJlbGV2 YW50IGluZm9ybWF0aW9uIG5lZWRlZCBpbiBvcmRlciB0byBib290IGEgZ3Vlc3Qga2VybmVsCj4g KGNvbnNvbGUgcGFnZSBhZGRyZXNzLCB4ZW5zdG9yZSBldmVudCBjaGFubmVsLi4uKSBjYW4gYmUg b2J0YWluZWQKPiB1c2luZyBIVk1QQVJBTVMsIGp1c3QgbGlrZSBpdCdzIGRvbmUgb24gSFZNIGd1 ZXN0cy4KPgo+IFRoZSBzZXR1cCBvZiB0aGUgaHlwZXJjYWxsIHBhZ2UgaXMgYWxzbyBwZXJmb3Jt ZWQgaW4gdGhlIHNhbWUgd2F5Cj4gYXMgSFZNIGd1ZXN0cywgdXNpbmcgdGhlIGh5cGVydmlzb3Ig Y3B1aWQgbGVhdmVzIGFuZCBtc3IgcmFuZ2VzLgo+Cj4gSGFyZHdhcmUgZGVzY3JpcHRpb24KPiAt LS0tLS0tLS0tLS0tLS0tLS0tLQo+Cj4gSGFyZHdhcmUgZGVzY3JpcHRpb24gY2FuIGNvbWUgZnJv bSB0d28gZGlmZmVyZW50IHNvdXJjZXMsIGp1c3QgbGlrZSBvbiAoUFYpSFZNCj4gZ3Vlc3RzLgo+ Cj4gRGVzY3JpcHRpb24gb2YgUFYgZGV2aWNlcyB3aWxsIGFsd2F5cyBjb21lIGZyb20geGVuYnVz LCBhbmQgaW4gZmFjdAo+IHhlbmJ1cyBpcyB0aGUgb25seSBoYXJkd2FyZSBkZXNjcmlwdGlvbiB0 aGF0IGlzIGd1YXJhbnRlZWQgdG8gYWx3YXlzIGJlCj4gcHJvdmlkZWQgdG8gSFZNbGl0ZSBndWVz dHMuCj4KPiBEZXNjcmlwdGlvbiBvZiBwaHlzaWNhbCBoYXJkd2FyZSBkZXZpY2VzIHdpbGwgYWx3 YXlzIGNvbWUgZnJvbSBBQ1BJLCBpbiB0aGUKPiBhYnNlbmNlIG9mIGFueSBwaHlzaWNhbCBoYXJk d2FyZSBkZXZpY2Ugbm8gQUNQSSB0YWJsZXMgd2lsbCBiZSBwcm92aWRlZC4gVGhlCj4gcHJlc2Vu Y2Ugb2YgQUNQSSB0YWJsZXMgY2FuIGJlIGRldGVjdGVkIGJ5IGZpbmRpbmcgdGhlIFJTRFAsIGp1 c3QgbGlrZSBvbgo+IGJhcmUgbWV0YWwuCj4KPiBOb24tUFYgZGV2aWNlcyBleHBvc2VkIHRvIHRo ZSBndWVzdAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4KPiBUaGUgaW5p dGlhbCBpZGVhIHdhcyB0byBzaW1wbHkgZG9uJ3QgcHJvdmlkZSBhbnkgZW11bGF0ZWQgZGV2aWNl cyB0byBhIEhWTWxpdGUKPiBndWVzdCBhcyB0aGUgZGVmYXVsdCBvcHRpb24uIFdlIGhhdmUgaG93 ZXZlciBpZGVudGlmaWVkIGNlcnRhaW4gc2l0dWF0aW9ucwo+IHdoZXJlIGVtdWxhdGVkIGRldmlj ZXMgY291bGQgYmUgaW50ZXJlc3RpbmcsIGJvdGggZnJvbSBhIHBlcmZvcm1hbmNlIGFuZAo+IGVh c3kgaW1wbGVtZW50YXRpb24gcG9pbnQgb2Ygdmlldy4gVGhlIGZvbGxvd2luZyBsaXN0IHRyaWVz IHRvIGVuY29tcGFzcwo+IHRoZSBkaWZmZXJlbnQgaWRlbnRpZmllZCBzY2VuYXJpb3M6Cj4KPiAg KiAxLiBIVk1saXRlIHdpdGggbm8gZW11bGF0ZWQgZGV2aWNlcyBhdCBhbGwKPiAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgICBUaGlzIGlzIHRoZSBjdXJy ZW50IGltcGxlbWVudGF0aW9uIGluc2lkZSBvZiBYZW4sIGV2ZXJ5dGhpbmcgaXMgZGlzYWJsZWQK PiAgICBieSBkZWZhdWx0IGFuZCB0aGUgZ3Vlc3QgaGFzIGFjY2VzcyB0byB0aGUgUFYgZGV2aWNl cyBvbmx5LiBUaGlzIGlzIG9mCj4gICAgY291cnNlIHRoZSBtb3N0IHNlY3VyZSBkZXNpZ24gYmVj YXVzZSBpdCBoYXMgdGhlIHNtYWxsZXIgc3VyZmFjZSBvZiBhdHRhY2suCj4KPiAgKiAyLiBIVk1s aXRlIHdpdGggUENJLXBhc3N0aHJvdWdoCj4gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICAgIFRoZSBjdXJyZW50IG1vZGVsIG9mIFBDSS1wYXNzdGhyb3VnaHQgaW4gUFYgZ3Vl c3RzIGlzIGNvbXBsZXggYW5kIHJlcXVpcmVzCj4gICAgaGVhdnkgbW9kaWZpY2F0aW9ucyB0byB0 aGUgZ3Vlc3QgT1MuIEdvaW5nIGZvcndhcmQgd2Ugd291bGQgbGlrZSB0byByZW1vdmUKPiAgICB0 aGlzIGxpbWl0YXRpb24sIGJ5IHByb3ZpZGluZyBhbiBpbnRlcmZhY2UgdGhhdCdzIHRoZSBzYW1l IGFzIGZvdW5kIG9uIGJhcmUKPiAgICBtZXRhbC4gSW4gb3JkZXIgdG8gZG8gdGhpcywgYXQgbGVh c3QgYW4gZW11bGF0ZWQgbG9jYWwgQVBJQyBhbmQgSU8gQVBJQwo+ICAgIHNob3VsZCBiZSBwcm92 aWRlZCB0byBndWVzdHMsIHRvZ2V0aGVyIHdpdGggdGhlIGFjY2VzcyB0byBhIFBDSS1Sb290IGNv bXBsZXguCj4gICAgQXMgc2FpZCBpbiB0aGUgJ0hhcmR3YXJlIGRlc2NyaXB0aW9uJyBzZWN0aW9u IGFib3ZlLCB0aGlzIHdpbGwgYWxzbyByZXF1aXJlCj4gICAgQUNQSS4gU28gdGhpcyBwcm9wb3Nl ZCBzY2VuYXJpbyB3aWxsIHJlcXVpcmUgdGhlIGZvbGxvd2luZyBlbGVtZW50cyB0aGF0IGFyZQo+ ICAgIG5vdCBwcmVzZW50IGluIHRoZSBtaW5pbWFsIChvciBkZWZhdWx0KSBIVk1saXRlIGltcGxl bWVudGF0aW9uOiBBQ1BJLCBsb2NhbAo+ICAgIEFQSUMgSU8gQVBJQyBhbmQgUENJLVJvb3QgY29t cGxleC4KClRoZSBJT0FQSUMgaXMgb25seSByZXF1aXJlZCB3aGVuIGRvaW5nIHBhc3N0aHJvdWdo IG9mIG5vbi1WRiBkZXZpY2VzLiAKSWYgdGhlIHBhc3N0aHJvdWdoIHVzZWNhc2UgaXMgcmVzdHJp Y3RlZCB0byBTUklPViBWRnMgb25seSwgdGhlIElPQVBJQwpjYW4gYmUgb21pdHRlZCwgYXMgdGhl IFNSSU9WIHNwZWMgZm9yYmlkcyB0aGUgdXNlIG9mIGxlZ2FjeSBsaW5lCmludGVycnVwdHMgZm9y IFZGcy4gIEFnYWluIHdpdGggc2VjdXJpdHkgaW4gbWluZCwgaXQgc2hvdWxkIGJlIHBvc3NpYmxl CmZvciBhbiBhZG1pbiB0byBzcGVjaWZ5IHRoaXMgY29uZmlndXJhdGlvbiBpZiB0aGV5IHJlYWxs eSB3aXNoIHRvIHJlZHVjZQp0aGUgZW11bGF0ZWQgYXR0YWNrIHN1cmZhY2UgaW4gWGVuLgoKSW5k ZXBlbmRlbnRseSBvZiB0aGUgSFZNTGl0ZSBhbmdsZSwgaGF2aW5nIGEgbWluaW1hbCBob3N0IGJy aWRnZSBpbiBYZW4Kc29sdmVzIGEgbG90IG9mIG91ciBjdXJyZW50IGFyY2hpdGVjdHVyYWwgcHJv YmxlbXMgd2l0aCBleGlzdGluZyBQQ0kKUGFzc3Rocm91Z2gsIGFuZCBpbiBwYXJ0aWN1bGFyIGFs bG93cyBmb3IgZGV2aWNlIG1vZGVsIGRpc2FnZ3JlZ2F0aW9uLAp3aGljaCB3aWxsIGFsc28gYmUg b2YgaW50ZXJlc3QgZm9yIHRoZSBwbGFpbiBIVk0gY2FzZS4KCj4KPiAgKiAzLiBIVk1saXRlIGhh cmR3YXJlIGRvbWFpbgo+ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gICAgVGhlIGFp bSBpcyB0aGF0IGEgSFZNbGl0ZSBoYXJkd2FyZSBkb21haW4gaXMgZ29pbmcgdG8gd29yayBleGFj dGx5IGxpa2UgYQo+ICAgIEhWTWxpdGUgZG9tYWluIHdpdGggcGFzc2VkLXRocm91Z2ggZGV2aWNl cy4gVGhpcyBtZWFucyB0aGF0IHRoZSBkb21haW4gd2lsbAo+ICAgIG5lZWQgYWNjZXNzIHRvIHRo ZSBzYW1lIHNldCBvZiBlbXVsYXRlZCBkZXZpY2VzLCBhbmQgdGhhdCBzb21lIEFDUEkgdGFibGVz Cj4gICAgbXVzdCBiZSBmaXhlZCBpbiBvcmRlciB0byByZWZsZWN0IHRoZSByZWFsaXR5IG9mIHRo ZSBjb250YWluZXIgdGhlIGhhcmR3YXJlCj4gICAgZG9tYWluIGlzIHJ1bm5pbmcgb24uIFRoZSBB Q1BJIHNlY3Rpb24gY29udGFpbnMgbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbgo+ICAgIGFib3V0 IHdoaWNoL2hvdyB0aGVzZSB0YWJsZXMgYXJlIGdvaW5nIHRvIGJlIGZpeGVkLgo+Cj4gICAgTm90 ZSB0aGF0IGluIHRoaXMgc2NlbmFyaW8gdGhlIGhhcmR3YXJlIGRvbWFpbiB3aWxsICphbHdheXMq IGhhdmUgYSBsb2NhbAo+ICAgIEFQSUMgYW5kIElPIEFQSUMsIGFuZCB0aGF0IHRoZSB1c2FnZSBv ZiBQSFlTREVWIG9wZXJhdGlvbnMgYW5kIFBJUlEgZXZlbnQKPiAgICBjaGFubmVscyBpcyBnb2lu ZyB0byBiZSByZW1vdmVkIGluIGZhdm91ciBvZiB0aGUgYmFyZSBtZXRhbCBtZWNoYW5pc21zLgoK V2UgZG8gbmVlZCB0byBjYXRlciBmb3IgYXQgbGVhc3QgdGhlIFJUQyBmb3IgdGhlIGhhcmR3YXJl IGRvbWFpbi4gIFRoaXMKY2FuIGJlIGRvbmUgYnkgbm90IHVzaW5nIHRoZSBGQURUICJyZWR1Y2Vk IiBmbGFnIGFuZCBhY3R1YWxseSB3aXJpbmcgdXAKdGhlIGxlZ2FjeSBJTyBwb3J0cywgd2hpY2gg b3VnaHQgdG8gYmUgc3VmZmljaWVudC4KCj4KPiBUaGVyZSBoYXZlIGJlZW4gc29tZSBvcGluaW9u cyB0aGF0IHRoZSBjdXJyZW50IG1vZGVsICgxKSBzaG91bGQgYmUgcmVwbGFjZWQKPiB3aXRoICgy KSB3aXRob3V0IGFueSBwYXNzZWQtdGhyb3VnaCBkZXZpY2VzLCBzbyB0aGF0IGF0IGxlYXN0IGEg bG9jYWwgQVBJQyBpcwo+IHByb3ZpZGVkLiBTaG91bGQgdGhlbiBhIFJTRFQsIEZBRFQgYW5kIE1B RFQgYmUgcHJvdmlkZWQ/IFdlIHdvdWxkIHRoZW4gYmUKPiBhYmxlIHRvIHN3aXRjaCB0aGUgQ1BV IGVudW1lcmF0aW9uIHRvIHRoZSBvbmUgdXNlZCBvbiBiYXJlIG1ldGFsIChpZTogdXNpbmcgdGhl Cj4gZGF0YSBpbiB0aGUgTUFEVCkuCj4KPiBBQ1BJCj4gLS0tLQo+Cj4gQUNQSSB0YWJsZXMgd2ls bCBiZSBwcm92aWRlZCB0byB0aGUgaGFyZHdhcmUgZG9tYWluIG9yIHRvIHVucHJpdmlsZWdlZAo+ IGRvbWFpbnMgdGhhdCBoYXZlIHBhc3NlZC10aHJvdWdoIFBDSSBkZXZpY2VzLiBJbiB0aGUgY2Fz ZSBvZiB1bnByaXZpbGVnZWQKPiBndWVzdHMgQUNQSSB0YWJsZXMgYXJlIGdvaW5nIHRvIGJlIGNy ZWF0ZWQgYnkgdGhlIHRvb2xzdGFjayBhbmQgd2lsbCBvbmx5Cj4gY29udGFpbiB0aGUgc2V0IG9m IGRldmljZXMgYXZhaWxhYmxlIHRvIHRoZSBndWVzdCwgd2hpY2ggd2lsbCBhdCBsZWFzdCBiZQo+ IHRoZSBmb2xsb3dpbmc6IGxvY2FsIEFQSUMsIElPIEFQSUMsIHRoZSBwYXNzZWQtdGhyb3VnaCBk ZXZpY2UuIEluIG9yZGVyIHRvCj4gcHJvdmlkZSB0aGlzIGluZm9ybWF0aW9uIGZyb20gQUNQSSB0 aGUgZm9sbG93aW5nIHRhYmxlcyBhcmUgbmVlZGVkIGFzIGEKPiBtaW5pbXVtOiBSU0RULCBGQURU LCBNQURUIGFuZCBEU0RULgo+Cj4gSW4gdGhlIGNhc2Ugb2YgdGhlIGhhcmR3YXJlIGRvbWFpbiwg WGVuIGhhcyB0cmFkaXRpb25hbGx5IHBhc3NlZC10aHJvdWdoIHRoZQo+IG5hdGl2ZSBBQ1BJIHRh YmxlcyB0byB0aGUgZ3Vlc3QuIFRoaXMgaXMgc29tZXRoaW5nIHRoYXQgb2YgY291cnNlIHdlIHN0 aWxsCj4gd2FudCB0byBkbywgYnV0IGluIHRoZSBjYXNlIG9mIEhWTWxpdGUgWGVuIHdpbGwgaGF2 ZSB0byBtYWtlIHN1cmUgdGhhdAo+IHRoZSBkYXRhIHBhc3NlZCBpbiB0aGUgQUNQSSB0YWJsZXMg dG8gdGhlIGhhcmR3YXJlIGRvbWFpbiBjb250YWluIHRoZSBhY2N1cmF0ZQo+IGhhcmR3YXJlIGRl c2NyaXB0aW9uLiBUaGlzIG1lYW5zIHRoYXQgYXQgbGVhc3QgY2VydGFpbiB0YWJsZXMgd2lsbCBo YXZlIHRvCj4gYmUgbW9kaWZpZWQvbWFuZ2xlZCBiZWZvcmUgYmVpbmcgcHJlc2VudGVkIHRvIHRo ZSBndWVzdDoKPgo+ICAqIE1BRFQ6IHRoZSBudW1iZXIgb2YgbG9jYWwgQVBJQyBlbnRyaWVzIG5l ZWQgdG8gYmUgZml4ZWQgdG8gbWF0Y2ggdGhlIG51bWJlcgo+ICAgICAgICAgIG9mIHZDUFVzIGF2 YWlsYWJsZSB0byB0aGUgZ3Vlc3QuIFRoZSBhZGRyZXNzIG9mIHRoZSBJTyBBUElDKHMpIGFsc28K PiAgICAgICAgICBuZWVkIHRvIGJlIGZpeGVkIGluIG9yZGVyIHRvIG1hdGNoIHRoZSBlbXVsYXRl ZCBvbmVzIHRoYXQgd2UgYXJlIGdvaW5nCj4gICAgICAgICAgdG8gcHJvdmlkZS4KPgo+ICAqIERT RFQ6IGNlcnRhaW4gZGV2aWNlcyByZXBvcnRlZCBpbiB0aGUgRFNEVCBtYXkgbm90IGJlIGF2YWls YWJsZSB0byB0aGUgZ3Vlc3QsCj4gICAgICAgICAgYnV0IHNpbmNlIHRoZSBEU0RUIGlzIGEgcnVu LXRpbWUgZ2VuZXJhdGVkIHRhYmxlIHdlIGNhbm5vdCBmaXggaXQuIEluCj4gICAgICAgICAgb3Jk ZXIgdG8gY29wZSB3aXRoIHRoaXMsIGEgU1RBTyB0YWJsZSB3aWxsIGJlIHByb3ZpZGVkIHRoYXQg c2hvdWxkCj4gICAgICAgICAgYmUgYWJsZSB0byBzaWduYWwgd2hpY2ggZGV2aWNlcyBhcmUgbm90 IGF2YWlsYWJsZSB0byB0aGUgaGFyZHdhcmUKPiAgICAgICAgICBkb21haW4uIFRoaXMgaXMgaW4g bGluZSB3aXRoIHRoZSBYZW4vQUNQSSBpbXBsZW1lbnRhdGlvbiBmb3IgQVJNLgo+Cj4gICogTVBT VCwgUE1UVCwgU0JUVCBhbmQgU1JBVDogd29uJ3QgYmUgaW5pdGlhbGx5IHByZXNlbnRlZCB0byB0 aGUgZ3Vlc3QsIHVudGlsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2UgZ2V0IG91 ciBhY3QgdG9nZXRoZXIgb24gdGhlIHZOVU1BIHN0dWZmLgoKYW5kIFNMSVQuCgo+Cj4gTkI6IHRo ZXJlIGFyZSBjb3JuZXIgY2FzZXMgdGhhdCBJJ20gbm90IHN1cmUgaG93IHRvIHNvbHZlIHByb3Bl cmx5LiBDdXJyZW50bHkKPiB0aGUgaGFyZHdhcmUgZG9tYWluIGhhcyBzb21lICdoYWNrcycgcmVn YXJkaW5nIEFDUEkgYW5kIFhlbi4gQXQgbGVhc3QgSSdtIGF3YXJlCj4gb2YgdGhlIGZvbGxvd2lu ZzoKPgo+ICAqIDEuIFJlcG9ydGluZyBDUFUgUE0gaW5mbyBiYWNrIHRvIFhlbjogdGhpcyBjb21l cyBmcm9tIHRoZSBEU0RUIHRhYmxlLCBhbmQKPiAgICBzaW5jZSB0aGlzIHRhYmxlIGlzIG9ubHkg YXZhaWxhYmxlIHRvIHRoZSBoYXJkd2FyZSBkb21haW4gaXQgaGFzIHRvIHJlcG9ydAo+ICAgIHRo ZSBQTSBpbmZvIGJhY2sgdG8gWGVuIHNvIHRoYXQgWGVuIGNhbiBwZXJmb3JtIHByb3BlciBQTS4K PiAgKiAyLiBEb2luZyBwcm9wZXIgc2h1dGRvd24gKFM1KSByZXF1aXJlcyB0aGUgdXNhZ2Ugb2Yg YSBoeXBlcmNhbGwsIHdoaWNoIGlzCj4gICAgbWl4ZWQgd2l0aCBuYXRpdmUgQUNQSUNBIGNvZGUg aW4gbW9zdCBPU2VzLiBUaGlzIGlzIGF3a3dhcmQgYW5kIHJlcXVpcmVzCj4gICAgdGhlIHVzYWdl IG9mIGhvb2tzIGludG8gQUNQSUNBIHdoaWNoIHdlIGhhdmUgbm90IHlldCBtYW5hZ2VkIHRvIHVw c3RyZWFtLgo+ICAqIDMuIFJlcG9ydGluZyB0aGUgUENJIGRldmljZXMgaXQgZmluZHMgdG8gdGhl IGh5cGVydmlzb3I6IHRoaXMgaXMgbm90IHZlcnkKPiAgICBpbnRydXNpdmUgaW4gZ2VuZXJhbCwg c28gSSdtIG5vdCB0aGF0IHB1c2hlZCB0byByZW1vdmUgaXQuIEl0J3MgZ2VuZXJhbGx5Cj4gICAg ZWFzeSBpbiBhbnkgT1MgdG8gYWRkIHNvbWUga2luZCBvZiBob29rIHRoYXQncyBleGVjdXRlZCBl dmVyeSB0aW1lIGEgUENJCj4gICAgZGV2aWNlIGlzIGRpc2NvdmVyZWQuCj4gICogNC4gUmVwb3J0 IFBDSSBtZW1vcnktbWFwcGVkIGNvbmZpZ3VyYXRpb24gYXJlYXMgdG8gWGVuOiBteSBvcGluaW9u IHJlZ2FyZGluZwo+ICAgIHRoaXMgb25lIGlzIHRoZSBzYW1lIGFzICgzKSwgaXQncyBub3QgcmVh bGx5IGludHJ1c2l2ZSBzbyBJJ20gbm90IHZlcnkKPiAgICBwdXNoZWQgdG8gcmVtb3ZlIGl0Lgo+ Cj4gSSB3b3VsZCBpZGVhbGx5IGxpa2UgdG8gZ2V0IHJpZCBvZiAoMikgaW4gdGhlIGxpc3QgYWJv dmUsIHNpbmNlIEknbSBxdWl0ZSBzdXJlCj4gd2UgYXJlIG5ldmVyIGdvaW5nIHRvIGJlIGFibGUg dG8gbWVyZ2UgdGhlIG5lZWRlZCBob29rcyBpbnRvIEFDUElDQS4gQUZBSUNUIFhlbgo+IHNob3Vs ZCBiZSBhYmxlIHRvIHBhcnNlIHRoZSBGQURUIHRhYmxlIGFuZCBmaW5kIHRoZSBhZGRyZXNzIG9m IHRoZSBQTTFhIGFuZAo+IFBNMWIgY29udHJvbCByZWdpc3RlcnMgYW5kIHRyYXAgb24gYWNjZXNz LgoKRG9pbmcgdGhpcyB3b3VsZCByZXF1aXJlIG1vcmUgb2YgKDEpLCBhcyB0aGUgZXhhY3QgdmFs dWVzIHdyaXR0ZW4gdG8gdGhlClBNMWEgYW5kIFBNMWIgY29udHJvbCByZWdpc3RlcnMgYXJlIHNw ZWNpZmllZCBpbiB0aGUgRFNEVCwgaWlyYy4KCj4KPiAoMSkgaXMgYWxzbyBxdWl0ZSBuYXN0eSwg YnV0IEkgZG9uJ3Qgc2VlIGFueSBwb3NzaWJsZSB3YXkgdG8gZ2V0IHJpZCBvZiBpdC4KClNhZGx5 IG5vdC4KCj4KPiBBUCBzdGFydHVwCj4gLS0tLS0tLS0tLQo+Cj4gQVAgc3RhcnR1cCBpcyBwZXJm b3JtZWQgdXNpbmcgaHlwZXJjYWxscy4gVGhlIGZvbGxvd2luZyBWQ1BVIG9wZXJhdGlvbnMKPiBh cmUgdXNlZCBpbiBvcmRlciB0byBicmluZyB1cCBzZWNvbmRhcnkgdkNQVXM6Cj4KPiAgKiBWQ1BV T1BfaW5pdGlhbGlzZSBpcyB1c2VkIHRvIHNldCB0aGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgdkNQ VS4gVGhlCj4gICAgYXJndW1lbnQgcGFzc2VkIHRvIHRoZSBoeXBlcmNhbGwgbXVzdCBiZSBvZiB0 aGUgdHlwZSB2Y3B1X2h2bV9jb250ZXh0Lgo+ICAgIFNlZSBwdWJsaWMvaHZtL2h2bV92Y3B1Lmgg Zm9yIHRoZSBsYXlvdXQgb2YgdGhlIHN0cnVjdHVyZS4gTm90ZSB0aGF0Cj4gICAgdGhpcyBoeXBl cmNhbGwgYWxsb3dzIHN0YXJ0aW5nIHRoZSB2Q1BVIGluIHNldmVyYWwgbW9kZXMgKDE2LzMyLzY0 Yml0cyksCj4gICAgcmVnYXJkbGVzcyBvZiB0aGUgbW9kZSB0aGUgQlNQIGlzIGN1cnJlbnRseSBy dW5uaW5nIG9uLgo+Cj4gICogVkNQVU9QX3VwIGlzIHVzZWQgdG8gbGF1bmNoIHRoZSB2Q1BVIG9u Y2UgdGhlIGluaXRpYWwgc3RhdGUgaGFzIGJlZW4KPiAgICBzZXQgdXNpbmcgVkNQVU9QX2luaXRp YWxpc2UuCj4KPiAgKiBWQ1BVT1BfZG93biBpcyB1c2VkIHRvIGJyaW5nIGRvd24gYSB2Q1BVLgo+ Cj4gICogVkNQVU9QX2lzX3VwIGlzIHVzZWQgdG8gc2NhbiB0aGUgbnVtYmVyIG9mIGF2YWlsYWJs ZSB2Q1BVcy4KPgo+IEFkZGl0aW9uYWxseSwgaWYgYSBsb2NhbCBBUElDIGlzIGF2YWlsYWJsZSBD UFUgYnJpbmd1cCBjYW4gYWxzbyBiZSBwZXJmb3JtZWQKPiB1c2luZyB0aGUgaGFyZHdhcmUgbmF0 aXZlIEFQIHN0YXJ0dXAgc2VxdWVuY2UgKElQSXMpLiBJbiB0aGlzIGNhc2UgdGhlCj4gaHlwZXJj YWxsIGludGVyZmFjZSB3aWxsIHN0aWxsIGJlIHByb3ZpZGVkLCBhcyBhIGZhc3RlciBhbmQgbW9y ZSBjb252ZW5pZW50Cj4gd2F5IG9mIHN0YXJ0aW5nIEFQcy4KCisxCgp+QW5kcmV3CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1k ZXZlbAo=