cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

generic.h (1523B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef DECOMPRESS_GENERIC_H
      3#define DECOMPRESS_GENERIC_H
      4
      5typedef int (*decompress_fn) (unsigned char *inbuf, long len,
      6			      long (*fill)(void*, unsigned long),
      7			      long (*flush)(void*, unsigned long),
      8			      unsigned char *outbuf,
      9			      long *posp,
     10			      void(*error)(char *x));
     11
     12/* inbuf   - input buffer
     13 *len     - len of pre-read data in inbuf
     14 *fill    - function to fill inbuf when empty
     15 *flush   - function to write out outbuf
     16 *outbuf  - output buffer
     17 *posp    - if non-null, input position (number of bytes read) will be
     18 *	  returned here
     19 *
     20 *If len != 0, inbuf should contain all the necessary input data, and fill
     21 *should be NULL
     22 *If len = 0, inbuf can be NULL, in which case the decompressor will allocate
     23 *the input buffer.  If inbuf != NULL it must be at least XXX_IOBUF_SIZE bytes.
     24 *fill will be called (repeatedly...) to read data, at most XXX_IOBUF_SIZE
     25 *bytes should be read per call.  Replace XXX with the appropriate decompressor
     26 *name, i.e. LZMA_IOBUF_SIZE.
     27 *
     28 *If flush = NULL, outbuf must be large enough to buffer all the expected
     29 *output.  If flush != NULL, the output buffer will be allocated by the
     30 *decompressor (outbuf = NULL), and the flush function will be called to
     31 *flush the output buffer at the appropriate time (decompressor and stream
     32 *dependent).
     33 */
     34
     35
     36/* Utility routine to detect the decompression method */
     37decompress_fn decompress_method(const unsigned char *inbuf, long len,
     38				const char **name);
     39
     40#endif