• Lasse Collin's avatar
    lib/xz: Add MicroLZMA decoder · aaa2975f
    Lasse Collin authored
    MicroLZMA is a yet another header format variant where the first
    byte of a raw LZMA stream (without the end of stream marker) has
    been replaced with a bitwise-negation of the lc/lp/pb properties
    byte. MicroLZMA was created to be used in EROFS but can be used
    by other things too where wasting minimal amount of space for
    headers is important.
    
    This is implemented using most of the LZMA2 code as is so the
    amount of new code is small. The API has a few extra features
    compared to the XZ decoder. On the other hand, the API lacks
    XZ_BUF_ERROR support which is important to take into account
    when using this API.
    
    MicroLZMA doesn't support BCJ filters. In theory they could be
    added later as there are many unused/reserved values for the
    first byte of the compressed stream but in practice it is
    somewhat unlikely to happen due to a few implementation reasons.
    
    Link: https://lore.kernel.org/r/20211010213145.17462-5-xiang@kernel.orgSigned-off-by: default avatarLasse Collin <lasse.collin@tukaani.org>
    Signed-off-by: default avatarGao Xiang <hsiangkao@linux.alibaba.com>
    aaa2975f
Kconfig 1.73 KB