1*79398b25SAndroid Build Coastguard Worker #ifndef LZO_WRAPPER_H 2*79398b25SAndroid Build Coastguard Worker #define LZO_WRAPPER_H 3*79398b25SAndroid Build Coastguard Worker /* 4*79398b25SAndroid Build Coastguard Worker * Squashfs 5*79398b25SAndroid Build Coastguard Worker * 6*79398b25SAndroid Build Coastguard Worker * Copyright (c) 2013 7*79398b25SAndroid Build Coastguard Worker * Phillip Lougher <[email protected]> 8*79398b25SAndroid Build Coastguard Worker * 9*79398b25SAndroid Build Coastguard Worker * This program is free software; you can redistribute it and/or 10*79398b25SAndroid Build Coastguard Worker * modify it under the terms of the GNU General Public License 11*79398b25SAndroid Build Coastguard Worker * as published by the Free Software Foundation; either version 2, 12*79398b25SAndroid Build Coastguard Worker * or (at your option) any later version. 13*79398b25SAndroid Build Coastguard Worker * 14*79398b25SAndroid Build Coastguard Worker * This program is distributed in the hope that it will be useful, 15*79398b25SAndroid Build Coastguard Worker * but WITHOUT ANY WARRANTY; without even the implied warranty of 16*79398b25SAndroid Build Coastguard Worker * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17*79398b25SAndroid Build Coastguard Worker * GNU General Public License for more details. 18*79398b25SAndroid Build Coastguard Worker * 19*79398b25SAndroid Build Coastguard Worker * You should have received a copy of the GNU General Public License 20*79398b25SAndroid Build Coastguard Worker * along with this program; if not, write to the Free Software 21*79398b25SAndroid Build Coastguard Worker * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 22*79398b25SAndroid Build Coastguard Worker * 23*79398b25SAndroid Build Coastguard Worker * lzo_wrapper.h 24*79398b25SAndroid Build Coastguard Worker * 25*79398b25SAndroid Build Coastguard Worker */ 26*79398b25SAndroid Build Coastguard Worker 27*79398b25SAndroid Build Coastguard Worker #ifndef linux 28*79398b25SAndroid Build Coastguard Worker #define __BYTE_ORDER BYTE_ORDER 29*79398b25SAndroid Build Coastguard Worker #define __BIG_ENDIAN BIG_ENDIAN 30*79398b25SAndroid Build Coastguard Worker #define __LITTLE_ENDIAN LITTLE_ENDIAN 31*79398b25SAndroid Build Coastguard Worker #else 32*79398b25SAndroid Build Coastguard Worker #include <endian.h> 33*79398b25SAndroid Build Coastguard Worker #endif 34*79398b25SAndroid Build Coastguard Worker 35*79398b25SAndroid Build Coastguard Worker #if __BYTE_ORDER == __BIG_ENDIAN 36*79398b25SAndroid Build Coastguard Worker extern unsigned int inswap_le32(unsigned int); 37*79398b25SAndroid Build Coastguard Worker 38*79398b25SAndroid Build Coastguard Worker #define SQUASHFS_INSWAP_COMP_OPTS(s) { \ 39*79398b25SAndroid Build Coastguard Worker (s)->algorithm = inswap_le32((s)->algorithm); \ 40*79398b25SAndroid Build Coastguard Worker (s)->compression_level = inswap_le32((s)->compression_level); \ 41*79398b25SAndroid Build Coastguard Worker } 42*79398b25SAndroid Build Coastguard Worker #else 43*79398b25SAndroid Build Coastguard Worker #define SQUASHFS_INSWAP_COMP_OPTS(s) 44*79398b25SAndroid Build Coastguard Worker #endif 45*79398b25SAndroid Build Coastguard Worker 46*79398b25SAndroid Build Coastguard Worker /* Define the compression flags recognised. */ 47*79398b25SAndroid Build Coastguard Worker #define SQUASHFS_LZO1X_1 0 48*79398b25SAndroid Build Coastguard Worker #define SQUASHFS_LZO1X_1_11 1 49*79398b25SAndroid Build Coastguard Worker #define SQUASHFS_LZO1X_1_12 2 50*79398b25SAndroid Build Coastguard Worker #define SQUASHFS_LZO1X_1_15 3 51*79398b25SAndroid Build Coastguard Worker #define SQUASHFS_LZO1X_999 4 52*79398b25SAndroid Build Coastguard Worker 53*79398b25SAndroid Build Coastguard Worker /* Default compression level used by SQUASHFS_LZO1X_999 */ 54*79398b25SAndroid Build Coastguard Worker #define SQUASHFS_LZO1X_999_COMP_DEFAULT 8 55*79398b25SAndroid Build Coastguard Worker 56*79398b25SAndroid Build Coastguard Worker struct lzo_comp_opts { 57*79398b25SAndroid Build Coastguard Worker int algorithm; 58*79398b25SAndroid Build Coastguard Worker int compression_level; 59*79398b25SAndroid Build Coastguard Worker }; 60*79398b25SAndroid Build Coastguard Worker 61*79398b25SAndroid Build Coastguard Worker struct lzo_algorithm { 62*79398b25SAndroid Build Coastguard Worker char *name; 63*79398b25SAndroid Build Coastguard Worker int size; 64*79398b25SAndroid Build Coastguard Worker int (*compress) (const lzo_bytep, lzo_uint, lzo_bytep, lzo_uintp, 65*79398b25SAndroid Build Coastguard Worker lzo_voidp); 66*79398b25SAndroid Build Coastguard Worker }; 67*79398b25SAndroid Build Coastguard Worker 68*79398b25SAndroid Build Coastguard Worker struct lzo_stream { 69*79398b25SAndroid Build Coastguard Worker void *workspace; 70*79398b25SAndroid Build Coastguard Worker void *buffer; 71*79398b25SAndroid Build Coastguard Worker }; 72*79398b25SAndroid Build Coastguard Worker 73*79398b25SAndroid Build Coastguard Worker #define LZO_MAX_EXPANSION(size) (size + (size / 16) + 64 + 3) 74*79398b25SAndroid Build Coastguard Worker 75*79398b25SAndroid Build Coastguard Worker int lzo1x_999_wrapper(const lzo_bytep, lzo_uint, lzo_bytep, lzo_uintp, 76*79398b25SAndroid Build Coastguard Worker lzo_voidp); 77*79398b25SAndroid Build Coastguard Worker 78*79398b25SAndroid Build Coastguard Worker #endif 79