xref: /aosp_15_r20/external/lz4/lib/lz4file.h (revision 27162e4e17433d5aa7cb38e7b6a433a09405fc7f)
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