From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IZlW2-0002LT-J0 for qemu-devel@nongnu.org; Mon, 24 Sep 2007 06:50:14 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IZlW0-0002LF-4r for qemu-devel@nongnu.org; Mon, 24 Sep 2007 06:50:13 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IZlVz-0002LB-VM for qemu-devel@nongnu.org; Mon, 24 Sep 2007 06:50:12 -0400 Received: from wa-out-1112.google.com ([209.85.146.177]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IZlVz-0001U9-Bs for qemu-devel@nongnu.org; Mon, 24 Sep 2007 06:50:11 -0400 Received: by wa-out-1112.google.com with SMTP id k22so2405746waf for ; Mon, 24 Sep 2007 03:50:09 -0700 (PDT) Message-ID: <219e947f0709240350j6e011564j31a84015910ab481@mail.gmail.com> Date: Mon, 24 Sep 2007 13:50:09 +0300 From: "Ivan Kalvachev" Subject: Re: [Qemu-devel] [PATCH] vvfat mbr fixes In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_56272_22447541.1190631009244" References: <219e947f0709221443l494e4c46w6efafce989dbb867@mail.gmail.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org ------=_Part_56272_22447541.1190631009244 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline I had a discussion with Johannes Schindelin over my patch, that I thought is on the maillist, but apparently it wasn't. I'm subscribed, so please don't send me mails directly, gmail web interface could be quite misleading. So here is the third revision of my patch. Changes include: using more structures instead of fixed byte locations. chs and nt_id. more detailed comments, function name shortened and if(lba) moved to ?: construct. ------=_Part_56272_22447541.1190631009244 Content-Type: application/octet-stream; name="qemu_vvfat_mbr_v3.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="qemu_vvfat_mbr_v3.patch" X-Attachment-Id: f_f6yupq28 LS0tIG9sZHFlbXUvYmxvY2stdnZmYXQuYwkyMDA3LTA5LTE3IDExOjA5OjQzLjAwMDAwMDAwMCAr MDMwMAorKysgbmV3cWVtdS9ibG9jay12dmZhdC5jCTIwMDctMDktMjQgMTM6MjA6MjcuMDU2MzUz MzI2ICswMzAwCkBAIC0yNDIsMjEgKzI0MiwyNSBAQCB0eXBlZGVmIHN0cnVjdCBib290c2VjdG9y X3QgewogICAgIHVpbnQ4X3QgbWFnaWNbMl07CiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpIGJv b3RzZWN0b3JfdDsKIAordHlwZWRlZiBzdHJ1Y3QgeworICAgIHVpbnQ4X3QgaGVhZDsKKyAgICB1 aW50OF90IHNlY3RvcjsKKyAgICB1aW50OF90IGN5bGluZGVyOworfSBtYnJfY2hzX3Q7CisKIHR5 cGVkZWYgc3RydWN0IHBhcnRpdGlvbl90IHsKICAgICB1aW50OF90IGF0dHJpYnV0ZXM7IC8qIDB4 ODAgPSBib290YWJsZSAqLwotICAgIHVpbnQ4X3Qgc3RhcnRfaGVhZDsKLSAgICB1aW50OF90IHN0 YXJ0X3NlY3RvcjsKLSAgICB1aW50OF90IHN0YXJ0X2N5bGluZGVyOwotICAgIHVpbnQ4X3QgZnNf dHlwZTsgLyogMHgxID0gRkFUMTIsIDB4NiA9IEZBVDE2LCAweGIgPSBGQVQzMiAqLwotICAgIHVp bnQ4X3QgZW5kX2hlYWQ7Ci0gICAgdWludDhfdCBlbmRfc2VjdG9yOwotICAgIHVpbnQ4X3QgZW5k X2N5bGluZGVyOworICAgIG1icl9jaHNfdCBzdGFydF9DSFM7CisgICAgdWludDhfdCAgIGZzX3R5 cGU7IC8qIDB4MSA9IEZBVDEyLCAweDYgPSBGQVQxNiwgMHhlID0gRkFUMTZfTEJBLCAweGIgPSBG QVQzMiwgMHhjID0gRkFUMzJfTEJBICovCisgICAgbWJyX2Noc190IGVuZF9DSFM7CiAgICAgdWlu dDMyX3Qgc3RhcnRfc2VjdG9yX2xvbmc7Ci0gICAgdWludDMyX3QgZW5kX3NlY3Rvcl9sb25nOwor ICAgIHVpbnQzMl90IGxlbmd0aF9zZWN0b3JfbG9uZzsKIH0gX19hdHRyaWJ1dGVfXygocGFja2Vk KSkgcGFydGl0aW9uX3Q7CiAKIHR5cGVkZWYgc3RydWN0IG1icl90IHsKLSAgICB1aW50OF90IGln bm9yZWRbMHgxYmVdOworICAgIHVpbnQ4X3QgaWdub3JlZFsweDFiOF07CisgICAgdWludDMyX3Qg bnRfaWQ7CisgICAgdWludDhfdCBpZ25vcmVkMlsyXTsKICAgICBwYXJ0aXRpb25fdCBwYXJ0aXRp b25bNF07CiAgICAgdWludDhfdCBtYWdpY1syXTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSkg bWJyX3Q7CkBAIC0zNTAsMjYgKzM1NCw1NyBAQCB0eXBlZGVmIHN0cnVjdCBCRFJWVlZGQVRTdGF0 ZSB7CiAgICAgaW50IGRvd25jYXNlX3Nob3J0X25hbWVzOwogfSBCRFJWVlZGQVRTdGF0ZTsKIAor LyogdGFrZSB0aGUgc2VjdG9yIHBvc2l0aW9uIHNwb3MgYW5kIGNvbnZlcnQgaXQgdG8gQ3lsaW5k ZXIvSGVhZC9TZWN0b3IgcG9zaXRpb24KKyAqIGlmIHRoZSBwb3NpdGlvbiBpcyBvdXRzaWRlIHRo ZSBzcGVjaWZpZWQgZ2VvbWV0cnksIGZpbGwgbWF4aW11bSB2YWx1ZSBmb3IgQ0hTCisgKiBhbmQg cmV0dXJuIDEgdG8gc2lnbmFsIG92ZXJmbG93LgorICovCitzdGF0aWMgaW50IHNlY3RvcjJDSFMo QmxvY2tEcml2ZXJTdGF0ZSogYnMsIG1icl9jaHNfdCAqIGNocywgaW50IHNwb3MpeworICAgIGlu dCBoZWFkLHNlY3RvcjsKKyAgICBzZWN0b3IgICA9IHNwb3MgJSAoYnMtPnNlY3MpOyAgc3Bvcy89 IGJzLT5zZWNzOworICAgIGhlYWQgICAgID0gc3BvcyAlIChicy0+aGVhZHMpOyBzcG9zLz0gYnMt PmhlYWRzOworICAgIGlmKHNwb3MgPj0gYnMtPmN5bHMpeworICAgICAgICAvKiBPdmVyZmxvdywK KyAgICAgICAgaXQgaGFwcGVucyBpZiAzMmJpdCBzZWN0b3IgcG9zaXRpb25zIGFyZSB1c2VkLCB3 aGlsZSBDSFMgaXMgb25seSAyNGJpdC4KKyAgICAgICAgV2luZG93cy9Eb3MgaXMgc2FpZCB0byB0 YWtlIDEwMjMvMjU1LzYzIGFzIG5vbnJlcHJlc2VudGFibGUgQ0hTICovCisgICAgICAgIGNocy0+ aGVhZCAgICAgPSAweEZGOworICAgICAgICBjaHMtPnNlY3RvciAgID0gMHhGRjsKKyAgICAgICAg Y2hzLT5jeWxpbmRlciA9IDB4RkY7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICBjaHMt PmhlYWQgICAgID0gKHVpbnQ4X3QpaGVhZDsKKyAgICBjaHMtPnNlY3RvciAgID0gKHVpbnQ4X3Qp KCAoc2VjdG9yKzEpIHwgKChzcG9zPj44KTw8NikgKTsKKyAgICBjaHMtPmN5bGluZGVyID0gKHVp bnQ4X3Qpc3BvczsKKyAgICByZXR1cm4gMDsKK30KIAogc3RhdGljIHZvaWQgaW5pdF9tYnIoQkRS VlZWRkFUU3RhdGUqIHMpCiB7CiAgICAgLyogVE9ETzogaWYgdGhlIGZpbGVzIG1ici5pbWcgYW5k IGJvb3RzZWN0LmltZyBleGlzdCwgdXNlIHRoZW0gKi8KICAgICBtYnJfdCogcmVhbF9tYnI9KG1i cl90KilzLT5maXJzdF9zZWN0b3JzOwogICAgIHBhcnRpdGlvbl90KiBwYXJ0aXRpb249JihyZWFs X21ici0+cGFydGl0aW9uWzBdKTsKKyAgICBpbnQgbGJhOwogCiAgICAgbWVtc2V0KHMtPmZpcnN0 X3NlY3RvcnMsMCw1MTIpOwogCisgICAgLyogV2luIE5UIERpc2sgU2lnbmF0dXJlICovCisgICAg cmVhbF9tYnItPm50X2lkPSBjcHVfdG9fbGUzMigweGJlMWFmZGZhKTsKKwogICAgIHBhcnRpdGlv bi0+YXR0cmlidXRlcz0weDgwOyAvKiBib290YWJsZSAqLwotICAgIHBhcnRpdGlvbi0+c3RhcnRf aGVhZD0xOwotICAgIHBhcnRpdGlvbi0+c3RhcnRfc2VjdG9yPTE7Ci0gICAgcGFydGl0aW9uLT5z dGFydF9jeWxpbmRlcj0wOworCisgICAgLyogTEJBIGlzIHVzZWQgd2hlbiBwYXJ0aXRpb24gaXMg b3V0c2lkZSB0aGUgQ0hTIGdlb21ldHJ5ICovCisgICAgbGJhID0gc2VjdG9yMkNIUyhzLT5icywg JnBhcnRpdGlvbi0+c3RhcnRfQ0hTLCBzLT5maXJzdF9zZWN0b3JzX251bWJlci0xKTsKKyAgICBs YmF8PSBzZWN0b3IyQ0hTKHMtPmJzLCAmcGFydGl0aW9uLT5lbmRfQ0hTLCAgIHMtPnNlY3Rvcl9j b3VudCk7CisKKyAgICAvKkxCQSBwYXJ0aXRpb25zIGFyZSBpZGVudGlmaWVkIG9ubHkgYnkgc3Rh cnQvbGVuZ3RoX3NlY3Rvcl9sb25nIG5vdCBieSBDSFMqLworICAgIHBhcnRpdGlvbi0+c3RhcnRf c2VjdG9yX2xvbmcgPWNwdV90b19sZTMyKHMtPmZpcnN0X3NlY3RvcnNfbnVtYmVyLTEpOworICAg IHBhcnRpdGlvbi0+bGVuZ3RoX3NlY3Rvcl9sb25nPWNwdV90b19sZTMyKHMtPnNlY3Rvcl9jb3Vu dCAtIHMtPmZpcnN0X3NlY3RvcnNfbnVtYmVyKzEpOworCiAgICAgLyogRkFUMTIvRkFUMTYvRkFU MzIgKi8KLSAgICBwYXJ0aXRpb24tPmZzX3R5cGU9KHMtPmZhdF90eXBlPT0xMj8weDE6cy0+ZmF0 X3R5cGU9PTE2PzB4NjoweGIpOwotICAgIHBhcnRpdGlvbi0+ZW5kX2hlYWQ9cy0+YnMtPmhlYWRz LTE7Ci0gICAgcGFydGl0aW9uLT5lbmRfc2VjdG9yPTB4ZmY7IC8qIGVuZCBzZWN0b3IgJiB1cHBl ciAyIGJpdHMgb2YgY3lsaW5kZXIgKi87Ci0gICAgcGFydGl0aW9uLT5lbmRfY3lsaW5kZXI9MHhm ZjsgLyogbG93ZXIgOCBiaXRzIG9mIGVuZCBjeWxpbmRlciAqLzsKLSAgICBwYXJ0aXRpb24tPnN0 YXJ0X3NlY3Rvcl9sb25nPWNwdV90b19sZTMyKHMtPmJzLT5zZWNzKTsKLSAgICBwYXJ0aXRpb24t PmVuZF9zZWN0b3JfbG9uZz1jcHVfdG9fbGUzMihzLT5zZWN0b3JfY291bnQpOworICAgIC8qIERP UyB1c2VzIGRpZmZlcmVudCB0eXBlcyB3aGVuIHBhcnRpdGlvbiBpcyBMQkEsCisgICAgICAgcHJv YmFibHkgdG8gcHJldmVudCBvbGRlciB2ZXJzaW9ucyBmcm9tIHVzaW5nIENIUyBvbiB0aGVtICov CisgICAgcGFydGl0aW9uLT5mc190eXBlPSBzLT5mYXRfdHlwZT09MTIgPyAweDE6CisgICAgICAg ICAgICAgICAgICAgICAgICBzLT5mYXRfdHlwZT09MTYgPyAobGJhPzB4ZToweDA2KToKKyAgICAg ICAgICAgICAgICAgICAgICAgICAvKmZhdF90eW9lPT0zMiovIChsYmE/MHhjOjB4MGIpOwogCiAg ICAgcmVhbF9tYnItPm1hZ2ljWzBdPTB4NTU7IHJlYWxfbWJyLT5tYWdpY1sxXT0weGFhOwogfQpA QCAtOTczLDEwICsxMDA4LDkgQEAgRExPRyhpZiAoc3RkZXJyID09IE5VTEwpIHsKIAogICAgIHMt PmZhdF90eXBlPTE2OwogICAgIC8qIExBVEVSIFRPRE86IGlmIEZBVDMyLCBhZGp1c3QgKi8KLSAg ICBzLT5zZWN0b3JfY291bnQ9MHhlYzA0ZjsKICAgICBzLT5zZWN0b3JzX3Blcl9jbHVzdGVyPTB4 MTA7Ci0gICAgLyogTEFURVIgVE9ETzogdGhpcyBjb3VsZCBiZSB3cm9uZyBmb3IgRkFUMzIgKi8K LSAgICBicy0+Y3lscz0xMDIzOyBicy0+aGVhZHM9MTU7IGJzLT5zZWNzPTYzOworICAgIC8qIDUw NE1CIGRpc2sqLworICAgIGJzLT5jeWxzPTEwMjQ7IGJzLT5oZWFkcz0xNjsgYnMtPnNlY3M9NjM7 CiAKICAgICBzLT5jdXJyZW50X2NsdXN0ZXI9MHhmZmZmZmZmZjsKIApAQCAtOTkxLDEyICsxMDI1 LDYgQEAgRExPRyhpZiAoc3RkZXJyID09IE5VTEwpIHsKICAgICBpZiAoIXN0cnN0YXJ0KGRpcm5h bWUsICJmYXQ6IiwgTlVMTCkpCiAJcmV0dXJuIC0xOwogCi0gICAgaWYgKHN0cnN0cihkaXJuYW1l LCAiOnJ3OiIpKSB7Ci0JaWYgKGVuYWJsZV93cml0ZV90YXJnZXQocykpCi0JICAgIHJldHVybiAt MTsKLQlicy0+cmVhZF9vbmx5ID0gMDsKLSAgICB9Ci0KICAgICBpZiAoc3Ryc3RyKGRpcm5hbWUs ICI6ZmxvcHB5OiIpKSB7CiAJZmxvcHB5ID0gMTsKIAlzLT5mYXRfdHlwZSA9IDEyOwpAQCAtMTAw NSw2ICsxMDMzLDggQEAgRExPRyhpZiAoc3RkZXJyID09IE5VTEwpIHsKIAlicy0+Y3lscyA9IDgw OyBicy0+aGVhZHMgPSAyOyBicy0+c2VjcyA9IDM2OwogICAgIH0KIAorICAgIHMtPnNlY3Rvcl9j b3VudD1icy0+Y3lscypicy0+aGVhZHMqYnMtPnNlY3M7CisKICAgICBpZiAoc3Ryc3RyKGRpcm5h bWUsICI6MzI6IikpIHsKIAlmcHJpbnRmKHN0ZGVyciwgIkJpZyBmYXQgZ3JlZWsgd2FybmluZzog RkFUMzIgaGFzIG5vdCBiZWVuIHRlc3RlZC4gWW91IGFyZSB3ZWxjb21lIHRvIGRvIHNvIVxuIik7 CiAJcy0+ZmF0X3R5cGUgPSAzMjsKQEAgLTEwMTUsNiArMTA0NSwxMiBAQCBETE9HKGlmIChzdGRl cnIgPT0gTlVMTCkgewogCXMtPnNlY3Rvcl9jb3VudD0yODgwOwogICAgIH0KIAorICAgIGlmIChz dHJzdHIoZGlybmFtZSwgIjpydzoiKSkgeworCWlmIChlbmFibGVfd3JpdGVfdGFyZ2V0KHMpKQor CSAgICByZXR1cm4gLTE7CisJYnMtPnJlYWRfb25seSA9IDA7CisgICAgfQorCiAgICAgaSA9IHN0 cnJjaHIoZGlybmFtZSwgJzonKSAtIGRpcm5hbWU7CiAgICAgYXNzZXJ0KGkgPj0gMyk7CiAgICAg aWYgKGRpcm5hbWVbaS0yXSA9PSAnOicgJiYgaXNhbHBoYShkaXJuYW1lW2ktMV0pKQpAQCAtMTAy NCwxMSArMTA2MCwxMiBAQCBETE9HKGlmIChzdGRlcnIgPT0gTlVMTCkgewogCWRpcm5hbWUgKz0g aSsxOwogCiAgICAgYnMtPnRvdGFsX3NlY3RvcnM9YnMtPmN5bHMqYnMtPmhlYWRzKmJzLT5zZWNz OwotICAgIGlmIChzLT5zZWN0b3JfY291bnQgPiBicy0+dG90YWxfc2VjdG9ycykKLQlzLT5zZWN0 b3JfY291bnQgPSBicy0+dG90YWxfc2VjdG9yczsKKwogICAgIGlmKGluaXRfZGlyZWN0b3JpZXMo cywgZGlybmFtZSkpCiAJcmV0dXJuIC0xOwogCisgICAgcy0+c2VjdG9yX2NvdW50ID0gcy0+ZmFr ZWRfc2VjdG9ycyArIHMtPnNlY3RvcnNfcGVyX2NsdXN0ZXIqcy0+Y2x1c3Rlcl9jb3VudDsKKwog ICAgIGlmKHMtPmZpcnN0X3NlY3RvcnNfbnVtYmVyPT0weDQwKQogCWluaXRfbWJyKHMpOwogCg== ------=_Part_56272_22447541.1190631009244--