diff options
Diffstat (limited to 'ubifs-utils')
-rw-r--r-- | ubifs-utils/mkfs.ubifs/compr.c | 15 | ||||
-rw-r--r-- | ubifs-utils/mkfs.ubifs/mkfs.ubifs.c | 24 |
2 files changed, 35 insertions, 4 deletions
diff --git a/ubifs-utils/mkfs.ubifs/compr.c b/ubifs-utils/mkfs.ubifs/compr.c index 34b2f60..d534f10 100644 --- a/ubifs-utils/mkfs.ubifs/compr.c +++ b/ubifs-utils/mkfs.ubifs/compr.c @@ -24,7 +24,9 @@ #include <stdio.h> #include <stdint.h> #include <string.h> +#ifndef WITHOUT_LZO #include <lzo/lzo1x.h> +#endif #include <linux/types.h> #define crc32 __zlib_crc32 @@ -85,6 +87,7 @@ static int zlib_deflate(void *in_buf, size_t in_len, void *out_buf, return 0; } +#ifndef WITHOUT_LZO static int lzo_compress(void *in_buf, size_t in_len, void *out_buf, size_t *out_len) { @@ -102,6 +105,7 @@ static int lzo_compress(void *in_buf, size_t in_len, void *out_buf, return 0; } +#endif static int no_compress(void *in_buf, size_t in_len, void *out_buf, size_t *out_len) @@ -113,6 +117,7 @@ static int no_compress(void *in_buf, size_t in_len, void *out_buf, static char *zlib_buf; +#ifndef WITHOUT_LZO static int favor_lzo_compress(void *in_buf, size_t in_len, void *out_buf, size_t *out_len, int *type) { @@ -158,6 +163,7 @@ select_zlib: memcpy(out_buf, zlib_buf, zlib_len); return 0; } +#endif int compress_data(void *in_buf, size_t in_len, void *out_buf, size_t *out_len, int type) @@ -169,6 +175,10 @@ int compress_data(void *in_buf, size_t in_len, void *out_buf, size_t *out_len, return MKFS_UBIFS_COMPR_NONE; } +#ifdef WITHOUT_LZO + { + switch (type) { +#else if (c->favor_lzo) ret = favor_lzo_compress(in_buf, in_len, out_buf, out_len, &type); else { @@ -176,6 +186,7 @@ int compress_data(void *in_buf, size_t in_len, void *out_buf, size_t *out_len, case MKFS_UBIFS_COMPR_LZO: ret = lzo_compress(in_buf, in_len, out_buf, out_len); break; +#endif case MKFS_UBIFS_COMPR_ZLIB: ret = zlib_deflate(in_buf, in_len, out_buf, out_len); break; @@ -197,9 +208,13 @@ int compress_data(void *in_buf, size_t in_len, void *out_buf, size_t *out_len, int init_compression(void) { +#ifdef WITHOUT_LZO + lzo_mem = NULL; +#else lzo_mem = malloc(LZO1X_999_MEM_COMPRESS); if (!lzo_mem) return -1; +#endif zlib_buf = malloc(UBIFS_BLOCK_SIZE * WORST_COMPR_FACTOR); if (!zlib_buf) { diff --git a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c index 58200de..90e727c 100644 --- a/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c +++ b/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c @@ -483,7 +483,11 @@ static int get_options(int argc, char**argv) c->orph_lebs = 1; c->key_hash = key_r5_hash; c->key_len = UBIFS_SK_LEN; +#ifdef WITHOUT_LZO + c->default_compr = UBIFS_COMPR_ZLIB; +#else c->default_compr = UBIFS_COMPR_LZO; +#endif c->favor_percent = 20; c->lsave_cnt = 256; c->leb_size = -1; @@ -592,21 +596,29 @@ static int get_options(int argc, char**argv) return err_msg("bad key hash"); break; case 'x': - if (strcmp(optarg, "favor_lzo") == 0) - c->favor_lzo = 1; + if (strcmp(optarg, "none") == 0) + c->default_compr = UBIFS_COMPR_NONE; else if (strcmp(optarg, "zlib") == 0) c->default_compr = UBIFS_COMPR_ZLIB; - else if (strcmp(optarg, "none") == 0) - c->default_compr = UBIFS_COMPR_NONE; +#ifndef WITHOUT_LZO + else if (strcmp(optarg, "favor_lzo") == 0) + c->favor_lzo = 1; else if (strcmp(optarg, "lzo") != 0) +#else + else +#endif return err_msg("bad compressor name"); break; case 'X': +#ifdef WITHOT_LZO + return err_msg("built without LZO support"); +#else c->favor_percent = strtol(optarg, &endp, 0); if (*endp != '\0' || endp == optarg || c->favor_percent <= 0 || c->favor_percent >= 100) return err_msg("bad favor LZO percent '%s'", optarg); +#endif break; case 'j': c->max_bud_bytes = get_bytes(optarg); @@ -1464,7 +1476,11 @@ static int add_file(const char *path_name, struct stat *st, ino_t inum, out_len = NODE_BUFFER_SIZE - UBIFS_DATA_NODE_SZ; if (c->default_compr == UBIFS_COMPR_NONE && (flags & FS_COMPR_FL)) +#ifdef WITHOUT_LZO + use_compr = UBIFS_COMPR_ZLIB; +#else use_compr = UBIFS_COMPR_LZO; +#endif else use_compr = c->default_compr; compr_type = compress_data(buf, bytes_read, &dn->data, |