From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pawel Moll Subject: Re: [PATCH] virtio-mmio: Devices parameter parsing Date: Wed, 16 Nov 2011 18:13:42 +0000 Message-ID: <1321467222.3137.417.camel@hornet.cambridge.arm.com> References: <1321365185-2928-1-git-send-email-pawel.moll@arm.com> <87sjlooq3m.fsf@rustcorp.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <87sjlooq3m.fsf@rustcorp.com.au> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: Rusty Russell Cc: Peter Maydell , "linux-kernel@vger.kernel.org" , Sasha Levin , "virtualization@lists.linux-foundation.org" List-Id: virtualization@lists.linuxfoundation.org T24gV2VkLCAyMDExLTExLTE2IGF0IDAwOjQyICswMDAwLCBSdXN0eSBSdXNzZWxsIHdyb3RlOgo+ IE9uIFR1ZSwgMTUgTm92IDIwMTEgMTM6NTM6MDUgKzAwMDAsIFBhd2VsIE1vbGwgPHBhd2VsLm1v bGxAYXJtLmNvbT4gd3JvdGU6Cj4gPiArc3RhdGljIGNoYXIgKnZpcnRpb19tbWlvX2NtZGxpbmVf ZGV2aWNlczsKPiA+ICttb2R1bGVfcGFyYW1fbmFtZWQoZGV2aWNlcywgdmlydGlvX21taW9fY21k bGluZV9kZXZpY2VzLCBjaGFycCwgMCk7Cj4gCj4gVGhpcyBpcyB0aGUgd3Jvbmcgd2F5IHRvIGRv IHRoaXMuCj4gCj4gRG9uJ3QgcHV0IHRoaW5ncyBpbiBhIGNoYXJwIGFuZCBwcm9jZXNzIGl0IGxh dGVyLiAgSXQncyBsYXp5LiAgCgpEZWZpbml0ZWx5IG5vdCBsYXp5IC0gc3RyaW5nIHBhcnNpbmcg aXMgdmVyeSBhYnNvcmJpbmcsIHJlYWxseSEgOy0pCgo+IFlvdQo+IHNob3VsZCB3cml0ZSBwYXJz ZXJzIGZvciBpdCBhbmQgY2FsbCBpdCBzdHJhaWdodCBmcm9tIG1vZHVsZV9wYXJhbS4KPiAKPiBB bmQgaWYgeW91IGRvIGl0IHRoYXQgd2F5LCBtdWx0aXBsZSBkZXZpY2VzIGFyZSBzaW1wbHkgbXVs dGlwbGUKPiBhcmd1bWVudHMuCj4KPiBtb2R1bGVfcGFyYW1fY2IoZGV2aWNlLCAmcGFyYW1fb3Bz X3ZpcnRpb19tbWlvLCBOVUxMLCAwNDAwKTsKCkhtLiBIb25lc3RseSwgZmlyc3QgdGltZSBJIGhl YXIgc29tZW9uZSBzdWdnZXN0aW5nIHVzaW5nIHRoZSBwYXJhbV9jYgp2YXJpYW50Li4uIEl0IGRv ZXNuJ3Qgc2VlbSB0byBiZSB0b28gcG9wdWxhciA7LSkKCiQgZ2l0IGdyZXAgXm1vZHVsZV9wYXJh bVwoLlwqY2hhcnAuXCpcKVw7IHwgd2MgLWwKMTU5CiQgZ2l0IGdyZXAgXm1vZHVsZV9wYXJhbV9j YlwoLlwqXClcOyB8IHdjIC1sCjcKCkJ1dCBhbnl3YXksIEkgdHJpZWQgdG8gZG8gdXNlIHlvdXIg c3VnZ2VzdGlvbiAoc2VlIGJlbG93KSwgZXZlbiBpZiBJJ20Kbm90IGNvbnZpbmNlZCBpdCdzIHdp bm5pbmcgYW55dGhpbmcuIEJ1dCwgaW4gb3JkZXIgdG8gdXNlIHRoZSBzdHJzZXAoKQphbmQga3N0 cnRvdWxsKCkgSSBuZWVkIGEgbm9uLWNvbnN0IHZlcnNpb24gb2YgdGhlIHN0cmluZy4gQW5kIGFz IHRoZQpzbGFiIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhlIHRpbWUsIEkgY2FuJ3Qgc2ltcGx5IGRv IGtzdHJkdXAoKSwgSSdkIGhhdmUKdG8gYWJ1c2UgdGhlICJjb25zdCBjaGFyICp2YWwiIHBhcmFt c19vcHMuc2V0J3MgYXJndW1lbnQuLi4KSW50ZXJlc3RpbmdseSBjaGFycCBvcGVyYXRpb25zIGhh dmUgdGhlIHNhbWUgcHJvYmxlbToKCmludCBwYXJhbV9zZXRfY2hhcnAoY29uc3QgY2hhciAqdmFs LCBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcCkKPC4uLj4KICAgICAgICAvKiBUaGlzIGlz IGEgaGFjay4gIFdlIGNhbid0IGttYWxsb2MgaW4gZWFybHkgYm9vdCwgYW5kIHdlCiAgICAgICAg ICogZG9uJ3QgbmVlZCB0bzsgdGhpcyBtYW5nbGVkIGNvbW1hbmRsaW5lIGlzIHByZXNlcnZlZC4g Ki8KICAgICAgICBpZiAoc2xhYl9pc19hdmFpbGFibGUoKSkgewoKQWxzbywgcmVnYXJkaW5nIHRo ZSBmYWN0IHRoYXQgb25lIHBhcmFtZXRlciBkZWZpbmUgbW9yZSB0aGFuIG9uZQoiZW50aXR5IiAt IHRoaXMgaXMgaG93IG10ZCBwYXJ0aXRpb25zIGFyZSBkZWZpbmVkIChhbGwgc2ltaWxhcml0aWVz CmludGVuZGVkIDstKSwgc2VlICJkcml2ZXJzL210ZC9jbWRsaW5lcGFydC5jIi4gQW5kIEkgcXVp dGUgbGlrZSB0aGlzCnN5bnRheC4uLgoKVGhlcmUncyBvbmUgbW9yZSB0aGluZyBJIHJlYWxpemUg SSBtaXNzZWQuIFRoZSBwbGF0Zm9ybSBkZXZpY2VzIGFyZQpyZWdpc3RlcmVkIHN0YXJ0aW5nIGZy b20gaWQgMCAoc28gYXMgInZpcnRpby1tbWlvLjAiKS4gTm93LCBpZiB5b3UKaGFwcGVuZWQgdG8g aGF2ZSBhIHN0YXRpY2FsbHkgZGVmaW5lZCB2aXJ0aW8tbW1pbyB3aXRoIHRoZSBzYW1lIGlkLAp0 aGVyZSB3b3VsZCBiZSBhIGNsYXNoLiBTbyBJIHdhbnRlZCB0byBhZGQgYSAiZmlyc3RfaWQiIHBh cmFtZXRlciwgYnV0CndpdGggdGhlIF9jYiBwYXJhbWV0ZXIgSSBjYW4ndCBndWFyYW50ZWUgb3Jk ZXJpbmcgKEkgbWVhbiwgdG8gaGF2ZSB0aGUKImZpcnN0X2lkIiBhdmFpbGFibGUgX2JlZm9yZV8g Zmlyc3QgZGV2aWNlIGlzIGJlaW5nIGluc3RhbnRpYXRlZCkuIFNvCkknZCBoYXZlIHRvIGNhY2hl IHRoZSBkZXZpY2VzIGFuZCB0aGVuIGNyZWF0ZSB0aGVtIGluIG9uZSBnby4gU291bmRzCmxpa2Ug dGhlIGNoYXJwIHBhcmFtZXRlciBmb3IgbWUgOi0pCgpTbywgdW5sZXNzIHlvdSBoYXZlIHJlYWxs eSBzdHJvbmcgZmVlbGluZ3MgYWJvdXQgaXQsIEknZCBzdGljayB0byB0aGUKc2luZ2xlLXN0cmlu ZyB2ZXJzaW9uLCBJJ2xsIGp1c3QgYWRkIHRoZSAiZmlyc3RfaWQiIHBhcmFtZXRlciB0b21vcnJv dy4KCkNoZWVycyEKClBhd2XFggoKODwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KCi8qIERldmljZXMgbGlzdCBwYXJhbWV0ZXIgKi8KCiNpZiBkZWZpbmVkKENPTkZJR19W SVJUSU9fTU1JT19DTURMSU5FX0RFVklDRVMpCgpzdGF0aWMgc3RydWN0IGRldmljZSB2aXJ0aW9f bW1pb19jbWRsaW5lX3BhcmVudCA9IHsKCS5pbml0X25hbWUgPSAidmlydGlvLW1taW8tY21kbGlu ZSIsCn07CgpzdGF0aWMgaW50IHZpcnRpb19tbWlvX2NtZGxpbmVfcGFyZW50X3JlZ2lzdGVyZWQ7 CnN0YXRpYyBpbnQgdmlydGlvX21taW9fY21kbGluZV9pZDsKCnN0YXRpYyBpbnQgdmlydGlvX21t aW9fcmVnaXN0ZXJfY21kbGluZV9kZXZpY2UoY29uc3QgY2hhciAqZGV2aWNlLAoJCWNvbnN0IHN0 cnVjdCBrZXJuZWxfcGFyYW0gKmtwKQp7CglpbnQgZXJyOwoJc3RydWN0IHJlc291cmNlIHJlc291 cmNlc1tdID0gewoJCXsKCQkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCgkJfSwgewoJCQkuZmxh Z3MgPSBJT1JFU09VUkNFX01FTSwKCQl9Cgl9OwoJY2hhciAqX190b2tlbiwgKnRva2VuLCAqc2l6 ZSwgKmJhc2U7Cgl1bnNpZ25lZCBsb25nIGxvbmcgdmFsOwoKCXRva2VuID0gX190b2tlbiA9IGtz dHJkdXAoZGV2aWNlLCBHRlBfS0VSTkVMKTsKCXByaW50aygidG9rZW49JXNcbiIsIHRva2VuKTsK CgkvKiBTcGxpdCBtZW1vcnkgYW5kIElSUSByZXNvdXJjZXMgKi8KCXByX2luZm8oImJhc2U9JXMs IHRva2VuPSVzXG4iLCBiYXNlLCB0b2tlbik7CglpZiAoYmFzZSA9PSB0b2tlbiB8fCAhdG9rZW4g fHwgISp0b2tlbikKCQlnb3RvIGVycm9yOwoKCS8qIEdldCBJUlEgKi8KCWlmIChrc3RydG91bGwo dG9rZW4sIDAsICZ2YWwpICE9IDApCgkJZ290byBlcnJvcjsKCXJlc291cmNlc1swXS5zdGFydCA9 IHZhbDsKCXJlc291cmNlc1swXS5lbmQgPSB2YWw7CgoJLyogU3BsaXQgYmFzZSBhZGRyZXNzIGFu ZCBzaXplICovCglzaXplID0gc3Ryc2VwKCZiYXNlLCAiQCIpOwoJaWYgKHNpemUgPT0gYmFzZSB8 fCAhYmFzZSB8fCAhKmJhc2UpCgkJcHJfZXJyKCJObyBiYXNlIGluICclcychXG4iLCBkZXZpY2Up OwoKCS8qIEdldCBiYXNlIGFkZHJlc3MgKi8KCWlmIChrc3RydG91bGwoYmFzZSwgMCwgJnZhbCkg IT0gMCkKCQlwcl9lcnIoIldyb25nIGJhc2UgaW4gJyVzJyFcbiIsIGRldmljZSk7CglyZXNvdXJj ZXNbMV0uc3RhcnQgPSB2YWw7CglyZXNvdXJjZXNbMV0uZW5kID0gdmFsOwoKCS8qIEdldCBzaXpl ICovCglyZXNvdXJjZXNbMV0uZW5kICs9IG1lbXBhcnNlKHNpemUsICZ0b2tlbikgLSAxOwoJaWYg KHNpemUgPT0gdG9rZW4gfHwgKnRva2VuKQoJCWdvdG8gZXJyb3I7CgoJa2ZyZWUoX190b2tlbik7 CgoJcHJfaW5mbygiUmVnaXN0ZXJpbmcgZGV2aWNlIHZpcnRpby1tbWlvLiVkIGF0IDB4JXgtMHgl eCwgSVJRICV1LlxuIiwKCQkJdmlydGlvX21taW9fY21kbGluZV9pZCwgcmVzb3VyY2VzWzFdLnN0 YXJ0LAoJCQlyZXNvdXJjZXNbMV0uZW5kLCByZXNvdXJjZXNbMF0uc3RhcnQpOwoKCWlmICghdmly dGlvX21taW9fY21kbGluZV9wYXJlbnRfcmVnaXN0ZXJlZCkgewoJCWVyciA9IGRldmljZV9yZWdp c3RlcigmdmlydGlvX21taW9fY21kbGluZV9wYXJlbnQpOwoJCWlmIChlcnIpIHsKCQkJcHJfZXJy KCJGYWlsZWQgdG8gcmVnaXN0ZXIgcGFyZW50IGRldmljZSFcbiIpOwoJCQlyZXR1cm4gZXJyOwoJ CX0KCQl2aXJ0aW9fbW1pb19jbWRsaW5lX3BhcmVudF9yZWdpc3RlcmVkID0gMTsKCX0KCglyZXR1 cm4gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX3Jlc25kYXRhKCZ2aXJ0aW9fbW1pb19jbWRsaW5l X3BhcmVudCwKCQkJInZpcnRpby1tbWlvIiwgdmlydGlvX21taW9fY21kbGluZV9pZCsrLAoJCQly ZXNvdXJjZXMsIEFSUkFZX1NJWkUocmVzb3VyY2VzKSwgTlVMTCwgMCkgIT0gTlVMTDsKCmVycm9y OgoJa2ZyZWUoX190b2tlbik7CglyZXR1cm4gLUVJTlZBTDsKfQoKc3RhdGljIHN0cnVjdCBrZXJu ZWxfcGFyYW1fb3BzIHZpcnRpb19tbWlvX2NtZGxpbmVfcGFyYW1fb3BzID0gewoJLnNldCA9IHZp cnRpb19tbWlvX3JlZ2lzdGVyX2NtZGxpbmVfZGV2aWNlLAp9OwoKbW9kdWxlX3BhcmFtX2NiKGRl dmljZSwgJnZpcnRpb19tbWlvX2NtZGxpbmVfcGFyYW1fb3BzLCBOVUxMLCAwKTsKCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KVmlydHVhbGl6YXRpb24g bWFpbGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0 dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3ZpcnR1YWxp emF0aW9u