Index: head/share/man/man4/geom_uzip.4 =================================================================== --- head/share/man/man4/geom_uzip.4 +++ head/share/man/man4/geom_uzip.4 @@ -36,6 +36,7 @@ place the following line in your kernel configuration file: .Bd -ragged -offset indent +.Cd "device xz" .Cd "options GEOM_UZIP" .Ed .Pp Index: head/sys/conf/NOTES =================================================================== --- head/sys/conf/NOTES +++ head/sys/conf/NOTES @@ -3004,3 +3004,5 @@ device spigen # Generic access to SPI devices from userland. # Enable legacy /dev/spigenN name aliases for /dev/spigenX.Y devices. options SPIGEN_LEGACY_CDEVNAME # legacy device names for spigen + +device xz # xz_embedded LZMA de-compression library Index: head/sys/conf/files =================================================================== --- head/sys/conf/files +++ head/sys/conf/files @@ -636,6 +636,17 @@ compile-with "${NORMAL_C} -I$S/contrib/ngatm" contrib/ngatm/netnatm/sig/sig_verify.c optional ngatm_uni \ compile-with "${NORMAL_C} -I$S/contrib/ngatm" +# xz +dev/xz/xz_mod.c optional xz \ + compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" +contrib/xz-embedded/linux/lib/xz/xz_crc32.c optional xz \ + compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" +contrib/xz-embedded/linux/lib/xz/xz_dec_bcj.c optional xz \ + compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" +contrib/xz-embedded/linux/lib/xz/xz_dec_lzma2.c optional xz \ + compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" +contrib/xz-embedded/linux/lib/xz/xz_dec_stream.c optional xz \ + compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" # Zstd contrib/zstd/lib/freebsd/zstd_kmalloc.c optional zstdio compile-with ${ZSTD_C} contrib/zstd/lib/common/zstd_common.c optional zstdio compile-with ${ZSTD_C} @@ -3659,21 +3670,6 @@ geom/raid3/g_raid3_ctl.c optional geom_raid3 geom/shsec/g_shsec.c optional geom_shsec geom/stripe/g_stripe.c optional geom_stripe -contrib/xz-embedded/freebsd/xz_malloc.c \ - optional xz_embedded | geom_uzip \ - compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" -contrib/xz-embedded/linux/lib/xz/xz_crc32.c \ - optional xz_embedded | geom_uzip \ - compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" -contrib/xz-embedded/linux/lib/xz/xz_dec_bcj.c \ - optional xz_embedded | geom_uzip \ - compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" -contrib/xz-embedded/linux/lib/xz/xz_dec_lzma2.c \ - optional xz_embedded | geom_uzip \ - compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" -contrib/xz-embedded/linux/lib/xz/xz_dec_stream.c \ - optional xz_embedded | geom_uzip \ - compile-with "${NORMAL_C} -I$S/contrib/xz-embedded/freebsd/ -I$S/contrib/xz-embedded/linux/lib/xz/ -I$S/contrib/xz-embedded/linux/include/linux/" geom/uzip/g_uzip.c optional geom_uzip geom/uzip/g_uzip_lzma.c optional geom_uzip geom/uzip/g_uzip_wrkthr.c optional geom_uzip Index: head/sys/contrib/xz-embedded/freebsd/xz_config.h =================================================================== --- head/sys/contrib/xz-embedded/freebsd/xz_config.h +++ head/sys/contrib/xz-embedded/freebsd/xz_config.h @@ -35,7 +35,6 @@ #include #include "xz_malloc.h" -#define XZ_DEC_SINGLE 1 #define XZ_PREBOOT 1 #undef XZ_EXTERN Index: head/sys/contrib/xz-embedded/freebsd/xz_malloc.c =================================================================== --- head/sys/contrib/xz-embedded/freebsd/xz_malloc.c +++ head/sys/contrib/xz-embedded/freebsd/xz_malloc.c @@ -1,49 +0,0 @@ -/*- - * Copyright (c) 2010-2012 Aleksandr Rybalko - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include "xz_malloc.h" - -/* Wraper for XZ decompressor memmory pool */ - -static MALLOC_DEFINE(XZ_DEC, "XZ_DEC", "XZ decompressor data"); - -void * -xz_malloc(unsigned long size) -{ - void *addr; - - addr = malloc(size, XZ_DEC, M_NOWAIT); - return (addr); -} - -void -xz_free(void *addr) -{ - - free(addr, XZ_DEC); -} Index: head/sys/dev/xz/xz_mod.c =================================================================== --- head/sys/dev/xz/xz_mod.c +++ head/sys/dev/xz/xz_mod.c @@ -0,0 +1,90 @@ +/*- + * Copyright (c) 2010-2012 Aleksandr Rybalko + * Copyright (c) 2019 Mellanox Technologies + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include "xz.h" +#include "xz_malloc.h" + +/* Wraper for XZ decompressor memory pool */ + +static MALLOC_DEFINE(XZ_DEC, "XZ_DEC", "XZ decompressor data"); + +void * +xz_malloc(unsigned long size) +{ + void *addr; + + addr = malloc(size, XZ_DEC, M_NOWAIT); + return (addr); +} + +void +xz_free(void *addr) +{ + + free(addr, XZ_DEC); +} + +static int +xz_module_event_handler(module_t mod, int what, void *arg) +{ + int error; + + switch (what) { + case MOD_LOAD: +#if XZ_INTERNAL_CRC32 + xz_crc32_init(); +#endif +#if XZ_INTERNAL_CRC64 + xz_crc64_init(); +#endif + error = 0; + break; + case MOD_UNLOAD: + error = 0; + break; + default: + error = EOPNOTSUPP; + break; + } + + return (error); +} + +static moduledata_t xz_moduledata = { + "xz", + xz_module_event_handler, + NULL +}; + +DECLARE_MODULE(xz, xz_moduledata, SI_SUB_INIT_IF, SI_ORDER_ANY); +MODULE_VERSION(xz, 1); Index: head/sys/geom/uzip/g_uzip.c =================================================================== --- head/sys/geom/uzip/g_uzip.c +++ head/sys/geom/uzip/g_uzip.c @@ -921,5 +921,6 @@ }; DECLARE_GEOM_CLASS(g_uzip_class, g_uzip); +MODULE_DEPEND(g_uzip, xz, 1, 1, 1); MODULE_DEPEND(g_uzip, zlib, 1, 1, 1); MODULE_VERSION(geom_uzip, 0); Index: head/sys/geom/uzip/g_uzip_lzma.c =================================================================== --- head/sys/geom/uzip/g_uzip_lzma.c +++ head/sys/geom/uzip/g_uzip_lzma.c @@ -103,7 +103,6 @@ struct g_uzip_lzma *lzp; lzp = malloc(sizeof(struct g_uzip_lzma), M_GEOM_UZIP, M_WAITOK); - xz_crc32_init(); lzp->s = xz_dec_init(XZ_SINGLE, 0); if (lzp->s == NULL) { goto e1; Index: head/sys/mips/conf/ALFA_HORNET_UB =================================================================== --- head/sys/mips/conf/ALFA_HORNET_UB +++ head/sys/mips/conf/ALFA_HORNET_UB @@ -49,7 +49,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/AP121 =================================================================== --- head/sys/mips/conf/AP121 +++ head/sys/mips/conf/AP121 @@ -43,7 +43,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/AP135 =================================================================== --- head/sys/mips/conf/AP135 +++ head/sys/mips/conf/AP135 @@ -46,7 +46,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/AP143 =================================================================== --- head/sys/mips/conf/AP143 +++ head/sys/mips/conf/AP143 @@ -43,7 +43,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/AP91 =================================================================== --- head/sys/mips/conf/AP91 +++ head/sys/mips/conf/AP91 @@ -38,7 +38,7 @@ # options MSDOSFS # uncompress - to boot read-only lzma natively from flash -device geom_uzip +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:/dev/map/rootfs.uzip\" Index: head/sys/mips/conf/AP93 =================================================================== --- head/sys/mips/conf/AP93 +++ head/sys/mips/conf/AP93 @@ -26,7 +26,7 @@ options MSDOSFS # uncompress - to boot read-only lzma natively from flash -device geom_uzip +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:/dev/map/rootfs.uzip\" Index: head/sys/mips/conf/AP94 =================================================================== --- head/sys/mips/conf/AP94 +++ head/sys/mips/conf/AP94 @@ -21,6 +21,7 @@ # GEOM modules device geom_redboot # to get access to the SPI flash partitions +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:md0.uzip\" Index: head/sys/mips/conf/AP96 =================================================================== --- head/sys/mips/conf/AP96 +++ head/sys/mips/conf/AP96 @@ -27,7 +27,7 @@ options MSDOSFS # uncompress - to boot read-only lzma natively from flash -device geom_uzip +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:/dev/map/rootfs.uzip\" Index: head/sys/mips/conf/BCM =================================================================== --- head/sys/mips/conf/BCM +++ head/sys/mips/conf/BCM @@ -39,7 +39,7 @@ options UFS_ACL #Support for access control lists options UFS_DIRHASH #Improve performance on big directories -device geom_uzip +device xz options GEOM_UZIP options GEOM_LABEL # Providers labelization. options ROOTDEVNAME=\"ufs:ufs/FBSD\" # assumes FW built by Index: head/sys/mips/conf/CARAMBOLA2 =================================================================== --- head/sys/mips/conf/CARAMBOLA2 +++ head/sys/mips/conf/CARAMBOLA2 @@ -48,7 +48,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/DB120 =================================================================== --- head/sys/mips/conf/DB120 +++ head/sys/mips/conf/DB120 @@ -38,7 +38,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/DIR-655A1 =================================================================== --- head/sys/mips/conf/DIR-655A1 +++ head/sys/mips/conf/DIR-655A1 @@ -41,7 +41,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/DIR-825B1 =================================================================== --- head/sys/mips/conf/DIR-825B1 +++ head/sys/mips/conf/DIR-825B1 @@ -47,6 +47,7 @@ # GEOM modules device geom_map # to get access to the SPI flash partitions +device xz options GEOM_UZIP options GEOM_PART_GPT Index: head/sys/mips/conf/ENH200 =================================================================== --- head/sys/mips/conf/ENH200 +++ head/sys/mips/conf/ENH200 @@ -26,7 +26,7 @@ options MSDOSFS # uncompress - to boot read-only lzma natively from flash -device geom_uzip +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:/dev/map/rootfs.uzip\" Index: head/sys/mips/conf/MT7620A_FDT =================================================================== --- head/sys/mips/conf/MT7620A_FDT +++ head/sys/mips/conf/MT7620A_FDT @@ -26,7 +26,7 @@ options ROOTDEVNAME=\"ufs:md0.uzip\" # Support geom_uzip(4) compressed disk images -device geom_uzip +device xz options GEOM_UZIP # Support md(4) and md-based rootfs Index: head/sys/mips/conf/MT7620N_FDT =================================================================== --- head/sys/mips/conf/MT7620N_FDT +++ head/sys/mips/conf/MT7620N_FDT @@ -26,7 +26,7 @@ options ROOTDEVNAME=\"ufs:md0.uzip\" # Support geom_uzip(4) compressed disk images -device geom_uzip +device xz options GEOM_UZIP # Support md(4) and md-based rootfs Index: head/sys/mips/conf/MT7621_FDT =================================================================== --- head/sys/mips/conf/MT7621_FDT +++ head/sys/mips/conf/MT7621_FDT @@ -26,7 +26,7 @@ options ROOTDEVNAME=\"ufs:md0.uzip\" # Support geom_uzip(4) compressed disk images -device geom_uzip +device xz options GEOM_UZIP # Support md(4) and md-based rootfs Index: head/sys/mips/conf/MT7628_FDT =================================================================== --- head/sys/mips/conf/MT7628_FDT +++ head/sys/mips/conf/MT7628_FDT @@ -27,7 +27,7 @@ options ROOTDEVNAME=\"ufs:md0.uzip\" # Support geom_uzip(4) compressed disk images -device geom_uzip +device xz options GEOM_UZIP # Support md(4) and md-based rootfs Index: head/sys/mips/conf/ONIONOMEGA =================================================================== --- head/sys/mips/conf/ONIONOMEGA +++ head/sys/mips/conf/ONIONOMEGA @@ -45,7 +45,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/PB47 =================================================================== --- head/sys/mips/conf/PB47 +++ head/sys/mips/conf/PB47 @@ -32,7 +32,7 @@ options MSDOSFS # uncompress - to boot read-only lzma natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/PB92 =================================================================== --- head/sys/mips/conf/PB92 +++ head/sys/mips/conf/PB92 @@ -55,7 +55,7 @@ #options UFS_DIRHASH #Improve performance on big directories # Support uncompress lzma rootfs -device geom_uzip +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:/dev/map/rootfs.uzip\" Index: head/sys/mips/conf/PICOSTATION_M2HP =================================================================== --- head/sys/mips/conf/PICOSTATION_M2HP +++ head/sys/mips/conf/PICOSTATION_M2HP @@ -38,7 +38,7 @@ # options MSDOSFS # uncompress - to boot read-only lzma natively from flash -device geom_uzip +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:/dev/map/rootfs.uzip\" Index: head/sys/mips/conf/ROCKET_M2HP =================================================================== --- head/sys/mips/conf/ROCKET_M2HP +++ head/sys/mips/conf/ROCKET_M2HP @@ -38,7 +38,7 @@ # options MSDOSFS # uncompress - to boot read-only lzma natively from flash -device geom_uzip +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:/dev/map/rootfs.uzip\" Index: head/sys/mips/conf/ROUTERSTATION =================================================================== --- head/sys/mips/conf/ROUTERSTATION +++ head/sys/mips/conf/ROUTERSTATION @@ -14,7 +14,7 @@ # GEOM modules device geom_redboot # to get access to the SPI flash partitions -device geom_uzip # compressed in-memory filesystem support +device xz options GEOM_UZIP # For DOS Index: head/sys/mips/conf/ROUTERSTATION_MFS =================================================================== --- head/sys/mips/conf/ROUTERSTATION_MFS +++ head/sys/mips/conf/ROUTERSTATION_MFS @@ -12,6 +12,7 @@ # GEOM modules device geom_redboot # to get access to the SPI flash partitions +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:md0.uzip\" Index: head/sys/mips/conf/RSPRO =================================================================== --- head/sys/mips/conf/RSPRO +++ head/sys/mips/conf/RSPRO @@ -15,7 +15,7 @@ # GEOM modules device geom_redboot # to get access to the SPI flash partitions -device geom_uzip # compressed in-memory filesystem support +device xz options GEOM_UZIP # For DOS Index: head/sys/mips/conf/RSPRO_MFS =================================================================== --- head/sys/mips/conf/RSPRO_MFS +++ head/sys/mips/conf/RSPRO_MFS @@ -15,6 +15,7 @@ # GEOM modules device geom_redboot # to get access to the SPI flash partitions +device xz options GEOM_UZIP # Boot from the first MFS uzip Index: head/sys/mips/conf/RSPRO_STANDALONE =================================================================== --- head/sys/mips/conf/RSPRO_STANDALONE +++ head/sys/mips/conf/RSPRO_STANDALONE @@ -14,7 +14,7 @@ # GEOM modules device geom_redboot # to get access to the SPI flash partitions -device geom_uzip # compressed in-memory filesystem support +device xz options GEOM_UZIP # For DOS Index: head/sys/mips/conf/RT3050_FDT =================================================================== --- head/sys/mips/conf/RT3050_FDT +++ head/sys/mips/conf/RT3050_FDT @@ -27,7 +27,7 @@ options ROOTDEVNAME=\"ufs:md0.uzip\" # Support geom_uzip(4) compressed disk images -device geom_uzip +device xz options GEOM_UZIP # Support md(4) and md-based rootfs Index: head/sys/mips/conf/RT3352_FDT =================================================================== --- head/sys/mips/conf/RT3352_FDT +++ head/sys/mips/conf/RT3352_FDT @@ -26,7 +26,7 @@ options ROOTDEVNAME=\"ufs:md0.uzip\" # Support geom_uzip(4) compressed disk images -device geom_uzip +device xz options GEOM_UZIP # Support md(4) and md-based rootfs Index: head/sys/mips/conf/RT3883_FDT =================================================================== --- head/sys/mips/conf/RT3883_FDT +++ head/sys/mips/conf/RT3883_FDT @@ -27,7 +27,7 @@ options ROOTDEVNAME=\"ufs:md0.uzip\" # Support geom_uzip(4) compressed disk images -device geom_uzip +device xz options GEOM_UZIP # Support md(4) and md-based rootfs Index: head/sys/mips/conf/RT5350_FDT =================================================================== --- head/sys/mips/conf/RT5350_FDT +++ head/sys/mips/conf/RT5350_FDT @@ -26,7 +26,7 @@ options ROOTDEVNAME=\"ufs:md0.uzip\" # Support geom_uzip(4) compressed disk images -device geom_uzip +device xz options GEOM_UZIP # Support md(4) and md-based rootfs Index: head/sys/mips/conf/TL-ARCHERC7V2 =================================================================== --- head/sys/mips/conf/TL-ARCHERC7V2 +++ head/sys/mips/conf/TL-ARCHERC7V2 @@ -46,7 +46,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/TL-WDR4300 =================================================================== --- head/sys/mips/conf/TL-WDR4300 +++ head/sys/mips/conf/TL-WDR4300 @@ -39,7 +39,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/TL-WR1043NDv2 =================================================================== --- head/sys/mips/conf/TL-WR1043NDv2 +++ head/sys/mips/conf/TL-WR1043NDv2 @@ -34,7 +34,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/TL-WR740Nv4 =================================================================== --- head/sys/mips/conf/TL-WR740Nv4 +++ head/sys/mips/conf/TL-WR740Nv4 @@ -43,7 +43,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/TP-MR3040 =================================================================== --- head/sys/mips/conf/TP-MR3040 +++ head/sys/mips/conf/TP-MR3040 @@ -48,7 +48,7 @@ options AR71XX_ENV_UBOOT # uzip - to boot read-only lzma natively from flash -device geom_uzip +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:/dev/map/rootfs.uzip\" Index: head/sys/mips/conf/TP-WN1043ND =================================================================== --- head/sys/mips/conf/TP-WN1043ND +++ head/sys/mips/conf/TP-WN1043ND @@ -39,7 +39,7 @@ options AR71XX_ENV_UBOOT # uncompress - to boot natively from flash -device geom_uzip +device xz options GEOM_UZIP # Used for the static uboot partition map Index: head/sys/mips/conf/WZR-300HP =================================================================== --- head/sys/mips/conf/WZR-300HP +++ head/sys/mips/conf/WZR-300HP @@ -26,6 +26,7 @@ # GEOM modules device geom_map # to get access to the SPI flash partitions +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:/dev/map/rootfs.uzip\" Index: head/sys/mips/conf/WZR-HPAG300H =================================================================== --- head/sys/mips/conf/WZR-HPAG300H +++ head/sys/mips/conf/WZR-HPAG300H @@ -25,6 +25,7 @@ options BOOTVERBOSE # GEOM modules +device xz options GEOM_UZIP device geom_map # to get access to the SPI flash partitions Index: head/sys/mips/conf/std.XLP =================================================================== --- head/sys/mips/conf/std.XLP +++ head/sys/mips/conf/std.XLP @@ -56,6 +56,7 @@ #options LOCK_DEBUG #options LOCK_PROFILING +device xz options GEOM_UZIP # Device tree Index: head/sys/modules/Makefile =================================================================== --- head/sys/modules/Makefile +++ head/sys/modules/Makefile @@ -404,6 +404,7 @@ ${_x86bios} \ ${_xe} \ xl \ + xz \ zlib .if ${MK_AUTOFS} != "no" || defined(ALL_MODULES) Index: head/sys/modules/geom/geom_uzip/Makefile =================================================================== --- head/sys/modules/geom/geom_uzip/Makefile +++ head/sys/modules/geom/geom_uzip/Makefile @@ -8,16 +8,10 @@ g_uzip_wrkthr.h #CFLAGS= -g -DINVARIANT_SUPPORT -DINVARIANTS -.PATH: ${SRCTOP}/sys/contrib/xz-embedded/freebsd/ \ - ${SRCTOP}/sys/contrib/xz-embedded/linux/lib/xz/ \ - ${SRCTOP}/sys/contrib/xz-embedded/linux/include/linux/ \ - ${SRCTOP}/sys/net +.PATH: ${SRCTOP}/sys/net CFLAGS+= -I${SRCTOP}/sys/contrib/xz-embedded/freebsd \ -I${SRCTOP}/sys/contrib/xz-embedded/linux/lib/xz/ -SRCS+= xz_crc32.c xz_dec_bcj.c xz_dec_lzma2.c xz_dec_stream.c \ - xz_malloc.c -SRCS+= xz.h xz_config.h xz_lzma2.h xz_malloc.h xz_private.h xz_stream.h SRCS+= opt_geom.h .include Index: head/sys/modules/xz/Makefile =================================================================== --- head/sys/modules/xz/Makefile +++ head/sys/modules/xz/Makefile @@ -0,0 +1,20 @@ +# $FreeBSD$ + +.PATH: ${SRCTOP}/sys/dev/xz +.PATH: ${SRCTOP}/sys/contrib/xz-embedded/freebsd +.PATH: ${SRCTOP}/sys/contrib/xz-embedded/linux/lib/xz + +KMOD= xz +SRCS= \ + xz_crc32.c \ + xz_dec_bcj.c \ + xz_dec_lzma2.c \ + xz_dec_stream.c \ + xz_mod.c + +CFLAGS+= \ + -I${SRCTOP}/sys/contrib/xz-embedded/freebsd \ + -I${SRCTOP}/sys/contrib/xz-embedded/linux/lib/xz \ + -I${SRCTOP}/sys/contrib/xz-embedded/linux/include/linux + +.include