From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1JOrlR-0003Bs-Rb for mharc-grub-devel@gnu.org; Tue, 12 Feb 2008 04:49:22 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JOrlP-00039V-Or for grub-devel@gnu.org; Tue, 12 Feb 2008 04:49:19 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JOrlN-000387-RP for grub-devel@gnu.org; Tue, 12 Feb 2008 04:49:19 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JOrlN-000382-NB for grub-devel@gnu.org; Tue, 12 Feb 2008 04:49:17 -0500 Received: from mx2.rz.ruhr-uni-bochum.de ([134.147.64.30]) by monty-python.gnu.org with smtp (Exim 4.60) (envelope-from ) id 1JOrlN-0007bG-7n for grub-devel@gnu.org; Tue, 12 Feb 2008 04:49:17 -0500 X-Queued: (qmail 26251 invoked by uid 281); 12 Feb 2008 09:49:14 -0000 X-Qmailscanner: from 134.147.252.214 by mx2.rz.ruhr-uni-bochum.de (envelope-from , uid 80) with qmail-scanner-2.01 (sophie: 3.05/2.52/4.24. Clear:RC:1(134.147.252.214):. Processed in 0.047695 secs); 12 Feb 2008 09:49:14 -0000 Received: from router.leat.ruhr-uni-bochum.de (134.147.252.214) by mx2.rz.ruhr-uni-bochum.de with SMTP; 12 Feb 2008 09:49:14 -0000 Received: from [134.147.55.45] (frodo.leat.ruhr-uni-bochum.de [134.147.55.45]) by router.leat.ruhr-uni-bochum.de (8.12.2/8.12.2/SuSE Linux 0.6) with ESMTP id m1C9sJ1l014014 for ; Tue, 12 Feb 2008 10:54:19 +0100 Message-ID: <47B16BB1.2000006@leat.rub.de> Date: Tue, 12 Feb 2008 10:49:37 +0100 From: Fabian Greffrath User-Agent: Thunderbird 2.0.0.9 (Windows/20071031) MIME-Version: 1.0 To: The development of GRUB 2 References: 20080211161230.GA7585@thorin Content-Type: multipart/mixed; boundary="------------040001060703080703040400" X-detected-kernel: by monty-python.gnu.org: Linux 2.4-2.6 Subject: Re: [PATCH] Add option to grub-probe to accept system devices as arguments X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Feb 2008 09:49:20 -0000 This is a multi-part message in MIME format. --------------040001060703080703040400 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit > You put that function in a separate file, which indicates it is meant to be > a general-purpose function, but its spec is constrained by the code in > grub-probe (i.e. you strdup() not because it is needed for the purpose of > this function, but because grub-probe already calls free()). That's right. Consequently there are two alternatives left: - grub_util_check_block_device() returns the pointer instead of strdup() and the call to free() in grub-probe is conditional upon if argument_is_device is true or false; which I consider an ugly hack. - I keep getroot.{c,h} untouched and include these four lines in grub-probe; which is a pity because I consider the function quite usefull, though still not perfect (see above). In the context of the second alternative, the attached (draft!) patch leads to the following results: $ mount /dev/hda1 on / type ext3 (rw,errors=remount-ro) /dev/hda6 on /home type ext3 (rw) $ su # grub-probe No path or device is specified. Try ``grub-probe --help'' for more information. # grub-probe /home ext2 # grub-probe /homer grub-probe: error: cannot stat /homer. # grub-probe /dev/hda1 ext2 # grub-probe --target=drive No path or device is specified. Try ``grub-probe --help'' for more information. # grub-probe --target=drive /home (hd0,6) # grub-probe --target=drive /homer grub-probe: error: cannot stat /homer. # grub-probe --target=drive /dev/hda1 (hd0,1) How do you like that? Cheers, Fabian --------------040001060703080703040400 Content-Type: text/x-patch; name="grub-probe-20080212-1.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="grub-probe-20080212-1.diff" ZGlmZiAtTnVycCBncnViMi0xLjk2KzIwMDgwMjEwL3V0aWwvZ3J1Yi1wcm9iZS5jIGdydWIy LTEuOTYrMjAwODAyMTAubmV3L3V0aWwvZ3J1Yi1wcm9iZS5jCi0tLSBncnViMi0xLjk2KzIw MDgwMjEwL3V0aWwvZ3J1Yi1wcm9iZS5jCTIwMDgtMDItMDkgMTE6NDk6MjkuMDAwMDAwMDAw ICswMTAwCisrKyBncnViMi0xLjk2KzIwMDgwMjEwLm5ldy91dGlsL2dydWItcHJvYmUuYwky MDA4LTAyLTEyIDEwOjE2OjQ1LjAwMDAwMDAwMCArMDEwMApAQCAtMSw0ICsxLDQgQEAKLS8q IGdydWItcHJvYmUuYyAtIHByb2JlIGRldmljZSBpbmZvcm1hdGlvbiBmb3IgYSBnaXZlbiBw YXRoICovCisvKiBncnViLXByb2JlLmMgLSBwcm9iZSBkZXZpY2UgaW5mb3JtYXRpb24gZm9y IGEgZ2l2ZW4gcGF0aCBvciBkZXZpY2UgKi8KIC8qCiAgKiAgR1JVQiAgLS0gIEdSYW5kIFVu aWZpZWQgQm9vdGxvYWRlcgogICogIENvcHlyaWdodCAoQykgMjAwNSwyMDA2LDIwMDcsMjAw OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTEwMCw3ICsxMDAsNyBAQCBw cm9iZV9wYXJ0bWFwIChncnViX2Rpc2tfdCBkaXNrKQogfQogCiBzdGF0aWMgdm9pZAotcHJv YmUgKGNvbnN0IGNoYXIgKnBhdGgpCitwcm9iZSAoY29uc3QgY2hhciAqYXJndW1lbnQpCiB7 CiAgIGNoYXIgKmRldmljZV9uYW1lOwogICBjaGFyICpkcml2ZV9uYW1lID0gTlVMTDsKQEAg LTEwOCwxMCArMTA4LDE4IEBAIHByb2JlIChjb25zdCBjaGFyICpwYXRoKQogICBjaGFyICpm aWxlYnVmX3ZpYV9ncnViID0gTlVMTCwgKmZpbGVidWZfdmlhX3N5cyA9IE5VTEw7CiAgIGlu dCBhYnN0cmFjdGlvbl90eXBlOwogICBncnViX2RldmljZV90IGRldiA9IE5VTEw7Ci0gIAot ICBkZXZpY2VfbmFtZSA9IGdydWJfZ3Vlc3Nfcm9vdF9kZXZpY2UgKHBhdGgpOworICBzdHJ1 Y3Qgc3RhdCBzdDsKKworICBpZiAoc3RhdCAoYXJndW1lbnQsICZzdCkgPCAwKQ0KKyAgICAg Z3J1Yl91dGlsX2Vycm9yICgiY2Fubm90IHN0YXQgJXMuXG4iLCBhcmd1bWVudCk7CisKKyAg aWYgKFNfSVNCTEsgKHN0LnN0X21vZGUpKQ0KKyAgICBkZXZpY2VfbmFtZSA9IHN0cmR1cCAo YXJndW1lbnQpOworICBlbHNlDQorICAgIGRldmljZV9uYW1lID0gZ3J1Yl9ndWVzc19yb290 X2RldmljZSAoYXJndW1lbnQpOw0KKwogICBpZiAoISBkZXZpY2VfbmFtZSkKLSAgICBncnVi X3V0aWxfZXJyb3IgKCJjYW5ub3QgZmluZCBhIGRldmljZSBmb3IgJXMuXG4iLCBwYXRoKTsK KyAgICBncnViX3V0aWxfZXJyb3IgKCJjYW5ub3QgZmluZCBhIGRldmljZSBmb3IgJXMuXG4i LCBhcmd1bWVudCk7CiAKICAgaWYgKHByaW50ID09IFBSSU5UX0RFVklDRSkKICAgICB7CkBA IC0xNzgsMjEgKzE4NiwxOCBAQCBwcm9iZSAoY29uc3QgY2hhciAqcGF0aCkKIAogICBpZiAo cHJpbnQgPT0gUFJJTlRfRlMpCiAgICAgewotICAgICAgc3RydWN0IHN0YXQgc3Q7CiAgICAg ICBncnViX2ZzX3QgZnM7CiAKLSAgICAgIHN0YXQgKHBhdGgsICZzdCk7Ci0KICAgICAgIGlm IChzdC5zdF9tb2RlID09IFNfSUZSRUcpCiAJewogCSAgLyogUmVndWxhciBmaWxlLiAgVmVy aWZ5IHRoYXQgd2UgY2FuIHJlYWQgaXQgcHJvcGVybHkuICAqLwogCiAJICBncnViX2ZpbGVf dCBmaWxlOwotCSAgZ3J1Yl91dGlsX2luZm8gKCJyZWFkaW5nICVzIHZpYSBPUyBmYWNpbGl0 aWVzIiwgcGF0aCk7Ci0JICBmaWxlYnVmX3ZpYV9zeXMgPSBncnViX3V0aWxfcmVhZF9pbWFn ZSAocGF0aCk7CisJICBncnViX3V0aWxfaW5mbyAoInJlYWRpbmcgJXMgdmlhIE9TIGZhY2ls aXRpZXMiLCBhcmd1bWVudCk7CisJICBmaWxlYnVmX3ZpYV9zeXMgPSBncnViX3V0aWxfcmVh ZF9pbWFnZSAoYXJndW1lbnQpOwogCSAgCi0JICBncnViX3V0aWxfaW5mbyAoInJlYWRpbmcg JXMgdmlhIEdSVUIgZmFjaWxpdGllcyIsIHBhdGgpOwotCSAgYXNwcmludGYgKCZncnViX3Bh dGgsICIoJXMpJXMiLCBkcml2ZV9uYW1lLCBwYXRoKTsKKwkgIGdydWJfdXRpbF9pbmZvICgi cmVhZGluZyAlcyB2aWEgR1JVQiBmYWNpbGl0aWVzIiwgYXJndW1lbnQpOworCSAgYXNwcmlu dGYgKCZncnViX3BhdGgsICIoJXMpJXMiLCBkcml2ZV9uYW1lLCBhcmd1bWVudCk7CiAJICBm aWxlID0gZ3J1Yl9maWxlX29wZW4gKGdydWJfcGF0aCk7CiAJICBmaWxlYnVmX3ZpYV9ncnVi ID0geG1hbGxvYyAoZmlsZS0+c2l6ZSk7CiAJICBncnViX2ZpbGVfcmVhZCAoZmlsZSwgZmls ZWJ1Zl92aWFfZ3J1YiwgZmlsZS0+c2l6ZSk7CkBAIC0yNDIsOSArMjQ3LDkgQEAgdXNhZ2Ug KGludCBzdGF0dXMpCiAJICAgICAiVHJ5IGBgZ3J1Yi1wcm9iZSAtLWhlbHAnJyBmb3IgbW9y ZSBpbmZvcm1hdGlvbi5cbiIpOwogICBlbHNlCiAgICAgcHJpbnRmICgiXAotVXNhZ2U6IGdy dWItcHJvYmUgW09QVElPTl0uLi4gUEFUSFxuXAorVXNhZ2U6IGdydWItcHJvYmUgW09QVElP Tl0uLi4gW1BBVEh8REVWSUNFXVxuXAogXG5cCi1Qcm9iZSBkZXZpY2UgaW5mb3JtYXRpb24g Zm9yIGEgZ2l2ZW4gcGF0aC5cblwKK1Byb2JlIGRldmljZSBpbmZvcm1hdGlvbiBmb3IgYSBn aXZlbiBwYXRoIG9yIGRldmljZS5cblwKIFxuXAogICAtbSwgLS1kZXZpY2UtbWFwPUZJTEUg ICAgIHVzZSBGSUxFIGFzIHRoZSBkZXZpY2UgbWFwIFtkZWZhdWx0PSVzXVxuXAogICAtdCwg LS10YXJnZXQ9KGZzfGRyaXZlfGRldmljZXxwYXJ0bWFwfGFic3RyYWN0aW9uKVxuXApAQCAt MjY0LDcgKzI2OSw3IEBAIGludAogbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsK ICAgY2hhciAqZGV2X21hcCA9IDA7Ci0gIGNoYXIgKnBhdGg7CisgIGNoYXIgKmFyZ3VtZW50 OwogICAKICAgcHJvZ25hbWUgPSAiZ3J1Yi1wcm9iZSI7CiAgIApAQCAtMzIxLDEwICszMjYs MTAgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgaWYgKHZlcmJvc2l0eSA+ IDEpCiAgICAgZ3J1Yl9lbnZfc2V0ICgiZGVidWciLCAiYWxsIik7CiAKLSAgLyogT2J0YWlu IFBBVEguICAqLworICAvKiBPYnRhaW4gUEFUSCBvciBERVZJQ0UuICAqLwogICBpZiAob3B0 aW5kID49IGFyZ2MpCiAgICAgewotICAgICAgZnByaW50ZiAoc3RkZXJyLCAiTm8gcGF0aCBp cyBzcGVjaWZpZWQuXG4iKTsKKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIk5vIHBhdGggb3Ig ZGV2aWNlIGlzIHNwZWNpZmllZC5cbiIpOwogICAgICAgdXNhZ2UgKDEpOwogICAgIH0KIApA QCAtMzM0LDcgKzMzOSw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAg ICB1c2FnZSAoMSk7CiAgICAgfQogCi0gIHBhdGggPSBhcmd2W29wdGluZF07CisgIGFyZ3Vt ZW50ID0gYXJndltvcHRpbmRdOwogICAKICAgLyogSW5pdGlhbGl6ZSB0aGUgZW11bGF0ZWQg Ymlvc2Rpc2sgZHJpdmVyLiAgKi8KICAgZ3J1Yl91dGlsX2Jpb3NkaXNrX2luaXQgKGRldl9t YXAgPyA6IERFRkFVTFRfREVWSUNFX01BUCk7CkBAIC0zNDMsNyArMzQ4LDcgQEAgbWFpbiAo aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgZ3J1Yl9pbml0X2FsbCAoKTsKIAogICAvKiBE byBpdC4gICovCi0gIHByb2JlIChwYXRoKTsKKyAgcHJvYmUgKGFyZ3VtZW50KTsKICAgCiAg IC8qIEZyZWUgcmVzb3VyY2VzLiAgKi8KICAgZ3J1Yl9maW5pX2FsbCAoKTsK --------------040001060703080703040400--