From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH ARM v5 19/20] mini-os: initial ARM support Date: Sat, 28 Jun 2014 19:31:42 +0100 Message-ID: <53AF0A0E.6000504@linaro.org> References: <1403782117-15125-1-git-send-email-talex5@gmail.com> <1403782117-15125-20-git-send-email-talex5@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 1X0xPf-0001KZ-6L for xen-devel@lists.xenproject.org; Sat, 28 Jun 2014 18:31:47 +0000 Received: by mail-we0-f178.google.com with SMTP id x48so6480366wes.37 for ; Sat, 28 Jun 2014 11:31:44 -0700 (PDT) In-Reply-To: <1403782117-15125-20-git-send-email-talex5@gmail.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: Thomas Leonard , xen-devel@lists.xenproject.org Cc: samuel.thibault@ens-lyon.org, stefano.stabellini@eu.citrix.com, Dave.Scott@eu.citrix.com, anil@recoil.org List-Id: xen-devel@lists.xenproject.org CgpPbiAyNi8wNi8xNCAxMjoyOCwgVGhvbWFzIExlb25hcmQgd3JvdGU6Cj4gT24gQVJNLCBNaW5p LU9TIHdpbGwgYm9vdCBhbmQgZGlzcGxheSBzb21lIG91dHB1dCBvbiB0aGUgY29uc29sZS4KPiBU ZXN0ZWQgd2l0aDoKPgo+IG1ha2UgWEVOX1RBUkdFVF9BUkNIPWFybTMyIENST1NTX0NPTVBJTEU9 YXJtLWxpbnV4LWdudWVhYmloZi0gXAo+IAlDT05GSUdfVEVTVD15IENPTkZJR19TVEFSVF9ORVRX T1JLPW4gQ09ORklHX0JMS0ZST05UPW4gXAo+IAlDT05GSUdfTkVURlJPTlQ9biBDT05GSUdfRkJG Uk9OVD1uIENPTkZJR19LQkRGUk9OVD1uIFwKPiAJQ09ORklHX0NPTlNGUk9OVD1uIENPTkZJR19Y Qz1uIC1qNAo+Cj4gU2lnbmVkLW9mZi1ieTogS2FyaW0gQWxsYWggQWhtZWQgPGthcmltLmFsbGFo LmFobWVkQGdtYWlsLmNvbT4KPiBbdGFsZXg1QGdtYWlsLmNvbTogbWFkZSB4ODZfNjQgc3VwcG9y dCB3b3JrIGFnYWluXQo+IFt0YWxleDVAZ21haWwuY29tOiBzcGxpdCBpbnRvIG11bHRpcGxlIHBh dGNoZXNdCj4gW3RhbGV4NUBnbWFpbC5jb206IHJlLWVuYWJsZWQgZm9yY2VfZXZ0Y2huX2NhbGxi YWNrXQo+IFt0YWxleDVAZ21haWwuY29tOiBlbmFibGUgcmVndWxhciBjb25zb2xlXQo+IFt0YWxl eDVAZ21haWwuY29tOiBmaXhlZCBpbml0aWFsaXNhdGlvbiBjb2RlOgo+IC0gQ29uZmlndXJlIHdy aXRlLWJhY2sgY2FjaGluZyBpbiBwYWdlIHRhYmxlLiBUaGlzIGlzIG5lZWRlZCBmb3IKPiAgICBy ZWxpYWJsZSBoeXBlcmNhbGxzIHRvIFhlbiAodGhhbmtzIHRvIEp1bGllbiBHcmFsbCkuCj4gLSBV c2UgImNsaWVudCBtb2RlIiBmb3IgYWNjZXNzIGNvbnRyb2wgKGRvbWFpbnMgYXJlIGRlcHJlY2F0 ZWQsCj4gICAgYWNjb3JkaW5nIHRvIEFSTSBDb3J0ZXgtQSBTZXJpZXMgUHJvZ3JhbW1lcuKAmXMg R3VpZGUgdmVyc2lvbiA0LjAsCj4gICAgc2VjdGlvbiA5LjYuNCkuCj4gLSBFbmFibGUgbW9yZSBT Q1RMUiBmZWF0dXJlcyAoaWNhY2hlLCBicmFuY2ggcHJlZGljdGlvbildCj4gW3RhbGV4NUBnbWFp bC5jb206IHVzZSBWaXJ0dWFsIENvdW50IHJlZ2lzdGVyIGZvciBtb25vdG9uaWMgdGltZV0KPiBb dGFsZXg1QGdtYWlsLmNvbTogZml4ZWQgSFlQRVJWSVNPUl9zaHV0ZG93bl0KPiBbdGFsZXg1QGdt YWlsLmNvbTogZ2V0IHhlbnN0b3JlIGRldGFpbHMgZnJvbSBoeXBlcnZpc29yXQo+IFt0YWxleDVA Z21haWwuY29tOiB1c2UgR0NDIGltcGxlbWVudGF0aW9uIG9mIGRpdmlzaW9uXQo+IFt0YWxleDVA Z21haWwuY29tOiBjbGVhbmVkIHVwIGludGVycnVwdCBoYW5kbGVycyBhbmQgdGhyZWFkaW5nXQo+ IFt0YWxleDVAZ21haWwuY29tOiBjYWxsIGV4aXRfdGhyZWFkIHdoZW4gYSB0aHJlYWQgcmV0dXJu c10KPiBbdGFsZXg1QGdtYWlsLmNvbTogaW1wbGVtZW50ZWQgYmxvY2tfZG9tYWluIGZvciBBUk1d Cj4gW3RhbGV4NUBnbWFpbC5jb206IGZpeGVkIGhhbmcgd2hlbiBlbmFibGluZyBpbnRlcnJ1cHRz XQo+IFt0YWxleDVAZ21haWwuY29tOiBhZGRlZCAtbWFyY2g9YXJtdjctYSB0byBmbGFnc10KPiBb dGFsZXg1QGdtYWlsLmNvbTogQ0xSRVggYWZ0ZXIgaGFuZGxpbmcgSVJRc10KPiBbdGFsZXg1QGdt YWlsLmNvbTogdW5iaW5kIGRlYnVnIHBvcnQgYXQgc2h1dGRvd25dCj4gW3RhbGV4NUBnbWFpbC5j b206IGFsbG93IHVuYWxpZ25lZCBhY2Nlc3Nlc10KPiBbdGFsZXg1QGdtYWlsLmNvbTogZml4IHpJ bWFnZSBoZWFkZXIgZm9yIFhTQS05NV0KPiBbdGFsZXg1QGdtYWlsLmNvbTogZ2V0IFJBTSBiYXNl IGFuZCBzaXplIGZyb20gdGhlIEZEVF0KPiBbdGFsZXg1QGdtYWlsLmNvbTogZ2V0IEdJQyBhZGRy ZXNzZXMgZnJvbSBGRFRdCj4gW3RhbGV4NUBnbWFpbC5jb206IGFkZGVkIEFSTSBncmFudCB0YWJs ZSBpbml0aWFsaXNhdGlvbl0KPiBbdGFsZXg1QGdtYWlsLmNvbTogYWRkZWQgbWlzc2luZyBjb3B5 cmlnaHQgaGVhZGVyIHRvIGh5cGVyY2FsbHMzMi5TXQo+IFt0YWxleDVAZ21haWwuY29tOiBtb3Zl ZCBHSUMgZHJpdmVyIHRvIGFybSBkaXJlY3RvcnldCj4gW3RhbGV4NUBnbWFpbC5jb206IGZpeGVz IHN1Z2dlc3RlZCBieSBKdWxpZW4gR3JhbGw6Cj4gLSBSZW1vdmVkIHVubmVjZXNzYXJ5IGlzYi4K PiAtIFJlbmFtZWQgR0lDRF9QUklPUklUWSB0byBHSUNEX0lQUklPUklUWVIuCj4gLSBDaGFuZ2Ug SVJRIG51bWJlciB0eXBlIGZyb20gdW5zaWduZWQgY2hhciB0byBpbnQuCj4gLSBBZGRlZCB2b2xh dGlsZSB0byB7c2V0LGNsZWFyfV9iaXRfbm9uX2F0b21pYy4KPiAtIEZpeGVkIHNvbWUgY29tbWVu dHMuCj4gLSBDaGVjayBjb21wYXRpYmxlIHByb3BlcnRpZXMgaW4gRFRCLl0KPiBbdGFsZXg1QGdt YWlsLmNvbTogbWFkZSBpbWFnZSByZWxvY2F0YWJsZV0KPiBbdGFsZXg1QGdtYWlsLmNvbTogYWRk ZWQgbWZuX3RvX3BmbiBhbmQgcGZuX3RvX21mbl0KCklITU8gYWxsIHRoZXNlIGNoYW5nZXMgZG9l c24ndCBiZWxvbmcgdG8gdGhlIGNvbW1pdCBtZXNzYWdlLCBpLmUgc2hvdWxkIApub3QgYXBwZWFy IGluIHRoZSBjb21taXQgbWVzc2FnZSB3aGVuIElhbiB3aWxsIGFwcGx5IHlvdXIgY29tbWl0IG1l c3NhZ2UuCgpJIHdvdWxkIG1vdmUgdGhlbSBpbiBhIGNoYW5nZWxvZy4gWW91IGNhbiBzZXBhcmF0 ZSB0aGUgY29tbWl0IG1lc3NhZ2UgCmFuZCB0aGUgY2hhbmdlbG9nIGJ5IC0tLSBhbmQgYSBuZXds aW5lLiBFdmVyeXRoaW5nIGFmdGVyIHRoZSAtLS0gd2lsbCBiZSAKcmVtb3ZlZCBieSBnaXQgYW0u Cgo+IFNpZ25lZC1vZmYtYnk6IFRob21hcyBMZW9uYXJkIDx0YWxleDVAZ21haWwuY29tPgo+IC0t LQo+ICAgZXh0cmFzL21pbmktb3MvQVJNLVRPRE8udHh0ICAgICAgICAgICAgICB8ICAgNiArCj4g ICBleHRyYXMvbWluaS1vcy9Db25maWcubWsgICAgICAgICAgICAgICAgIHwgICAyICsKPiAgIGV4 dHJhcy9taW5pLW9zL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDkgKysKPiAgIGV4dHJh cy9taW5pLW9zL2FyY2gvYXJtL01ha2VmaWxlICAgICAgICAgfCAgMzIgKysrKwo+ICAgZXh0cmFz L21pbmktb3MvYXJjaC9hcm0vYXJjaC5tayAgICAgICAgICB8ICAgNyArCj4gICBleHRyYXMvbWlu aS1vcy9hcmNoL2FybS9hcm0zMi5TICAgICAgICAgIHwgMjY2ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKPiAgIGV4dHJhcy9taW5pLW9zL2FyY2gvYXJtL2V2ZW50cy5jICAgICAgICAg fCAgMzAgKysrKwo+ICAgZXh0cmFzL21pbmktb3MvYXJjaC9hcm0vZ2ljLmMgICAgICAgICAgICB8 IDIyMiArKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgZXh0cmFzL21pbmktb3MvYXJjaC9h cm0vaHlwZXJjYWxsczMyLlMgICB8ICA3NSArKysrKysrKysKPiAgIGV4dHJhcy9taW5pLW9zL2Fy Y2gvYXJtL21pbmlvcy1hcm0zMi5sZHMgfCAgNzUgKysrKysrKysrCj4gICBleHRyYXMvbWluaS1v cy9hcmNoL2FybS9tbS5jICAgICAgICAgICAgIHwgMTM0ICsrKysrKysrKysrKysrKysKPiAgIGV4 dHJhcy9taW5pLW9zL2FyY2gvYXJtL3NjaGVkLmMgICAgICAgICAgfCAgMzcgKysrKysKPiAgIGV4 dHJhcy9taW5pLW9zL2FyY2gvYXJtL3NldHVwLmMgICAgICAgICAgfCAxMTYgKysrKysrKysrKysr KysKPiAgIGV4dHJhcy9taW5pLW9zL2FyY2gvYXJtL3RpbWUuYyAgICAgICAgICAgfCAyMDIgKysr KysrKysrKysrKysrKysrKysrKysKPiAgIGV4dHJhcy9taW5pLW9zL2tlcm5lbC5jICAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KPiAgIDE1IGZpbGVzIGNoYW5nZWQsIDEyMTQgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGV4dHJhcy9taW5pLW9zL0FS TS1UT0RPLnR4dAo+ICAgY3JlYXRlIG1vZGUgMTAwNzU1IGV4dHJhcy9taW5pLW9zL2FyY2gvYXJt L01ha2VmaWxlCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZXh0cmFzL21pbmktb3MvYXJjaC9hcm0v YXJjaC5tawo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGV4dHJhcy9taW5pLW9zL2FyY2gvYXJtL2Fy bTMyLlMKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBleHRyYXMvbWluaS1vcy9hcmNoL2FybS9ldmVu dHMuYwo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGV4dHJhcy9taW5pLW9zL2FyY2gvYXJtL2dpYy5j Cj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZXh0cmFzL21pbmktb3MvYXJjaC9hcm0vaHlwZXJjYWxs czMyLlMKPiAgIGNyZWF0ZSBtb2RlIDEwMDc1NSBleHRyYXMvbWluaS1vcy9hcmNoL2FybS9taW5p b3MtYXJtMzIubGRzCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZXh0cmFzL21pbmktb3MvYXJjaC9h cm0vbW0uYwo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGV4dHJhcy9taW5pLW9zL2FyY2gvYXJtL3Nj aGVkLmMKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBleHRyYXMvbWluaS1vcy9hcmNoL2FybS9zZXR1 cC5jCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZXh0cmFzL21pbmktb3MvYXJjaC9hcm0vdGltZS5j Cj4KPiBkaWZmIC0tZ2l0IGEvZXh0cmFzL21pbmktb3MvQ29uZmlnLm1rIGIvZXh0cmFzL21pbmkt b3MvQ29uZmlnLm1rCj4gaW5kZXggZDYxODc3Yi4uNGVjZGU1NCAxMDA2NDQKPiAtLS0gYS9leHRy YXMvbWluaS1vcy9Db25maWcubWsKPiArKysgYi9leHRyYXMvbWluaS1vcy9Db25maWcubWsKPiBA QCAtMTIsNiArMTIsOCBAQCBleHBvcnQgWEVOX0lOVEVSRkFDRV9WRVJTSU9OCj4gICAjIElmIG5v dCB4ODYgdGhlbiB1c2UgJChYRU5fVEFSR0VUX0FSQ0gpCj4gICBpZmVxICgkKGZpbmRzdHJpbmcg eDg2XywkKFhFTl9UQVJHRVRfQVJDSCkpLHg4Nl8pCj4gICBUQVJHRVRfQVJDSF9GQU0gPSB4ODYK PiArZWxzZSBpZmVxICgkKGZpbmRzdHJpbmcgYXJtLCQoWEVOX1RBUkdFVF9BUkNIKSksYXJtKQo+ ICtUQVJHRVRfQVJDSF9GQU0gPSBhcm0KPiAgIGVsc2UKPiAgIFRBUkdFVF9BUkNIX0ZBTSA9ICQo WEVOX1RBUkdFVF9BUkNIKQo+ICAgZW5kaWYKPiBkaWZmIC0tZ2l0IGEvZXh0cmFzL21pbmktb3Mv TWFrZWZpbGUgYi9leHRyYXMvbWluaS1vcy9NYWtlZmlsZQo+IGluZGV4IDkzMWNkMDUuLjAxZDhh ZjAgMTAwNjQ0Cj4gLS0tIGEvZXh0cmFzL21pbmktb3MvTWFrZWZpbGUKPiArKysgYi9leHRyYXMv bWluaS1vcy9NYWtlZmlsZQo+IEBAIC03OCw2ICs3OCw5IEBAIFRBUkdFVCA6PSBtaW5pLW9zCj4g ICBTVUJESVJTIDo9IGxpYiB4ZW5idXMgY29uc29sZQo+Cj4gICBpZmVxICgkKFhFTl9UQVJHRVRf QVJDSCksYXJtMzIpCj4gKyMgTmVlZCBsaWJnY2MuYSBmb3IgZGl2aXNpb24gaGVscGVycwo+ICtM RExJQlMgKz0gYCQoQ0MpIC1wcmludC1saWJnY2MtZmlsZS1uYW1lYAoKT09JLCBob3cgbXVjaCBj b2RlIGRvZXMgYWRkIGxpYmdjYyBmb3IgdGhlIGRpdmlzaW9uIGhlbHBlcnM/Cgo+IGRpZmYgLS1n aXQgYS9leHRyYXMvbWluaS1vcy9hcmNoL2FybS9NYWtlZmlsZSBiL2V4dHJhcy9taW5pLW9zL2Fy Y2gvYXJtL01ha2VmaWxlCj4gbmV3IGZpbGUgbW9kZSAxMDA3NTUKPiBpbmRleCAwMDAwMDAwLi44 Yjc4NjUxCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2V4dHJhcy9taW5pLW9zL2FyY2gvYXJtL01h a2VmaWxlCj4gQEAgLTAsMCArMSwzMiBAQAo+ICsjCj4gKyMgQVJNIGFyY2hpdGVjdHVyZSBzcGVj aWZpYyBtYWtlZmlsZXMuCj4gKyMKPiArCj4gK1hFTl9ST09UID0gJChDVVJESVIpLy4uLy4uLy4u Ly4uCj4gK2luY2x1ZGUgJChYRU5fUk9PVCkvQ29uZmlnLm1rCj4gK2luY2x1ZGUgLi4vLi4vQ29u ZmlnLm1rCj4gKwo+ICsjIGluY2x1ZGUgYXJjaC5tayBoYXMgdG8gYmUgYmVmb3JlIG1pbmlvcy5t ayEKPiArCj4gK2luY2x1ZGUgYXJjaC5tawo+ICtpbmNsdWRlIC4uLy4uL21pbmlvcy5tawo+ICsK PiArIyBTb3VyY2VzIGhlcmUgYXJlIGFsbCAqLmMgKHdpdGhvdXQgJChYRU5fVEFSR0VUX0FSQ0gp LlMpCj4gKyMgVGhpcyBpcyBoYW5kbGVkIGluICQoSEVBRF9BUkNIX09CSikKPiArQVJDSF9TUkNT IDo9ICQod2lsZGNhcmQgKi5jKQo+ICsKPiArIyBUaGUgb2JqZWN0cyBidWlsdCBmcm9tIHRoZSBz b3VyY2VzLgo+ICtBUkNIX09CSlMgOj0gJChwYXRzdWJzdCAlLmMsJChPQkpfRElSKS8lLm8sJChB UkNIX1NSQ1MpKQo+ICsKPiArQVJDSF9PQkpTICs9IGh5cGVyY2FsbHMzMi5vCj4gKwo+ICthbGw6 ICQoT0JKX0RJUikvJChBUkNIX0xJQikKPiArCj4gKyMgJChIRUFEX0FSQ0hfT0JKKSBpcyBvbmx5 IGJ1aWx0IGhlcmUsIG5lZWRlZCBvbiBsaW5raW5nCj4gKyMgaW4gLi4vLi4vTWFrZWZpbGUuCj4g KyQoT0JKX0RJUikvJChBUkNIX0xJQik6ICQoQVJDSF9PQkpTKSAkKE9CSl9ESVIpLyQoSEVBRF9B UkNIX09CSikKPiArCSQoQVIpIHJ2ICQoT0JKX0RJUikvJChBUkNIX0xJQikgJChBUkNIX09CSlMp Cj4gKwo+ICtjbGVhbjoKPiArCXJtIC1mICQoT0JKX0RJUikvJChBUkNIX0xJQikgJChBUkNIX09C SlMpICQoT0JKX0RJUikvJChIRUFEX0FSQ0hfT0JKKQo+ICsKPiBkaWZmIC0tZ2l0IGEvZXh0cmFz L21pbmktb3MvYXJjaC9hcm0vYXJjaC5tayBiL2V4dHJhcy9taW5pLW9zL2FyY2gvYXJtL2FyY2gu bWsKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmFiMjBkOTkKPiAtLS0g L2Rldi9udWxsCj4gKysrIGIvZXh0cmFzL21pbmktb3MvYXJjaC9hcm0vYXJjaC5tawo+IEBAIC0w LDAgKzEsNyBAQAo+ICtpZmVxICgkKFhFTl9UQVJHRVRfQVJDSCksYXJtMzIpCj4gK0RFRl9BU0ZM QUdTICs9IC1tYXJjaD1hcm12Ny1hCj4gK0FSQ0hfQ0ZMQUdTICA6PSAtbWFyY2g9YXJtdjctYSAt bWFybSAtZm1zLWV4dGVuc2lvbnMgLURfX2FybV9fIC1EWEVOX0hBVkVfUFZfR1VFU1RfRU5UUlkg Iy1EQ1BVX0VYQ0xVU0lWRV9MRFNUCj4gK0VYVFJBX0lOQyArPSAkKFRBUkdFVF9BUkNIX0ZBTSkv JChYRU5fVEFSR0VUX0FSQ0gpCj4gK0VYVFJBX1NSQyArPSBhcmNoLyQoRVhUUkFfSU5DKQo+ICtl bmRpZgo+ICsKPiBkaWZmIC0tZ2l0IGEvZXh0cmFzL21pbmktb3MvYXJjaC9hcm0vYXJtMzIuUyBi L2V4dHJhcy9taW5pLW9zL2FyY2gvYXJtL2FybTMyLlMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ IGluZGV4IDAwMDAwMDAuLmRlNzRlZDkKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZXh0cmFzL21p bmktb3MvYXJjaC9hcm0vYXJtMzIuUwo+IEBAIC0wLDAgKzEsMjY2IEBACj4gK0AgVmlydHVhbCBh ZGRyZXNzIG9mIHRoZSBzdGFydCBvZiBSQU0gKGFueSB2YWx1ZSB3aWxsIGRvLCBidXQgaXQgbXVz dCBiZQo+ICtAIHNlY3Rpb24tYWxpZ25lZCkuIFVwZGF0ZSB0aGUgbGRzIHNjcmlwdCBpZiBjaGFu Z2VkLgo+ICsjZGVmaW5lIFZJUlRfQkFTRSAweDQwMDAwMAo+ICsKPiArQCBPZmZzZXQgb2YgdGhl IGtlcm5lbCB3aXRoaW4gdGhlIFJBTS4gVGhpcyBpcyBhIHpJbWFnZSBjb252ZW50aW9uIHdoaWNo IHdlCj4gK0AgcmVseSBvbi4KPiArI2RlZmluZSBaSU1BR0VfS0VSTkVMX09GRlNFVCAweDgwMDAK CkhtbW0uLi4gdGhpcyBpcyBub3QgYSB6SW1hZ2UgY29udmVudGlvbi4uLiBJSVJDIExpbnV4IGlz IHVzaW5nIHRoaXMgCm9mZnNldCB0byBoYXZlIGVub3VnaCBzcGFjZSB0byBjcmVhdGUgc3RhcnR1 cCBwYWdlIHRhYmxlIGR1cmluZyBib290LgoKVGhlIExpbnV4IHpJbWFnZSBpcyBhYmxlIHRvIHJl bG9jYXRlIGl0c2VsZiBpbiB0aGUgbWVtb3J5IHRvIHJlc3BlY3QgCnRoaXMgY29udmVudGlvbi4g QnV0IHRoZSB6SW1hZ2UgaXRzZWxmIGNhbiBiZSBsb2FkZWQgYW55d2hlcmUgaW4gdGhlIG1lbW9y eS4KCkJ5IGxvb2tpbmcgdG8geW91ciBjb2RlIGJlbG93IHlvdXIgYXJlIHJlbHlpbmcgdGhhdCB0 aGUga2VybmVsIHdpbGwgYmUgCmxvYWRlZCBhdCAweFhYWFg4MDAwIHdoaWNoIGlzIGluY29ycmVj dC4gVGhpcyBvZmZzZXQgaXMgb2RkIGFuZCBtYWtlIApvdGhlciBrZXJuZWwgKHN1Y2ggYXMgRnJl ZUJTRCkgcmVxdWlyaW5nIHRoZSBzYW1lIHRyaWNrIHdoaWNoIGlzIG5vdCAKcGFydCBvZiB0aGUg TGludXggYm9vdCBwcm90b2NvbC4KCkkgcGxhbiB0byBzZW5kIGEgcGF0Y2ggdG8gcmVxdWlyZSB0 aGUgc3RhcnQgYWRkcmVzcyB0byBiZSAyTUIgYWxpZ25lZCwgCnNvIGtlcm5lbHMgd2lsbCBiZSBh YmxlIHRvIHVzZSAyTUIgKGZvciBMUEFFKSBhbmQgMU1CIHNlY3Rpb24gZm9yIHRoZXJlIAplYXJs eSBwYWdlIHRhYmxlLgoKSWYgdGhlIGtlcm5lbCB3YW50cyBhbm90aGVyIGFsaWdubWVudCwgdGhl biB5b3Ugd2lsbCBoYXZlIHRvIHJlbG9jYXRlIAp5b3Vyc2VsZi4gRXZlbiB0aG91Z2ggaW4geW91 ciBjYXNlLCB5b3UgZG9uJ3QgbmVlZCB0aGlzIG9kZCAweFhYWFg4MDAwLgoKWy4uXQoKPiArCUAg RmlsbCBpbiB0aGUgd2hvbGUgdG9wLWxldmVsIHRyYW5zbGF0aW9uIHRhYmxlIChhdCBwYWdlX2Rp cikuCj4gKwlAIFBvcHVsYXRlIHRoZSB3aG9sZSBwYWdlZGlyIHdpdGggMU1CIHNlY3Rpb24gZGVz Y3JpcHRvcnMuCj4gKwo+ICsJbW92CXIxLCByNwkJCUAgcjEgLT4gZmlyc3Qgc2VjdGlvbiBlbnRy eQo+ICsJYWRkCXIzLCByMSwgIzQqNCoxMDI0CUAgbGltaXQgKDQgR0IgYWRkcmVzcyBzcGFjZSwg NCBieXRlIGVudHJpZXMpCj4gKwlvcnIJcjAsIHI4LCByOQkJQCByMCA9IGVudHJ5IG1hcHBpbmcg c2VjdGlvbiB6ZXJvIHRvIHN0YXJ0IG9mIHBoeXNpY2FsIFJBTQo+ICsxOgo+ICsJc3RyCXIwLCBb cjFdLCM0CQlAIHdyaXRlIHRoZSBzZWN0aW9uIGVudHJ5Cj4gKwlhZGQJcjAsIHIwLCAjMSA8PCAy MCAJQCBuZXh0IHBoeXNpY2FsIHBhZ2UgKHdyYXBzKQo+ICsJY21wCXIxLCByMwo+ICsJYm5lCTFi CgpJIHdvdWxkIGRvY3VtZW50IGEgYml0IG1vcmUgdGhpcyBwYXJ0LiBJdCB0b29rIG1lIGEgYml0 IG9mIHRpbWUgdG8gCnVuZGVyc3RhbmQgdGhhdCB5b3UgbWFwcGluZyB0aGUgd2hvbGUgYWRkcmVz cyBzcGFjZSBpbiBhbiBvZGQgbWFubmVyLgoKV2hpbGUgaXQncyBmaW5lIGZvciBhIGZpcnN0IHZl cnNpb24gb2YgTWluaS1PUyBzdXBwb3J0IGZvciBBUk0uIEl0IHRoaW5rIAphdCBsb25nIHRlcm0g eW91IHdhbnQgdG8gbWFwIG9ubHkgbmVjZXNzYXJ5IGJhbmsgcmFuay4gSXQgd2lsbCBiZSBlYXNp ZXIgCnRvIGNhdGNoIHByb2dyYW1taW5nIGVycm9yIGFuZCBhdm9pZCB0byB0cmFwIGluIHRoZSBo eXBlcnZpc29yIGJlY2F1c2UgCnRoZSBwaHlzaWNhbCBhZGRyZXNzIGRvZXNuJ3QgZXhpc3QuCgpG dXRoZXJtb3JlLCB0aGUgZGF0YSBhYm9ydCBzZW50IGJ5IHRoZSBoeXBlcnZpc29yIGlzIG9kZCAo ZGVidWcgc210aCkuCgo+ICsucHVzaHNlY3Rpb24gLmRhdGEKPiArX2RhdGE6Cj4gKy5hbGlnbgkx NAo+ICsuZ2xvYmwgcGFnZV9kaXIKPiArQCBFYWNoIHdvcmQgbWFwcyBvbmUgMU1CIHZpcnR1YWwg c2VjdGlvbiB0byBhIHBoeXNpY2FsIHNlY3Rpb24KPiArcGFnZV9kaXI6Cj4gKwkuZmlsbCAoNCox MDI0KSwgNCwgMHgwCj4gKwo+ICsuYWxpZ24gMTIKPiArLmdsb2JsIHNoYXJlZF9pbmZvX3BhZ2UK PiArc2hhcmVkX2luZm9fcGFnZToKPiArCS5maWxsICgxMDI0KSwgNCwgMHgwCj4gKwo+ICsuYWxp Z24gMwo+ICsuZ2xvYmwgc3RhY2sKPiArc3RhY2s6Cj4gKwkuZmlsbCAoNCoxMDI0KSwgNCwgMHgw Cj4gK3N0YWNrX2VuZDoKPiArCj4gKy5hbGlnbiAzCj4gK2lycXN0YWNrOgo+ICsJLmZpbGwgKDEw MjQpLCA0LCAweDAKPiAraXJxc3RhY2tfZW5kOgo+ICsKPiArLmdsb2JsIHBoeXNpY2FsX2FkZHJl c3Nfb2Zmc2V0Cj4gK3BoeXNpY2FsX2FkZHJlc3Nfb2Zmc2V0Ogo+ICsJLmxvbmcgCTAKPiArCj4g Ky5wb3BzZWN0aW9uCgpBbnkgcmVhc29uIHRvIGRlZmluZSB0aGVzZXMgdmFyaWFibGVzIGluIEFT TSByYXRoZXIgdGhhbiBDPwoKPiBkaWZmIC0tZ2l0IGEvZXh0cmFzL21pbmktb3MvYXJjaC9hcm0v Z2ljLmMgYi9leHRyYXMvbWluaS1vcy9hcmNoL2FybS9naWMuYwo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0Cj4gaW5kZXggMDAwMDAwMC4uNTY0MWViMAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9leHRy YXMvbWluaS1vcy9hcmNoL2FybS9naWMuYwo+IEBAIC0wLDAgKzEsMjIyIEBACj4gKy8vIEFSTSBH SUMgaW1wbGVtZW50YXRpb24KPiArCj4gKyNpbmNsdWRlIDxtaW5pLW9zL29zLmg+Cj4gKyNpbmNs dWRlIDxtaW5pLW9zL2h5cGVydmlzb3IuaD4KPiArI2luY2x1ZGUgPGxpYmZkdC5oPgo+ICsKPiAr Ly8jZGVmaW5lIFZHSUNfREVCVUcKPiArI2lmZGVmIFZHSUNfREVCVUcKPiArI2RlZmluZSBERUJV RyhfZiwgX2EuLi4pIFwKPiArICAgIERFQlVHKCJNSU5JX09TKGZpbGU9dmdpYy5jLCBsaW5lPSVk KSAiIF9mICwgX19MSU5FX18sICMjIF9hKQoKRGlkIHlvdSBpbnRlbmQgdG8gdXNlIHByaW50ayBo ZXJlPwoKWy4uXQoKPiArdm9pZCBnaWNfaW5pdCh2b2lkKSB7Cj4gKyAgICBnaWMuZ2ljZF9iYXNl ID0gTlVMTDsKPiArICAgIGludCBub2RlID0gMDsKPiArICAgIGludCBkZXB0aCA9IDA7Cj4gKyAg ICBmb3IgKDs7KQo+ICsgICAgewo+ICsgICAgICAgIG5vZGUgPSBmZHRfbmV4dF9ub2RlKGRldmlj ZV90cmVlLCBub2RlLCAmZGVwdGgpOwo+ICsgICAgICAgIGlmIChub2RlIDw9IDAgfHwgZGVwdGgg PCAwKQo+ICsgICAgICAgICAgICBicmVhazsKPiArCj4gKyAgICAgICAgaWYgKGZkdF9nZXRwcm9w KGRldmljZV90cmVlLCBub2RlLCAiaW50ZXJydXB0LWNvbnRyb2xsZXIiLCBOVUxMKSkgewo+ICsg ICAgICAgICAgICBpbnQgbGVuID0gMDsKPiArCj4gKyAgICAgICAgICAgIGlmIChmZHRfbm9kZV9j aGVja19jb21wYXRpYmxlKGRldmljZV90cmVlLCBub2RlLCAiYXJtLGNvcnRleC1hMTUtZ2ljIikg JiYKPiArICAgICAgICAgICAgICAgIGZkdF9ub2RlX2NoZWNrX2NvbXBhdGlibGUoZGV2aWNlX3Ry ZWUsIG5vZGUsICJhcm0sY29ydGV4LWE5LWdpYyIpICYmCgpJIGRvbid0IHRoaW5rIHRoaXMgY29t cGF0aWJsZSBpcyBuZWNlc3NhcnkuIENvcnRleCBBOSBkb2Vzbid0IHN1cHBvcnQgCnZpcnR1YWxp c2F0aW9uLgoKPiArICAgICAgICAgICAgICAgIGZkdF9ub2RlX2NoZWNrX2NvbXBhdGlibGUoZGV2 aWNlX3RyZWUsIG5vZGUsICJhcm0sY29ydGV4LWE3LWdpYyIpKSB7Cj4gKyAgICAgICAgICAgICAg ICBwcmludGsoIlNraXBwaW5nIGluY29tcGF0aWJsZSBpbnRlcnJ1cHQtY29udHJvbGxlciBub2Rl XG4iKTsKPiArICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICsgICAgICAgICAgICB9Cj4gKwo+ ICsgICAgICAgICAgICBjb25zdCB1aW50NjRfdCAqcmVnID0gZmR0X2dldHByb3AoZGV2aWNlX3Ry ZWUsIG5vZGUsICJyZWciLCAmbGVuKTsKPiArICAgICAgICAgICAgaWYgKHJlZyA9PSBOVUxMIHx8 IGxlbiAhPSAzMikgewoKQXMgYXNrZWQgb24gdGhlIHByZXZpb3VzIHZlcnNpb24sIGlmIHlvdSBw bGFuIHRvIGFzc3VtZSBzcGVjaWZpYyByYW5nZSAKc2l6ZSBmb3IgdGhlIHRpbWUtYmVpbmcsIHBs ZWFzZSBleHBsYWluIHRoZSAzMi4KCj4gKyAgICAgICAgICAgICAgICAvKiBUT0RPOiBzdXBwb3J0 IG90aGVyIGZvcm1hdHMgKi8KPiArICAgICAgICAgICAgICAgIHByaW50aygiQmFkICdyZWcnIHBy b3BlcnR5OiAlcCAlZFxuIiwgcmVnLCBsZW4pOwo+ICsgICAgICAgICAgICAgICAgY29udGludWU7 Cj4gKyAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgZ2ljLmdpY2RfYmFzZSA9IHRvX3ZpcnQo KGxvbmcpIGZkdDY0X3RvX2NwdShyZWdbMF0pKTsKPiArICAgICAgICAgICAgZ2ljLmdpY2NfYmFz ZSA9IHRvX3ZpcnQoKGxvbmcpIGZkdDY0X3RvX2NwdShyZWdbMl0pKTsKCkFGQUlVLCB5b3VyIGFy ZSBtYXBwaW5nIHRoZSBHSUMgcmVnaW9uIHdpdGggbm9ybWFsIGF0dHJpYnV0ZS4gV2l0aCB0aGlz IAphdHRyaWJ1dGUsIHRoZSBwcm9jZXNzb3IgbWF5IHJlb3JkZXIgdGhlIHdyaXRlIGluIHRoZSBk ZXZpY2UgbWVtb3J5LCAKcHJlbG9hZCBtZW1vcnksIGNhY2hpbmcuLi4uIFdoaWNoIGlzIGNvbXBs ZXRlbHkgd3JvbmcgaW4gdGhpcyBjYXNlLiBJJ20gCnNhIGJpdCBzdXJwcmlzZWQgdGhhdCBpdCB3 b3JrcyBjb3JyZWN0bHkuIFlvdSBoYXZlIHRvIG1hcCB0aG9zZXMgcmVnaW9ucyAKYXMgZGV2aWNl IG1lbW9yeS4KClsuLl0KCj4gZGlmZiAtLWdpdCBhL2V4dHJhcy9taW5pLW9zL2FyY2gvYXJtL2h5 cGVyY2FsbHMzMi5TIGIvZXh0cmFzL21pbmktb3MvYXJjaC9hcm0vaHlwZXJjYWxsczMyLlMKPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjBkNzY2MmQKPiAtLS0gL2Rldi9u dWxsCj4gKysrIGIvZXh0cmFzL21pbmktb3MvYXJjaC9hcm0vaHlwZXJjYWxsczMyLlMKClsuLl0K Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX21lbW9yeV9vcCAgICAgICAgICAgIDEyCj4gKyNkZWZp bmUgX19IWVBFUlZJU09SX3hlbl92ZXJzaW9uICAgICAgICAgIDE3Cj4gKyNkZWZpbmUgX19IWVBF UlZJU09SX2NvbnNvbGVfaW8gICAgICAgICAgIDE4Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2dy YW50X3RhYmxlX29wICAgICAgIDIwCj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3ZjcHVfb3AgICAg ICAgICAgICAgIDI0Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3hzbV9vcCAgICAgICAgICAgICAg IDI3Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3NjaGVkX29wICAgICAgICAgICAgIDI5Cj4gKyNk ZWZpbmUgX19IWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AgICAgIDMyCj4gKyNkZWZpbmUgX19I WVBFUlZJU09SX3BoeXNkZXZfb3AgICAgICAgICAgIDMzCj4gKyNkZWZpbmUgX19IWVBFUlZJU09S X2h2bV9vcCAgICAgICAgICAgICAgIDM0Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX3N5c2N0bCAg ICAgICAgICAgICAgIDM1Cj4gKyNkZWZpbmUgX19IWVBFUlZJU09SX2RvbWN0bCAgICAgICAgICAg ICAgIDM2CgpIbW1tLi4uIHdoeSBkbyB5b3UgaGFyZGNvZGUgdGhvc2UgbnVtYmVycyBoZXJlPyBD YW4ndCB5b3UgaW5jbHVkZSB0aGUgCmNvcnJlY3QgaGVhZGVyPwoKWy4uXQoKPiBkaWZmIC0tZ2l0 IGEvZXh0cmFzL21pbmktb3MvYXJjaC9hcm0vbWluaW9zLWFybTMyLmxkcyBiL2V4dHJhcy9taW5p LW9zL2FyY2gvYXJtL21pbmlvcy1hcm0zMi5sZHMKPiBuZXcgZmlsZSBtb2RlIDEwMDc1NQo+IGlu ZGV4IDAwMDAwMDAuLmIxOGNhNTUKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZXh0cmFzL21pbmkt b3MvYXJjaC9hcm0vbWluaW9zLWFybTMyLmxkcwo+IEBAIC0wLDAgKzEsNzUgQEAKPiArT1VUUFVU X0FSQ0goYXJtKQo+ICtFTlRSWShfc3RhcnQpCj4gK1NFQ1RJT05TCj4gK3sKPiArICAuID0gMHg0 MDgwMDA7CgpJIHdvdWxkIHVzZSB0aGUgcHJlcHJvY2Vzc29yIHRvIGF2b2lkIGhhcmRjb2Rpbmcg YWRkcmVzcyBoZXJlLiBJdCB3aWxsIApoZWxwIGxhdGVyIGlmIHNvbWVvbmUgd2FudHMgdG8gY2hh bmdlIHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIGtlcm5lbC4KClsuLl0KCj4gZGlmZiAtLWdp dCBhL2V4dHJhcy9taW5pLW9zL2FyY2gvYXJtL21tLmMgYi9leHRyYXMvbWluaS1vcy9hcmNoL2Fy bS9tbS5jCgoKWy4uXQoKPiArdm9pZCBhcmNoX2luaXRfbW0odW5zaWduZWQgbG9uZyAqc3RhcnRf cGZuX3AsIHVuc2lnbmVkIGxvbmcgKm1heF9wZm5fcCkKClsuLl0KCj4gKwo+ICsgICAgLyogWGVu IHdpbGwgYWx3YXlzIHByb3ZpZGUgdXMgYXQgbGVhc3Qgb25lIGJhbmsgb2YgbWVtb3J5Lgo+ICsg ICAgICogTWluaS1PUyB3aWxsIHVzZSB0aGUgZmlyc3QgYmFuayBmb3IgdGhlIHRpbWUtYmVpbmcu ICovCj4gKyAgICByZWdzID0gZmR0X2dldHByb3AoZGV2aWNlX3RyZWUsIG1lbW9yeSwgInJlZyIs ICZwcm9wX2xlbik7Cj4gKyAgICBpZiAocmVncyA9PSBOVUxMIHx8IHByb3BfbGVuICE9IDE2KSB7 CgpTYW1lIHJlbWFyayBhcyBpbiBnaWNfaW5pdC4gUGxlYXNlIGV4cGxhaW4gd2hlcmUgZG9lcyBj b21lIGZyb20gdGhlIDE2LgoKWy4uXQoKPiArICAgICAgICAvKiBUT0RPOiBzdXBwb3J0IG90aGVy IGZvcm1hdHMgKi8KPiArICAgICAgICBwcmludGsoIkJhZCAncmVnJyBwcm9wZXJ0eTogJXAgJWRc biIsIHJlZ3MsIHByb3BfbGVuKTsKPiArICAgICAgICBCVUcoKTsKPiArICAgIH0KPiArCj4gKyAg ICB1bnNpZ25lZCBpbnQgZW5kID0gKHVuc2lnbmVkIGludCkgJl9lbmQ7Cj4gKyAgICB1bnNpZ25l ZCBpbnQgbWVtX2Jhc2UgPSBmZHQ2NF90b19jcHUocmVnc1swXSk7Cj4gKyAgICB1bnNpZ25lZCBp bnQgbWVtX3NpemUgPSBmZHQ2NF90b19jcHUocmVnc1sxXSk7CgpJbiBnZW5lcmFsIGlmIHlvdSBo YXZlIHRvIGNhc3QvY3JlYXRlIGEgdmFyaWFibGUgdG8gY29udGFpbiBhIHBoeXNpY2FsIAphZGRy ZXNzLiBQbGVhc2UgbWFrZSBjcmVhdGUgYSB0eXBlIHBhZGRyX3QgYW5kIHVzZSBpdC4KCldoZW4g c29tZW9uZSB3aWxsIGltcGxlbWVudCBhcm02NCBzdXBwb3J0IGl0IHdpbGwgaGF2ZSBsZXNzIHRy b3VibGUgCmJlY2F1c2Ugd2UgY2FzdCBjb3JyZWN0bHkgY2FzdCB0aGUgdmFsdWUuCgpJSVJDLCB0 aGVyZSBpcyBmZXcgb3RoZXIgcGxhY2Ugd2hlcmUgaXQncyB0aGUgc2FtZSBwcm9ibGVtLgoKPiAr LyogR2V0IFhlbidzIHN1Z2dlc3RlZCBwaHlzaWNhbCBwYWdlIGFzc2lnbm1lbnRzIGZvciB0aGUg Z3JhbnQgdGFibGUuICovCj4gK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9nbnR0YWJfYmFzZSh2 b2lkKQo+ICt7Cj4gKyAgICBpbnQgaHlwZXJ2aXNvcjsKPiArICAgIGludCBsZW4gPSAwOwo+ICsg ICAgY29uc3QgdWludDY0X3QgKnJlZ3M7Cj4gKyAgICB1bnNpZ25lZCBpbnQgZ250dGFiX2Jhc2U7 Cj4gKwo+ICsgICAgaHlwZXJ2aXNvciA9IGZkdF9ub2RlX29mZnNldF9ieV9jb21wYXRpYmxlKGRl dmljZV90cmVlLCAtMSwgInhlbix4ZW4iKTsKPiArICAgIEJVR19PTihoeXBlcnZpc29yIDwgMCk7 Cj4gKwo+ICsgICAgcmVncyA9IGZkdF9nZXRwcm9wKGRldmljZV90cmVlLCBoeXBlcnZpc29yLCAi cmVnIiwgJmxlbik7Cj4gKyAgICBpZiAocmVncyA9PSBOVUxMIHx8IGxlbiAhPSAxNikgewo+ICsg ICAgICAgIC8qIFRPRE86IHN1cHBvcnQgb3RoZXIgZm9ybWF0cyAqLwoKUGxlYXNlIGV4cGxhaW4g d2h5IHRoZSAxNi4KCj4gKyAgICAgICAgcHJpbnRrKCJCYWQgJ3JlZycgcHJvcGVydHk6ICVwICVk XG4iLCByZWdzLCBsZW4pOwo+ICsgICAgICAgIEJVRygpOwo+ICsgICAgfQo+ICsKPiArICAgIGdu dHRhYl9iYXNlID0gZmR0NjRfdG9fY3B1KHJlZ3NbMF0pOwoKVGhpcyBsb29rIG9kZC4uLiB5b3Ug YXJlIHVzaW5nIHVuc2lnbmVkIGludCBmb3IgdGhlIHZhcmlhYmxlIGJ1dCB0aGUgCmZ1bmN0aW9u IGlzIHJldHVybiB1bnNpZ25lZCBsb25nLgoKPiArICAgIHByaW50aygiRkRUIHN1Z2dlc3RzIGdy YW50IHRhYmxlIGJhc2UgJWx4XG4iLCBnbnR0YWJfYmFzZSk7Cj4gKwo+ICsgICAgcmV0dXJuIGdu dHRhYl9iYXNlOwo+ICt9CgpbLi5dCgpSZWdhcmRzLAoKLS0gCkp1bGllbiBHcmFsbAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4t ZGV2ZWwK