986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * CDDL HEADER START
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * The contents of this file are subject to the terms of the
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * Common Development and Distribution License (the "License").
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * You may not use this file except in compliance with the License.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * See the License for the specific language governing permissions
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * and limitations under the License.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * When distributing Covered Code, include this CDDL HEADER in each
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * If applicable, add the following below this CDDL HEADER, with the
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * fields enclosed by brackets "[]" replaced with your own identifying
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * information: Portions Copyright [yyyy] [name of copyright owner]
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * CDDL HEADER END
1d7f3fadeebf3754e3f042d91e7a4439755dc598Krishnendu Sadhukhan - Sun Microsystems * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * Use is subject to license terms.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * fiocompress - a utility to compress files with a filesystem.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * Used to build compressed boot archives to reduce memory
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje * requirements for booting.
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setjestatic void setup_infile(char *);
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setjestatic void setup_outfile(char *);
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setjestatic void do_decomp(void);
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje switch (c) {
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje return (0);
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje (void) fprintf(stderr, MMAP_FAIL, srcfile, strerror(errno));
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje (void) fprintf(stderr, OPEN_FAIL, dstfile, strerror(errno));
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje hlen = offset = sizeof (struct comphdr) + blks * sizeof (uint64_t);
1d7f3fadeebf3754e3f042d91e7a4439755dc598Krishnendu Sadhukhan - Sun Microsystems hdr->ch_magic = CH_MAGIC_ZLIB;
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje for (i = 0; i < blks; i++) {
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje ret = compress2(dstbuf, &dlen, (Bytef *)srcaddr, slen, 9);
1d7f3fadeebf3754e3f042d91e7a4439755dc598Krishnendu Sadhukhan - Sun Microsystems if (hdr->ch_magic != CH_MAGIC_ZLIB) {
1d7f3fadeebf3754e3f042d91e7a4439755dc598Krishnendu Sadhukhan - Sun Microsystems srcfile, (uint64_t)hdr->ch_magic, CH_MAGIC_ZLIB);
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje for (i = 0; i < blks; i++) {
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje ret = uncompress(dstbuf, &dlen, (Bytef *)srcaddr, slen);
986fd29a0dc13f7608ef7f508f6e700bd7bc2720setje if ((ret = uncompress(dstbuf, &dlen, (Bytef *)srcaddr, slen)) != Z_OK) {