From owner-freebsd-fs@FreeBSD.ORG Tue Oct 2 15:07:10 2012 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 3BCA9106566C for ; Tue, 2 Oct 2012 15:07:10 +0000 (UTC) (envelope-from boris.astardzhiev@gmail.com) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id 9AF988FC08 for ; Tue, 2 Oct 2012 15:07:09 +0000 (UTC) Received: by lbdb5 with SMTP id b5so6454156lbd.13 for ; Tue, 02 Oct 2012 08:07:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:cc:content-type; bh=BzcGuuxEVCMfTq8F3b8IYlKCFdJjqeup8U4hf5MHu9Q=; b=ne1ddnW9+KU34vlzE5n+gxSDfmFsnClkQCn5J6oq9Jc1WKDkjA0j+6fKzOVBJOb6p9 3tyeQet0AB3GSBsTM8UyhAEigZTqtWRJUvIGO9ux5MseL8HckynV7M3hKodWcQzU5LyQ F+z0bKFreeTv8r6Ze+NQ0zpXmlAr3q4+STSTYTjinxTwqnst+IGC2wk5zS2mgIbqsEJL 7cMMbN7TuJ2PHqJiMfDmPxeG0nvJWk1g7LVtzX2FF1+a628lFsLyb7Ji5ybz54HMNVbb ymU0EVyR/835EPJrp5D95PWE1xQGnAZBWat5/Xhd5+wCbL0Vki487nXlHaJlnZBtVDoL iySg== MIME-Version: 1.0 Received: by 10.112.26.10 with SMTP id h10mr682211lbg.4.1349190428214; Tue, 02 Oct 2012 08:07:08 -0700 (PDT) Received: by 10.112.108.1 with HTTP; Tue, 2 Oct 2012 08:07:07 -0700 (PDT) Date: Tue, 2 Oct 2012 18:07:07 +0300 Message-ID: From: Boris Astardzhiev To: freebsd-fs@freebsd.org Content-Type: multipart/mixed; boundary=bcaec553ffc03546c104cb14e079 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: stanislav_galabov@smartcom.bg Subject: CRC32 feature in FreeBSD's boot loader X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Oct 2012 15:07:10 -0000 --bcaec553ffc03546c104cb14e079 Content-Type: text/plain; charset=ISO-8859-1 Hello, I'm not sure that this is the right mailing list but I couldn't find a dedicated one. I would like to contribute a new feature for the FreeBSD boot loader - a command that calculates the CRC32 of a specified file name. It uses libz's CRC32 implementation. While attempting to make libstand's nandfs to work adequately I've experienced NAND flash page/block misreadings from U-Boot's API side. Therefore I was in a need of a tool that could prove that a file had been read correctly in this very stage of the FreeBSD boot process. So here it is. In addition to the CRC calculation the size of the stipulated file is printed as well. Any comments will be appreciated. Greetings, Boris Astardzhiev / Smartcom Bulgaria AD --bcaec553ffc03546c104cb14e079 Content-Type: application/octet-stream; name="loader-crc32.diff" Content-Disposition: attachment; filename="loader-crc32.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h7t4ky6b2 ZGlmZiAtLWdpdCBhL2xpYi9saWJzdGFuZC9NYWtlZmlsZSBiL2xpYi9saWJzdGFuZC9NYWtlZmls ZQppbmRleCBhMjZjNTFkLi4wOTVmOTYyIDEwMDY0NAotLS0gYS9saWIvbGlic3RhbmQvTWFrZWZp bGUKKysrIGIvbGliL2xpYnN0YW5kL01ha2VmaWxlCkBAIC0zOSw5ICszOSw5IEBAIENGTEFHUys9 CS1tc29mdC1mbG9hdCAtRF9TVEFOREFMT05FCiAuZW5kaWYKIAogIyBzdGFuZGFsb25lIGNvbXBv bmVudHMgYW5kIHN0dWZmIHdlIGhhdmUgbW9kaWZpZWQgbG9jYWxseQotU1JDUys9CXp1dGlsLmgg X19tYWluLmMgYXNzZXJ0LmMgYmNkLmMgYnN3YXAuYyBlbnZpcm9ubWVudC5jIGdldG9wdC5jIGdl dHMuYyBcCi0JZ2xvYmFscy5jIHBhZ2VyLmMgcHJpbnRmLmMgc3RyZHVwLmMgc3RyZXJyb3IuYyBz dHJ0b2wuYyByYW5kb20uYyBcCi0Jc2Jyay5jIHR3aWRkbGUuYyB6YWxsb2MuYyB6YWxsb2NfbWFs bG9jLmMKK1NSQ1MrPQl6dXRpbC5oIF9fbWFpbi5jIGFzc2VydC5jIGJjZC5jIGJzd2FwLmMgY3Jj LmMgZW52aXJvbm1lbnQuYyBnZXRvcHQuYyBcCisJZ2V0cy5jIGdsb2JhbHMuYyBwYWdlci5jIHBy aW50Zi5jIHN0cmR1cC5jIHN0cmVycm9yLmMgc3RydG9sLmMgXAorCXJhbmRvbS5jIHNicmsuYyB0 d2lkZGxlLmMgemFsbG9jLmMgemFsbG9jX21hbGxvYy5jCiAKICMgcHJpdmF0ZSAocHJ1bmVkKSB2 ZXJzaW9ucyBvZiBsaWJjIHN0cmluZyBmdW5jdGlvbnMKIFNSQ1MrPQlzdHJjYXNlY21wLmMKZGlm ZiAtLWdpdCBhL2xpYi9saWJzdGFuZC9jcmMuYyBiL2xpYi9saWJzdGFuZC9jcmMuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzFkMzkwCi0tLSAvZGV2L251bGwKKysrIGIv bGliL2xpYnN0YW5kL2NyYy5jCkBAIC0wLDAgKzEsMTI1IEBACisvKi0KKyAqIENvcHlyaWdodCAo YykgMjAxMiBCb3JpcyBBc3RhcmR6aGlldiAvIFNtYXJ0Y29tIEJ1bGdhcmlhIEFECisgKiBBbGwg cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE RUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBF WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g RVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1Ig QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig Q09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9G IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9X RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP TlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9G IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAq IFNVQ0ggREFNQUdFLgorICovCisKKy8qCisgKiBTaW1wbGUgQ1JDIGNhbGN1bGF0aW9uIG9mIGEg ZmlsZS4KKyAqLworCisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisjaW5jbHVkZSAic3RhbmQuaCIK KyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlICIuLi9saWJ6L3psaWIuaCIKKworLyoKKyAq IERpc3BsYXkgY2hlY2tzdW0uCisgKi8KKworaW50CitjcmMzMl9maWxlKGNvbnN0IGNoYXIgKmZu YW1lKQoreworCXVuc2lnbmVkIGxvbmcgCWNyYyA9IDBVTDsKKwljaGFyIAkJYnVmWzgwXTsKKwlz aXplX3QgCQlieXRlczsKKwlpbnQJCWZkOworCWludAkJcmVzOworCW9mZl90IAkJZW5kX29mZjsK KwlzdHJ1Y3QJc3RhdCAJc3Q7CisKKwlyZXMgPSAwOworCWZkID0gb3BlbihmbmFtZSwgT19SRE9O TFkpOworCWlmIChmZCA9PSAtMSkgeworCQlwcmludGYoImNhbid0IG9wZW4gJyVzJzogJXNcbiIs IGZuYW1lLCBzdHJlcnJvcihlcnJubykpOworCQlyZXMgPSAtMTsKKwkJcmV0dXJuIChyZXMpOwor CX0KKwkKKwkvKgorCSAqIENoZWNrIGlmIGl0IGlzIGEgcmVndWxhciBmaWxlLgorCSAqLworCW1l bXNldCgmc3QsIDAsIHNpemVvZihzdCkpOworCWlmIChmc3RhdChmZCwgJnN0KSA9PSAtMSkgewor CQlwcmludGYoImNhbid0IGdldCBzdGF0aXN0aWNzIG9mICclcyc6ICVzXG4iLCBmbmFtZSwKKwkJ ICAgIHN0cmVycm9yKGVycm5vKSk7CisJCWNsb3NlKGZkKTsKKwkJcmVzID0gLTE7CisJCXJldHVy biAocmVzKTsKKwl9CisKKwlpZiAoIShTX0lTUkVHKHN0LnN0X21vZGUpKSkgeworCQlwcmludGYo IiclcycgaXMgbm90IGEgcmVndWxhciBmaWxlXG4iLCBmbmFtZSk7CisJCWNsb3NlKGZkKTsKKwkJ cmVzID0gLTE7CisJCXJldHVybiAocmVzKTsKKwl9CisKKwkvKiAKKwkgKiBHcmFiIGZpbGUgc2l6 ZS4gCisJICovCQorCWVuZF9vZmYgPSBsc2VlayhmZCwgMCwgU0VFS19FTkQpOworCWlmIChlbmRf b2ZmID09IC0xKSB7CisJCXByaW50ZigiY2FuJ3QgZ2V0IGVuZCBvZiAnJXMnOiAlc1xuIiwgZm5h bWUsIHN0cmVycm9yKGVycm5vKSk7CisJCWNsb3NlKGZkKTsKKwkJcmVzID0gLTE7CisJCXJldHVy biAocmVzKTsKKwl9CisJCisJaWYgKGxzZWVrKGZkLCAwLCBTRUVLX1NFVCkgPT0gLTEpIHsKKwkJ cHJpbnRmKCJjYW4ndCBzZXQgb2Zmc2V0IHRvICclcyc6ICVzXG4iLCBmbmFtZSwKKwkJICAgIHN0 cmVycm9yKGVycm5vKSk7CisJCWNsb3NlKGZkKTsKKwkJcmVzID0gLTE7CisJCXJldHVybiAocmVz KTsKKwl9CisKKwkvKiAKKwkgKiBDYWxjdWxhdGUgY2hlY2tzdW0uCisJICovCisJY3JjID0gY3Jj MzIoY3JjLCAwLCAwKTsKKwlmb3IgKDs7KSB7CisJCWJ5dGVzID0gcmVhZChmZCwgYnVmLCBzaXpl b2YoYnVmKSk7CisJCWlmIChieXRlcyA8IDApIHsKKwkJCXJlcyA9IC0xOworCQkJYnJlYWs7CisJ CX0KKworCQlpZiAoIWJ5dGVzKQorCQkJYnJlYWs7CisKKwkJY3JjID0gY3JjMzIoY3JjLCBidWYs IGJ5dGVzKTsKKwl9CisKKwlpZiAoIXJlcykgeworCQlwcmludGYoImZpbGU6ICAgJXNcbiIsIGZu YW1lKTsKKwkJcHJpbnRmKCJcdCBzaXplOiAlbGx1XG4iLCBlbmRfb2ZmKTsKKwkJcHJpbnRmKCJc dGNyYzMyOiAweCUwOGx4XG4iLCBjcmMpOworCX0gZWxzZQorCQlwcmludGYoImNhbid0IGNhbGN1 bGF0ZSBjcmMzMiBvZiAnJXMnXG4iLCBmbmFtZSk7CisKKwljbG9zZShmZCk7CisKKwlyZXR1cm4g KHJlcyk7Cit9CisKZGlmZiAtLWdpdCBhL2xpYi9saWJzdGFuZC9zdGFuZC5oIGIvbGliL2xpYnN0 YW5kL3N0YW5kLmgKaW5kZXggMjBiNzE3ZS4uMTE5YzY5NiAxMDA2NDQKLS0tIGEvbGliL2xpYnN0 YW5kL3N0YW5kLmgKKysrIGIvbGliL2xpYnN0YW5kL3N0YW5kLmgKQEAgLTI2Nyw2ICsyNjcsOSBA QCBleHRlcm4gY2hhcgkqb3B0YXJnOwkJCS8qIGdldG9wdCgzKSBleHRlcm5hbCB2YXJpYWJsZXMg Ki8KIGV4dGVybiBpbnQJb3B0aW5kLCBvcHRlcnIsIG9wdG9wdCwgb3B0cmVzZXQ7CiBleHRlcm4g aW50CWdldG9wdChpbnQsIGNoYXIgKiBjb25zdCBbXSwgY29uc3QgY2hhciAqKTsKIAorLyogY3Jj LmMgKi8KK2V4dGVybiBpbnQJY3JjMzJfZmlsZShjb25zdCBjaGFyICpmbmFtZSk7CisKIC8qIHBh Z2VyLmMgKi8KIGV4dGVybiB2b2lkCXBhZ2VyX29wZW4odm9pZCk7CiBleHRlcm4gdm9pZAlwYWdl cl9jbG9zZSh2b2lkKTsKZGlmZiAtLWdpdCBhL3N5cy9ib290L2NvbW1vbi9jb21tYW5kcy5jIGIv c3lzL2Jvb3QvY29tbW9uL2NvbW1hbmRzLmMKaW5kZXggYjRmZTExOC4uZmJiZWM2NiAxMDA2NDQK LS0tIGEvc3lzL2Jvb3QvY29tbW9uL2NvbW1hbmRzLmMKKysrIGIvc3lzL2Jvb3QvY29tbW9uL2Nv bW1hbmRzLmMKQEAgLTQ5NiwzICs0OTYsMjAgQEAgY29tbWFuZF9sc2RldihpbnQgYXJnYywgY2hh ciAqYXJndltdKQogICAgIHJldHVybihDTURfT0spOwogfQogCisvKgorICogQ2FsY3VsYXRlIENS QzMyIG9mIGEgZmlsZS4KKyAqLworQ09NTUFORF9TRVQoY3JjMzIsICJjcmMzMiIsICJjYWxjdWxh dGUgY3JjMzIgb2YgYSBmaWxlIiwgY29tbWFuZF9jcmMzMik7CisKK3N0YXRpYyBpbnQKK2NvbW1h bmRfY3JjMzIoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgICBpbnQgaSwgcmVzOworCisg ICAgcmVzID0gMDsKKyAgICBmb3IgKGkgPSAxOyAoaSA8IGFyZ2MpICYmICFyZXM7IGkrKykKKyAg ICAJcmVzIHw9IGNyYzMyX2ZpbGUoYXJndltpXSk7CisKKyAgICByZXR1cm4gKCFyZXMgPyAoQ01E X09LKSA6IChDTURfRVJST1IpKTsKK30KKwpkaWZmIC0tZ2l0IGEvc3lzL2Jvb3QvY29tbW9uL2xv YWRlci44IGIvc3lzL2Jvb3QvY29tbW9uL2xvYWRlci44CmluZGV4IDI1ZDIyNzAuLjk1Y2M0N2Ig MTAwNjQ0Ci0tLSBhL3N5cy9ib290L2NvbW1vbi9sb2FkZXIuOAorKysgYi9zeXMvYm9vdC9jb21t b24vbG9hZGVyLjgKQEAgLTE3NCw2ICsxNzQsOCBAQCBUaGUgYmVoYXZpb3Igb2YgdGhpcyBidWls dGluIGlzIGNoYW5nZWQgaWYKIC5YciBsb2FkZXIuNHRoIDgKIGlzIGxvYWRlZC4KIC5QcAorLkl0 IEljIGNyYzMyCitDYWxjdWxhdGUgQ1JDMzIgb2YgYSBzcGVjaWZpZWQgZmlsZS4KIC5JdCBJYyBl Y2hvIFhvCiAuT3AgRmwgbgogLk9wIEFxIG1lc3NhZ2UK --bcaec553ffc03546c104cb14e079--