diff --git a/share/man/man4/geom_uzip.4 b/share/man/man4/geom_uzip.4 index 4dbab524cca3..d7562914cab0 100644 --- a/share/man/man4/geom_uzip.4 +++ b/share/man/man4/geom_uzip.4 @@ -36,6 +36,7 @@ To compile this driver into the kernel, place the following line in your kernel configuration file: .Bd -ragged -offset indent +.Cd "device xz" .Cd "options GEOM_UZIP" .Ed .Pp diff --git a/sys/conf/NOTES b/sys/conf/NOTES index bd51c0ef9f05..02dd865ea048 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -3004,3 +3004,5 @@ device n25q # 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 diff --git a/sys/conf/files b/sys/conf/files index 51fba1c8270f..ae75f7d34989 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -636,6 +636,17 @@ contrib/ngatm/netnatm/sig/sig_unimsgcpy.c optional ngatm_uni \ 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.c optional geom_raid3 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 diff --git a/sys/contrib/xz-embedded/freebsd/xz_config.h b/sys/contrib/xz-embedded/freebsd/xz_config.h index 75c63fd32cd8..7fb9a07b5982 100644 --- a/sys/contrib/xz-embedded/freebsd/xz_config.h +++ b/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 diff --git a/sys/contrib/xz-embedded/freebsd/xz_malloc.c b/sys/dev/xz/xz_mod.c similarity index 70% rename from sys/contrib/xz-embedded/freebsd/xz_malloc.c rename to sys/dev/xz/xz_mod.c index 17f45bd85be1..422d9ab83e29 100644 --- a/sys/contrib/xz-embedded/freebsd/xz_malloc.c +++ b/sys/dev/xz/xz_mod.c @@ -1,5 +1,6 @@ /*- * 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 @@ -24,11 +25,16 @@ * SUCH DAMAGE. */ +#include +__FBSDID("$FreeBSD$"); + #include #include +#include +#include "xz.h" #include "xz_malloc.h" -/* Wraper for XZ decompressor memmory pool */ +/* Wraper for XZ decompressor memory pool */ static MALLOC_DEFINE(XZ_DEC, "XZ_DEC", "XZ decompressor data"); @@ -47,3 +53,38 @@ 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); diff --git a/sys/geom/uzip/g_uzip.c b/sys/geom/uzip/g_uzip.c index deedf2db22e0..00a4781771aa 100644 --- a/sys/geom/uzip/g_uzip.c +++ b/sys/geom/uzip/g_uzip.c @@ -921,5 +921,6 @@ static struct g_class g_uzip_class = { }; 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); diff --git a/sys/geom/uzip/g_uzip_lzma.c b/sys/geom/uzip/g_uzip_lzma.c index 9efb0875be6d..83e81e5f4ba5 100644 --- a/sys/geom/uzip/g_uzip_lzma.c +++ b/sys/geom/uzip/g_uzip_lzma.c @@ -103,7 +103,6 @@ g_uzip_lzma_ctor(uint32_t blksz) 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; diff --git a/sys/mips/conf/ALFA_HORNET_UB b/sys/mips/conf/ALFA_HORNET_UB index 6a004255dc5b..3c8c491b8e6d 100644 --- a/sys/mips/conf/ALFA_HORNET_UB +++ b/sys/mips/conf/ALFA_HORNET_UB @@ -49,7 +49,7 @@ device arswitch 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 diff --git a/sys/mips/conf/AP121 b/sys/mips/conf/AP121 index 9329b990e372..2d31d7151941 100644 --- a/sys/mips/conf/AP121 +++ b/sys/mips/conf/AP121 @@ -43,7 +43,7 @@ device arswitch 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 diff --git a/sys/mips/conf/AP135 b/sys/mips/conf/AP135 index 419534d8d9f4..7ffeb9d3fe48 100644 --- a/sys/mips/conf/AP135 +++ b/sys/mips/conf/AP135 @@ -46,7 +46,7 @@ device arswitch 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 diff --git a/sys/mips/conf/AP143 b/sys/mips/conf/AP143 index 021d9722c898..8476299aafca 100644 --- a/sys/mips/conf/AP143 +++ b/sys/mips/conf/AP143 @@ -43,7 +43,7 @@ device arswitch 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 diff --git a/sys/mips/conf/AP91 b/sys/mips/conf/AP91 index c35ad9148139..8a897c455b93 100644 --- a/sys/mips/conf/AP91 +++ b/sys/mips/conf/AP91 @@ -38,7 +38,7 @@ options NO_SWAPPING # 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\" diff --git a/sys/mips/conf/AP93 b/sys/mips/conf/AP93 index c3024097e71d..0f7af123c5d9 100644 --- a/sys/mips/conf/AP93 +++ b/sys/mips/conf/AP93 @@ -26,7 +26,7 @@ options AR71XX_ENV_UBOOT 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\" diff --git a/sys/mips/conf/AP94 b/sys/mips/conf/AP94 index b433b935695d..0d91ed46427d 100644 --- a/sys/mips/conf/AP94 +++ b/sys/mips/conf/AP94 @@ -21,6 +21,7 @@ hints "AP94.hints" # GEOM modules device geom_redboot # to get access to the SPI flash partitions +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:md0.uzip\" diff --git a/sys/mips/conf/AP96 b/sys/mips/conf/AP96 index 30d1ff8338d2..1f3b8d136f0d 100644 --- a/sys/mips/conf/AP96 +++ b/sys/mips/conf/AP96 @@ -27,7 +27,7 @@ options AR71XX_ENV_UBOOT 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\" diff --git a/sys/mips/conf/BCM b/sys/mips/conf/BCM index 12dbc9dfecad..5c2753279a23 100644 --- a/sys/mips/conf/BCM +++ b/sys/mips/conf/BCM @@ -39,7 +39,7 @@ options SOFTUPDATES #Enable FFS soft updates support 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 diff --git a/sys/mips/conf/CARAMBOLA2 b/sys/mips/conf/CARAMBOLA2 index 952462134b69..76916f19d67c 100644 --- a/sys/mips/conf/CARAMBOLA2 +++ b/sys/mips/conf/CARAMBOLA2 @@ -48,7 +48,7 @@ device arswitch 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 diff --git a/sys/mips/conf/DB120 b/sys/mips/conf/DB120 index 4d9f4f95b1d9..487bf396ede5 100644 --- a/sys/mips/conf/DB120 +++ b/sys/mips/conf/DB120 @@ -38,7 +38,7 @@ device arswitch 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 diff --git a/sys/mips/conf/DIR-655A1 b/sys/mips/conf/DIR-655A1 index c2dd9d83bb96..bae498828a4d 100644 --- a/sys/mips/conf/DIR-655A1 +++ b/sys/mips/conf/DIR-655A1 @@ -41,7 +41,7 @@ device arswitch 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 diff --git a/sys/mips/conf/DIR-825B1 b/sys/mips/conf/DIR-825B1 index 95ec2f1522db..80a1d17c0ac0 100644 --- a/sys/mips/conf/DIR-825B1 +++ b/sys/mips/conf/DIR-825B1 @@ -47,6 +47,7 @@ nooptions INET6 # GEOM modules device geom_map # to get access to the SPI flash partitions +device xz options GEOM_UZIP options GEOM_PART_GPT diff --git a/sys/mips/conf/ENH200 b/sys/mips/conf/ENH200 index 93564c669208..3e5dabd1e316 100644 --- a/sys/mips/conf/ENH200 +++ b/sys/mips/conf/ENH200 @@ -26,7 +26,7 @@ options AR71XX_ENV_UBOOT 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\" diff --git a/sys/mips/conf/MT7620A_FDT b/sys/mips/conf/MT7620A_FDT index c73b66ad8373..ffd4fa7d6296 100644 --- a/sys/mips/conf/MT7620A_FDT +++ b/sys/mips/conf/MT7620A_FDT @@ -26,7 +26,7 @@ makeoptions MODULES_OVERRIDE="" 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 diff --git a/sys/mips/conf/MT7620N_FDT b/sys/mips/conf/MT7620N_FDT index 9c67d50628b9..d273acbbc8ea 100644 --- a/sys/mips/conf/MT7620N_FDT +++ b/sys/mips/conf/MT7620N_FDT @@ -26,7 +26,7 @@ makeoptions MODULES_OVERRIDE="" 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 diff --git a/sys/mips/conf/MT7621_FDT b/sys/mips/conf/MT7621_FDT index 00d85631f6d5..dcb6144c2cc6 100644 --- a/sys/mips/conf/MT7621_FDT +++ b/sys/mips/conf/MT7621_FDT @@ -26,7 +26,7 @@ makeoptions MODULES_OVERRIDE="" 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 diff --git a/sys/mips/conf/MT7628_FDT b/sys/mips/conf/MT7628_FDT index aaa988e058e9..f52167f51a6c 100644 --- a/sys/mips/conf/MT7628_FDT +++ b/sys/mips/conf/MT7628_FDT @@ -27,7 +27,7 @@ makeoptions MODULES_OVERRIDE="" 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 diff --git a/sys/mips/conf/ONIONOMEGA b/sys/mips/conf/ONIONOMEGA index 22a1965fc71a..a25cd1c481c7 100644 --- a/sys/mips/conf/ONIONOMEGA +++ b/sys/mips/conf/ONIONOMEGA @@ -45,7 +45,7 @@ device arswitch 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 diff --git a/sys/mips/conf/PB47 b/sys/mips/conf/PB47 index 0fe8c82c9ce4..1d0829ca3dfc 100644 --- a/sys/mips/conf/PB47 +++ b/sys/mips/conf/PB47 @@ -32,7 +32,7 @@ options AR71XX_REALMEM=64*1024*1024 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 diff --git a/sys/mips/conf/PB92 b/sys/mips/conf/PB92 index 550c98aaa045..8b1fb5103807 100644 --- a/sys/mips/conf/PB92 +++ b/sys/mips/conf/PB92 @@ -55,7 +55,7 @@ options FFS #Berkeley Fast Filesystem #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\" diff --git a/sys/mips/conf/PICOSTATION_M2HP b/sys/mips/conf/PICOSTATION_M2HP index b7807143bb7b..e331f7764d2d 100644 --- a/sys/mips/conf/PICOSTATION_M2HP +++ b/sys/mips/conf/PICOSTATION_M2HP @@ -38,7 +38,7 @@ options NO_SWAPPING # 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\" diff --git a/sys/mips/conf/ROCKET_M2HP b/sys/mips/conf/ROCKET_M2HP index 548841f62f21..381ae486921f 100644 --- a/sys/mips/conf/ROCKET_M2HP +++ b/sys/mips/conf/ROCKET_M2HP @@ -38,7 +38,7 @@ options NO_SWAPPING # 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\" diff --git a/sys/mips/conf/ROUTERSTATION b/sys/mips/conf/ROUTERSTATION index 3dceace74f41..903a3523529e 100644 --- a/sys/mips/conf/ROUTERSTATION +++ b/sys/mips/conf/ROUTERSTATION @@ -14,7 +14,7 @@ hints "ROUTERSTATION.hints" # 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 diff --git a/sys/mips/conf/ROUTERSTATION_MFS b/sys/mips/conf/ROUTERSTATION_MFS index 4439ce8f574d..bce300366bbd 100644 --- a/sys/mips/conf/ROUTERSTATION_MFS +++ b/sys/mips/conf/ROUTERSTATION_MFS @@ -12,6 +12,7 @@ hints "ROUTERSTATION.hints" # GEOM modules device geom_redboot # to get access to the SPI flash partitions +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:md0.uzip\" diff --git a/sys/mips/conf/RSPRO b/sys/mips/conf/RSPRO index fa28ceeab14e..6ae1c8f07e30 100644 --- a/sys/mips/conf/RSPRO +++ b/sys/mips/conf/RSPRO @@ -15,7 +15,7 @@ device pcf2123_rtc # 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 diff --git a/sys/mips/conf/RSPRO_MFS b/sys/mips/conf/RSPRO_MFS index 27da2e6fba45..029b4e68bbe9 100644 --- a/sys/mips/conf/RSPRO_MFS +++ b/sys/mips/conf/RSPRO_MFS @@ -15,6 +15,7 @@ device pcf2123_rtc # GEOM modules device geom_redboot # to get access to the SPI flash partitions +device xz options GEOM_UZIP # Boot from the first MFS uzip diff --git a/sys/mips/conf/RSPRO_STANDALONE b/sys/mips/conf/RSPRO_STANDALONE index 24b2750fb207..b0216808a33c 100644 --- a/sys/mips/conf/RSPRO_STANDALONE +++ b/sys/mips/conf/RSPRO_STANDALONE @@ -14,7 +14,7 @@ device pcf2123_rtc # 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 diff --git a/sys/mips/conf/RT3050_FDT b/sys/mips/conf/RT3050_FDT index 5db35e66301f..ee1ea1159fd6 100644 --- a/sys/mips/conf/RT3050_FDT +++ b/sys/mips/conf/RT3050_FDT @@ -27,7 +27,7 @@ makeoptions MODULES_OVERRIDE="" 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 diff --git a/sys/mips/conf/RT3352_FDT b/sys/mips/conf/RT3352_FDT index 59b60cc2261a..18550979e23b 100644 --- a/sys/mips/conf/RT3352_FDT +++ b/sys/mips/conf/RT3352_FDT @@ -26,7 +26,7 @@ makeoptions MODULES_OVERRIDE="" 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 diff --git a/sys/mips/conf/RT3883_FDT b/sys/mips/conf/RT3883_FDT index b497d41570f5..68af94118f07 100644 --- a/sys/mips/conf/RT3883_FDT +++ b/sys/mips/conf/RT3883_FDT @@ -27,7 +27,7 @@ makeoptions MODULES_OVERRIDE="" 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 diff --git a/sys/mips/conf/RT5350_FDT b/sys/mips/conf/RT5350_FDT index c0144975e226..e8c29ff55d6b 100644 --- a/sys/mips/conf/RT5350_FDT +++ b/sys/mips/conf/RT5350_FDT @@ -26,7 +26,7 @@ makeoptions MODULES_OVERRIDE="" 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 diff --git a/sys/mips/conf/TL-ARCHERC7V2 b/sys/mips/conf/TL-ARCHERC7V2 index 55cd1cf7fbc7..053271fa133c 100644 --- a/sys/mips/conf/TL-ARCHERC7V2 +++ b/sys/mips/conf/TL-ARCHERC7V2 @@ -46,7 +46,7 @@ options MSDOSFS 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 diff --git a/sys/mips/conf/TL-WDR4300 b/sys/mips/conf/TL-WDR4300 index d3996c164117..477ae0a876ad 100644 --- a/sys/mips/conf/TL-WDR4300 +++ b/sys/mips/conf/TL-WDR4300 @@ -39,7 +39,7 @@ options MSDOSFS 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 diff --git a/sys/mips/conf/TL-WR1043NDv2 b/sys/mips/conf/TL-WR1043NDv2 index 8ca399d56005..e6b1fd622837 100644 --- a/sys/mips/conf/TL-WR1043NDv2 +++ b/sys/mips/conf/TL-WR1043NDv2 @@ -34,7 +34,7 @@ options MSDOSFS 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 diff --git a/sys/mips/conf/TL-WR740Nv4 b/sys/mips/conf/TL-WR740Nv4 index fe0dd7cc3d76..0d5156ffa871 100644 --- a/sys/mips/conf/TL-WR740Nv4 +++ b/sys/mips/conf/TL-WR740Nv4 @@ -43,7 +43,7 @@ device arswitch 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 diff --git a/sys/mips/conf/TP-MR3040 b/sys/mips/conf/TP-MR3040 index 3a7900e2c942..6a9c96b09052 100644 --- a/sys/mips/conf/TP-MR3040 +++ b/sys/mips/conf/TP-MR3040 @@ -48,7 +48,7 @@ device arswitch 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\" diff --git a/sys/mips/conf/TP-WN1043ND b/sys/mips/conf/TP-WN1043ND index c3d2769ef84f..9a526a791a87 100644 --- a/sys/mips/conf/TP-WN1043ND +++ b/sys/mips/conf/TP-WN1043ND @@ -39,7 +39,7 @@ options MSDOSFS 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 diff --git a/sys/mips/conf/WZR-300HP b/sys/mips/conf/WZR-300HP index 9b1b47270fe2..217e444f1b89 100644 --- a/sys/mips/conf/WZR-300HP +++ b/sys/mips/conf/WZR-300HP @@ -26,6 +26,7 @@ options BOOTVERBOSE # 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\" diff --git a/sys/mips/conf/WZR-HPAG300H b/sys/mips/conf/WZR-HPAG300H index 190c52d2571e..b46f9de3eb8d 100644 --- a/sys/mips/conf/WZR-HPAG300H +++ b/sys/mips/conf/WZR-HPAG300H @@ -25,6 +25,7 @@ options AR71XX_ENV_UBOOT options BOOTVERBOSE # GEOM modules +device xz options GEOM_UZIP device geom_map # to get access to the SPI flash partitions diff --git a/sys/mips/conf/std.XLP b/sys/mips/conf/std.XLP index 979b8ad5501d..5330c19b3657 100644 --- a/sys/mips/conf/std.XLP +++ b/sys/mips/conf/std.XLP @@ -56,6 +56,7 @@ options ALT_BREAK_TO_DEBUGGER #options LOCK_DEBUG #options LOCK_PROFILING +device xz options GEOM_UZIP # Device tree diff --git a/sys/modules/Makefile b/sys/modules/Makefile index 26e592d4fdb2..61d031d8387e 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -404,6 +404,7 @@ SUBDIR= \ ${_x86bios} \ ${_xe} \ xl \ + xz \ zlib .if ${MK_AUTOFS} != "no" || defined(ALL_MODULES) diff --git a/sys/modules/geom/geom_uzip/Makefile b/sys/modules/geom/geom_uzip/Makefile index 2a7cba7d8a7a..fde2df177ca2 100644 --- a/sys/modules/geom/geom_uzip/Makefile +++ b/sys/modules/geom/geom_uzip/Makefile @@ -8,16 +8,10 @@ SRCS+= g_uzip.h g_uzip_dapi.h g_uzip_lzma.h g_uzip_zlib.h g_uzip_softc.h \ 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 diff --git a/sys/modules/xz/Makefile b/sys/modules/xz/Makefile new file mode 100644 index 000000000000..100e75094bda --- /dev/null +++ b/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