From 62c1a86f2562a31db8748da228cd23bd083a773e Mon Sep 17 00:00:00 2001 From: kib Date: Wed, 20 Mar 2019 18:49:45 +0000 Subject: [PATCH] MFC r344479 (by sobomax), r344605: Modularize xz. --- share/man/man4/geom_uzip.4 | 1 + sys/conf/NOTES | 2 + sys/conf/files | 26 +++++------ sys/contrib/xz-embedded/freebsd/xz_config.h | 1 - .../freebsd/xz_malloc.c => dev/xz/xz_mod.c} | 43 ++++++++++++++++++- sys/geom/uzip/g_uzip.c | 1 + sys/geom/uzip/g_uzip_lzma.c | 1 - sys/mips/conf/ALFA_HORNET_UB | 2 +- sys/mips/conf/AP121 | 2 +- sys/mips/conf/AP135 | 2 +- sys/mips/conf/AP143 | 2 +- sys/mips/conf/AP91 | 2 +- sys/mips/conf/AP93 | 2 +- sys/mips/conf/AP94 | 2 +- sys/mips/conf/AP96 | 2 +- sys/mips/conf/BCM | 2 +- sys/mips/conf/CARAMBOLA2 | 2 +- sys/mips/conf/DB120 | 2 +- sys/mips/conf/DIR-655A1 | 2 +- sys/mips/conf/DIR-825B1 | 2 +- sys/mips/conf/ENH200 | 2 +- sys/mips/conf/MT7620 | 1 + sys/mips/conf/MT7620A_FDT | 2 +- sys/mips/conf/MT7620N_FDT | 2 +- sys/mips/conf/MT7621_FDT | 2 +- sys/mips/conf/MT7628_FDT | 2 +- sys/mips/conf/ONIONOMEGA | 2 +- sys/mips/conf/PB47 | 2 +- sys/mips/conf/PB92 | 2 +- sys/mips/conf/PICOSTATION_M2HP | 2 +- sys/mips/conf/ROUTERSTATION | 2 +- sys/mips/conf/ROUTERSTATION_MFS | 2 +- sys/mips/conf/RSPRO | 2 +- sys/mips/conf/RSPRO_MFS | 2 +- sys/mips/conf/RSPRO_STANDALONE | 2 +- sys/mips/conf/RT3050_FDT | 2 +- sys/mips/conf/RT3352_FDT | 2 +- sys/mips/conf/RT3883_FDT | 2 +- sys/mips/conf/RT5350 | 2 +- sys/mips/conf/RT5350_FDT | 2 +- sys/mips/conf/TL-ARCHERC7V2 | 2 +- sys/mips/conf/TL-WDR4300 | 2 +- sys/mips/conf/TL-WR1043NDv2 | 2 +- sys/mips/conf/TL-WR740Nv4 | 2 +- sys/mips/conf/TP-WN1043ND | 2 +- sys/mips/conf/WZR-300HP | 3 +- sys/mips/conf/WZR-HPAG300H | 3 +- sys/mips/conf/std.XLP | 1 + sys/modules/Makefile | 1 + sys/modules/geom/geom_uzip/Makefile | 8 +--- sys/modules/xz/Makefile | 20 +++++++++ 51 files changed, 122 insertions(+), 64 deletions(-) rename sys/{contrib/xz-embedded/freebsd/xz_malloc.c => dev/xz/xz_mod.c} (70%) create mode 100644 sys/modules/xz/Makefile diff --git a/share/man/man4/geom_uzip.4 b/share/man/man4/geom_uzip.4 index 4dbab524cca..d7562914cab 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 ad0ac8a957e..51ca04762ef 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -3073,3 +3073,5 @@ options EVDEV_SUPPORT # evdev support in legacy drivers options EVDEV_DEBUG # enable event debug msgs device uinput # install /dev/uinput cdev options UINPUT_DEBUG # enable uinput debug msgs + +device xz # xz_embedded LZMA de-compression library diff --git a/sys/conf/files b/sys/conf/files index c5382284300..c8bb686aa45 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -633,6 +633,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/" crypto/blowfish/bf_ecb.c optional ipsec | ipsec_support crypto/blowfish/bf_skey.c optional crypto | ipsec | ipsec_support crypto/camellia/camellia.c optional crypto | ipsec | ipsec_support @@ -3507,21 +3518,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 75c63fd32cd..7fb9a07b598 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 17f45bd85be..422d9ab83e2 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 269fa104109..bd7d344bd4f 100644 --- a/sys/geom/uzip/g_uzip.c +++ b/sys/geom/uzip/g_uzip.c @@ -898,5 +898,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 9efb0875be6..83e81e5f4ba 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 99e8c8182b5..a6329087e05 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 3ffbd79f6d8..960554bc27f 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 11c73eab8dc..424852bba47 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 021d9722c89..8476299aafc 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 c5e6c566aaa..f9d81efdc87 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 927bf7fb887..5978f71472a 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 c3cf700e789..0d91ed46427 100644 --- a/sys/mips/conf/AP94 +++ b/sys/mips/conf/AP94 @@ -21,7 +21,7 @@ hints "AP94.hints" # GEOM modules device geom_redboot # to get access to the SPI flash partitions -device geom_uzip # compressed in-memory filesystem hackery! +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:md0.uzip\" diff --git a/sys/mips/conf/AP96 b/sys/mips/conf/AP96 index 30d1ff8338d..1f3b8d136f0 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 54e558a6436..1ecdb48fc97 100644 --- a/sys/mips/conf/BCM +++ b/sys/mips/conf/BCM @@ -36,7 +36,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 033f37bafe7..7a146b078b1 100644 --- a/sys/mips/conf/CARAMBOLA2 +++ b/sys/mips/conf/CARAMBOLA2 @@ -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/DB120 b/sys/mips/conf/DB120 index a491a22235d..6be7ca085e5 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 4b66b91282e..c26e491c3b5 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 3385c6bd1d4..ae530a7ee53 100644 --- a/sys/mips/conf/DIR-825B1 +++ b/sys/mips/conf/DIR-825B1 @@ -54,7 +54,7 @@ options NO_SYSCTL_DESCR # GEOM modules device geom_map # to get access to the SPI flash partitions -device geom_uzip # compressed in-memory filesystem hackery! +device xz options GEOM_UZIP options GEOM_PART_GPT diff --git a/sys/mips/conf/ENH200 b/sys/mips/conf/ENH200 index f9d8c0d2d94..c7d1e38586c 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/MT7620 b/sys/mips/conf/MT7620 index d915517961e..d52a6d9efb1 100644 --- a/sys/mips/conf/MT7620 +++ b/sys/mips/conf/MT7620 @@ -93,6 +93,7 @@ options FFS #Berkeley Fast Filesystem options MROUTING # Multicast routing options IPFIREWALL_DEFAULT_TO_ACCEPT +device xz options GEOM_UZIP options MD_ROOT options ROOTDEVNAME=\"ufs:da0s1\" diff --git a/sys/mips/conf/MT7620A_FDT b/sys/mips/conf/MT7620A_FDT index 46b3cff9f75..62e1ba7f853 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 4330ecd4283..c7c294065a3 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 848df0578c6..f3e1881b87b 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 f7dfc1470c6..c5e82a92e6f 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 cdc5c1fb657..78ecd62cbf4 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 0fe8c82c9ce..1d0829ca3df 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 6176668fb12..779ec233c2c 100644 --- a/sys/mips/conf/PB92 +++ b/sys/mips/conf/PB92 @@ -54,7 +54,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 aa821ad5d2b..841ddebf5fb 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/ROUTERSTATION b/sys/mips/conf/ROUTERSTATION index 3dceace74f4..903a3523529 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 1c1ab491751..bce300366bb 100644 --- a/sys/mips/conf/ROUTERSTATION_MFS +++ b/sys/mips/conf/ROUTERSTATION_MFS @@ -12,7 +12,7 @@ hints "ROUTERSTATION.hints" # GEOM modules device geom_redboot # to get access to the SPI flash partitions -device geom_uzip # compressed in-memory filesystem hackery! +device xz options GEOM_UZIP options ROOTDEVNAME=\"ufs:md0.uzip\" diff --git a/sys/mips/conf/RSPRO b/sys/mips/conf/RSPRO index fa28ceeab14..6ae1c8f07e3 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 6cacd3dd647..029b4e68bbe 100644 --- a/sys/mips/conf/RSPRO_MFS +++ b/sys/mips/conf/RSPRO_MFS @@ -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 hackery! +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 24b2750fb20..b0216808a33 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 b49fe59552e..79e19ff94cf 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 99b17025dca..06028ea8f61 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 d48ba10877e..418968c34bc 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 b/sys/mips/conf/RT5350 index f897178b607..1f55d78eace 100644 --- a/sys/mips/conf/RT5350 +++ b/sys/mips/conf/RT5350 @@ -67,7 +67,7 @@ options TMPFS # TMP Memory Filesystem options FFS #Berkeley Fast Filesystem #options ROOTDEVNAME=\"nfs:193.178.153.200:/bsdmips\" -#device geom_uzip +#device xz #options GEOM_UZIP #options MD_ROOT #options ROOTDEVNAME=\"ufs:md0.uzip\" diff --git a/sys/mips/conf/RT5350_FDT b/sys/mips/conf/RT5350_FDT index ad1f8bba831..115c4722e6f 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 cedd823f2ec..9e907cbc9af 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 e0915267be5..66012fb943e 100644 --- a/sys/mips/conf/TL-WDR4300 +++ b/sys/mips/conf/TL-WDR4300 @@ -38,7 +38,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 53a5847480f..69aa5d927f2 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 59bf73eab62..4a1ffcffb8c 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-WN1043ND b/sys/mips/conf/TP-WN1043ND index 7866de3be4b..e5a368cad4d 100644 --- a/sys/mips/conf/TP-WN1043ND +++ b/sys/mips/conf/TP-WN1043ND @@ -37,7 +37,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 c059dbb34e8..e821efb0f00 100644 --- a/sys/mips/conf/WZR-300HP +++ b/sys/mips/conf/WZR-300HP @@ -26,7 +26,8 @@ options BOOTVERBOSE # GEOM modules device geom_map # to get access to the SPI flash partitions -device geom_uzip # compressed in-memory filesystem hackery! +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 dcb36f5281b..b46f9de3eb8 100644 --- a/sys/mips/conf/WZR-HPAG300H +++ b/sys/mips/conf/WZR-HPAG300H @@ -25,7 +25,8 @@ options AR71XX_ENV_UBOOT options BOOTVERBOSE # GEOM modules -device geom_uzip # compressed in-memory filesystem hackery! +device xz +options GEOM_UZIP device geom_map # to get access to the SPI flash partitions options ROOTDEVNAME=\"ufs:/dev/map/rootfs.uzip\" diff --git a/sys/mips/conf/std.XLP b/sys/mips/conf/std.XLP index 888ad8934b2..0848f3b5b99 100644 --- a/sys/mips/conf/std.XLP +++ b/sys/mips/conf/std.XLP @@ -55,6 +55,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 a2f62a52b6e..b79c0281ef3 100644 --- a/sys/modules/Makefile +++ b/sys/modules/Makefile @@ -429,6 +429,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 2a7cba7d8a7..fde2df177ca 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 00000000000..100e75094bd --- /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 -- 2.45.0