The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/xz-embedded/linux/lib/xz/xz_stream.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Definitions for handling the .xz file format
    3  *
    4  * Author: Lasse Collin <lasse.collin@tukaani.org>
    5  *
    6  * This file has been put into the public domain.
    7  * You can do whatever you want with this file.
    8  */
    9 
   10 #ifndef XZ_STREAM_H
   11 #define XZ_STREAM_H
   12 
   13 #if defined(__KERNEL__) && !XZ_INTERNAL_CRC32
   14 #       include <linux/crc32.h>
   15 #       undef crc32
   16 #       define xz_crc32(buf, size, crc) \
   17                 (~crc32_le(~(uint32_t)(crc), buf, size))
   18 #endif
   19 
   20 /*
   21  * See the .xz file format specification at
   22  * https://tukaani.org/xz/xz-file-format.txt
   23  * to understand the container format.
   24  */
   25 
   26 #define STREAM_HEADER_SIZE 12
   27 
   28 #define HEADER_MAGIC "\3757zXZ"
   29 #define HEADER_MAGIC_SIZE 6
   30 
   31 #define FOOTER_MAGIC "YZ"
   32 #define FOOTER_MAGIC_SIZE 2
   33 
   34 /*
   35  * Variable-length integer can hold a 63-bit unsigned integer or a special
   36  * value indicating that the value is unknown.
   37  *
   38  * Experimental: vli_type can be defined to uint32_t to save a few bytes
   39  * in code size (no effect on speed). Doing so limits the uncompressed and
   40  * compressed size of the file to less than 256 MiB and may also weaken
   41  * error detection slightly.
   42  */
   43 typedef uint64_t vli_type;
   44 
   45 #define VLI_MAX ((vli_type)-1 / 2)
   46 #define VLI_UNKNOWN ((vli_type)-1)
   47 
   48 /* Maximum encoded size of a VLI */
   49 #define VLI_BYTES_MAX (sizeof(vli_type) * 8 / 7)
   50 
   51 /* Integrity Check types */
   52 enum xz_check {
   53         XZ_CHECK_NONE = 0,
   54         XZ_CHECK_CRC32 = 1,
   55         XZ_CHECK_CRC64 = 4,
   56         XZ_CHECK_SHA256 = 10
   57 };
   58 
   59 /* Maximum possible Check ID */
   60 #define XZ_CHECK_MAX 15
   61 
   62 #endif

Cache object: 8e48a970826fd0dfc991e62e277221f8


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.