1*27162e4eSAndroid Build Coastguard Worker /* 2*27162e4eSAndroid Build Coastguard Worker LZ4 file library 3*27162e4eSAndroid Build Coastguard Worker Header File 4*27162e4eSAndroid Build Coastguard Worker Copyright (C) 2022, Xiaomi Inc. 5*27162e4eSAndroid Build Coastguard Worker BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php) 6*27162e4eSAndroid Build Coastguard Worker 7*27162e4eSAndroid Build Coastguard Worker Redistribution and use in source and binary forms, with or without 8*27162e4eSAndroid Build Coastguard Worker modification, are permitted provided that the following conditions are 9*27162e4eSAndroid Build Coastguard Worker met: 10*27162e4eSAndroid Build Coastguard Worker 11*27162e4eSAndroid Build Coastguard Worker * Redistributions of source code must retain the above copyright 12*27162e4eSAndroid Build Coastguard Worker notice, this list of conditions and the following disclaimer. 13*27162e4eSAndroid Build Coastguard Worker * Redistributions in binary form must reproduce the above 14*27162e4eSAndroid Build Coastguard Worker copyright notice, this list of conditions and the following disclaimer 15*27162e4eSAndroid Build Coastguard Worker in the documentation and/or other materials provided with the 16*27162e4eSAndroid Build Coastguard Worker distribution. 17*27162e4eSAndroid Build Coastguard Worker 18*27162e4eSAndroid Build Coastguard Worker THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19*27162e4eSAndroid Build Coastguard Worker "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20*27162e4eSAndroid Build Coastguard Worker LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21*27162e4eSAndroid Build Coastguard Worker A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22*27162e4eSAndroid Build Coastguard Worker OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23*27162e4eSAndroid Build Coastguard Worker SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24*27162e4eSAndroid Build Coastguard Worker LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25*27162e4eSAndroid Build Coastguard Worker DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26*27162e4eSAndroid Build Coastguard Worker THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27*27162e4eSAndroid Build Coastguard Worker (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28*27162e4eSAndroid Build Coastguard Worker OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29*27162e4eSAndroid Build Coastguard Worker 30*27162e4eSAndroid Build Coastguard Worker You can contact the author at : 31*27162e4eSAndroid Build Coastguard Worker - LZ4 source repository : https://github.com/lz4/lz4 32*27162e4eSAndroid Build Coastguard Worker - LZ4 public forum : https://groups.google.com/forum/#!forum/lz4c 33*27162e4eSAndroid Build Coastguard Worker */ 34*27162e4eSAndroid Build Coastguard Worker #if defined (__cplusplus) 35*27162e4eSAndroid Build Coastguard Worker extern "C" { 36*27162e4eSAndroid Build Coastguard Worker #endif 37*27162e4eSAndroid Build Coastguard Worker 38*27162e4eSAndroid Build Coastguard Worker #ifndef LZ4FILE_H 39*27162e4eSAndroid Build Coastguard Worker #define LZ4FILE_H 40*27162e4eSAndroid Build Coastguard Worker 41*27162e4eSAndroid Build Coastguard Worker #include <stdio.h> /* FILE* */ 42*27162e4eSAndroid Build Coastguard Worker #include "lz4frame_static.h" 43*27162e4eSAndroid Build Coastguard Worker 44*27162e4eSAndroid Build Coastguard Worker typedef struct LZ4_readFile_s LZ4_readFile_t; 45*27162e4eSAndroid Build Coastguard Worker typedef struct LZ4_writeFile_s LZ4_writeFile_t; 46*27162e4eSAndroid Build Coastguard Worker 47*27162e4eSAndroid Build Coastguard Worker /*! LZ4F_readOpen() : 48*27162e4eSAndroid Build Coastguard Worker * Set read lz4file handle. 49*27162e4eSAndroid Build Coastguard Worker * `lz4f` will set a lz4file handle. 50*27162e4eSAndroid Build Coastguard Worker * `fp` must be the return value of the lz4 file opened by fopen. 51*27162e4eSAndroid Build Coastguard Worker */ 52*27162e4eSAndroid Build Coastguard Worker LZ4FLIB_STATIC_API LZ4F_errorCode_t LZ4F_readOpen(LZ4_readFile_t** lz4fRead, FILE* fp); 53*27162e4eSAndroid Build Coastguard Worker 54*27162e4eSAndroid Build Coastguard Worker /*! LZ4F_read() : 55*27162e4eSAndroid Build Coastguard Worker * Read lz4file content to buffer. 56*27162e4eSAndroid Build Coastguard Worker * `lz4f` must use LZ4_readOpen to set first. 57*27162e4eSAndroid Build Coastguard Worker * `buf` read data buffer. 58*27162e4eSAndroid Build Coastguard Worker * `size` read data buffer size. 59*27162e4eSAndroid Build Coastguard Worker */ 60*27162e4eSAndroid Build Coastguard Worker LZ4FLIB_STATIC_API size_t LZ4F_read(LZ4_readFile_t* lz4fRead, void* buf, size_t size); 61*27162e4eSAndroid Build Coastguard Worker 62*27162e4eSAndroid Build Coastguard Worker /*! LZ4F_readClose() : 63*27162e4eSAndroid Build Coastguard Worker * Close lz4file handle. 64*27162e4eSAndroid Build Coastguard Worker * `lz4f` must use LZ4_readOpen to set first. 65*27162e4eSAndroid Build Coastguard Worker */ 66*27162e4eSAndroid Build Coastguard Worker LZ4FLIB_STATIC_API LZ4F_errorCode_t LZ4F_readClose(LZ4_readFile_t* lz4fRead); 67*27162e4eSAndroid Build Coastguard Worker 68*27162e4eSAndroid Build Coastguard Worker /*! LZ4F_writeOpen() : 69*27162e4eSAndroid Build Coastguard Worker * Set write lz4file handle. 70*27162e4eSAndroid Build Coastguard Worker * `lz4f` will set a lz4file handle. 71*27162e4eSAndroid Build Coastguard Worker * `fp` must be the return value of the lz4 file opened by fopen. 72*27162e4eSAndroid Build Coastguard Worker */ 73*27162e4eSAndroid Build Coastguard Worker LZ4FLIB_STATIC_API LZ4F_errorCode_t LZ4F_writeOpen(LZ4_writeFile_t** lz4fWrite, FILE* fp, const LZ4F_preferences_t* prefsPtr); 74*27162e4eSAndroid Build Coastguard Worker 75*27162e4eSAndroid Build Coastguard Worker /*! LZ4F_write() : 76*27162e4eSAndroid Build Coastguard Worker * Write buffer to lz4file. 77*27162e4eSAndroid Build Coastguard Worker * `lz4f` must use LZ4F_writeOpen to set first. 78*27162e4eSAndroid Build Coastguard Worker * `buf` write data buffer. 79*27162e4eSAndroid Build Coastguard Worker * `size` write data buffer size. 80*27162e4eSAndroid Build Coastguard Worker */ 81*27162e4eSAndroid Build Coastguard Worker LZ4FLIB_STATIC_API size_t LZ4F_write(LZ4_writeFile_t* lz4fWrite, const void* buf, size_t size); 82*27162e4eSAndroid Build Coastguard Worker 83*27162e4eSAndroid Build Coastguard Worker /*! LZ4F_writeClose() : 84*27162e4eSAndroid Build Coastguard Worker * Close lz4file handle. 85*27162e4eSAndroid Build Coastguard Worker * `lz4f` must use LZ4F_writeOpen to set first. 86*27162e4eSAndroid Build Coastguard Worker */ 87*27162e4eSAndroid Build Coastguard Worker LZ4FLIB_STATIC_API LZ4F_errorCode_t LZ4F_writeClose(LZ4_writeFile_t* lz4fWrite); 88*27162e4eSAndroid Build Coastguard Worker 89*27162e4eSAndroid Build Coastguard Worker #endif /* LZ4FILE_H */ 90*27162e4eSAndroid Build Coastguard Worker 91*27162e4eSAndroid Build Coastguard Worker #if defined (__cplusplus) 92*27162e4eSAndroid Build Coastguard Worker } 93*27162e4eSAndroid Build Coastguard Worker #endif 94