From patchwork Thu Jul 30 13:33:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joao Marcos Costa X-Patchwork-Id: 1338826 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bootlin.com Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BHWbM626Sz9sSt for ; Thu, 30 Jul 2020 23:34:07 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8757B826C7; Thu, 30 Jul 2020 15:33:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id CE896826C7; Thu, 30 Jul 2020 15:33:56 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H2, SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net [217.70.183.200]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 999F682677 for ; Thu, 30 Jul 2020 15:33:53 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=joaomarcos.costa@bootlin.com X-Originating-IP: 46.193.64.106 Received: from localhost.localdomain (eth-east-parth2-46-193-64-106.wb.wifirst.net [46.193.64.106]) (Authenticated sender: joaomarcos.costa@bootlin.com) by relay7-d.mail.gandi.net (Postfix) with ESMTPA id 9A05F20011; Thu, 30 Jul 2020 13:33:52 +0000 (UTC) From: Joao Marcos Costa To: u-boot@lists.denx.de Cc: joaomarcos.costa@bootlin.com, miquel.raynal@bootlin.com, thomas.petazzoni@bootlin.com Subject: [PATCH v4 0/6] Add support for the SquashFS filesystem Date: Thu, 30 Jul 2020 15:33:46 +0200 Message-Id: <20200730133352.18223-1-joaomarcos.costa@bootlin.com> X-Mailer: git-send-email 2.17.1 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean Hello! This series adds support for the SquashFS filesystem. For now, zlib is the only supported compression type. This is my first contribution to U-Boot as well as to a major Open Source project. Changes in v4: - Add tests for the SquashFS commands - Add missing endianness convertions - Improve pointers management Changes in v3: - Replace CONFIG_IS_ENABLED by IS_ENABLED in fs/fs.c Changes in v2: - Replace sqfs_ls() by U-Boot's fs_ls_generic() - Add info. to MAINTAINERS - Fix build failures - Fix style problems Joao Marcos Costa (6): fs/squashfs: new filesystem fs/squashfs: add filesystem commands include/u-boot, lib/zlib: add sources for zlib decompression fs/squashfs: add support for zlib decompression fs/fs.c: add symbolic link case to fs_ls_generic() test/py: Add tests for the SquashFS commands MAINTAINERS | 8 + cmd/Kconfig | 6 + cmd/Makefile | 1 + cmd/sqfs.c | 42 + common/spl/Kconfig | 9 + configs/sandbox_defconfig | 1 + fs/Kconfig | 2 + fs/Makefile | 2 + fs/fs.c | 18 + fs/squashfs/Kconfig | 11 + fs/squashfs/Makefile | 7 + fs/squashfs/sqfs.c | 1538 +++++++++++++++++ fs/squashfs/sqfs_decompressor.c | 59 + fs/squashfs/sqfs_decompressor.h | 58 + fs/squashfs/sqfs_dir.c | 91 + fs/squashfs/sqfs_filesystem.h | 300 ++++ fs/squashfs/sqfs_inode.c | 155 ++ fs/squashfs/sqfs_utils.h | 49 + include/fs.h | 1 + include/squashfs.h | 25 + include/u-boot/zlib.h | 32 + lib/Kconfig | 7 + lib/zlib/uncompr.c | 97 ++ lib/zlib/zlib.c | 3 + .../test_fs/test_squashfs/sqfs_common.py | 42 + .../test_fs/test_squashfs/test_sqfs_load.py | 33 + .../test_fs/test_squashfs/test_sqfs_ls.py | 26 + 27 files changed, 2623 insertions(+) create mode 100644 cmd/sqfs.c create mode 100644 fs/squashfs/Kconfig create mode 100644 fs/squashfs/Makefile create mode 100644 fs/squashfs/sqfs.c create mode 100644 fs/squashfs/sqfs_decompressor.c create mode 100644 fs/squashfs/sqfs_decompressor.h create mode 100644 fs/squashfs/sqfs_dir.c create mode 100644 fs/squashfs/sqfs_filesystem.h create mode 100644 fs/squashfs/sqfs_inode.c create mode 100644 fs/squashfs/sqfs_utils.h create mode 100644 include/squashfs.h create mode 100644 lib/zlib/uncompr.c create mode 100644 test/py/tests/test_fs/test_squashfs/sqfs_common.py create mode 100644 test/py/tests/test_fs/test_squashfs/test_sqfs_load.py create mode 100644 test/py/tests/test_fs/test_squashfs/test_sqfs_ls.py