function old new delta unpack_xz_stream 2309 2317 +8 bb_full_fd_action 464 472 +8 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Definitions for handling the .xz file format
 | 
						|
 *
 | 
						|
 * Author: Lasse Collin <lasse.collin@tukaani.org>
 | 
						|
 *
 | 
						|
 * This file has been put into the public domain.
 | 
						|
 * You can do whatever you want with this file.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef XZ_STREAM_H
 | 
						|
#define XZ_STREAM_H
 | 
						|
 | 
						|
#if defined(__KERNEL__) && !XZ_INTERNAL_CRC32
 | 
						|
#	include <linux/crc32.h>
 | 
						|
#	undef crc32
 | 
						|
#	define xz_crc32(buf, size, crc) \
 | 
						|
		(~crc32_le(~(uint32_t)(crc), buf, size))
 | 
						|
#endif
 | 
						|
 | 
						|
/*
 | 
						|
 * See the .xz file format specification at
 | 
						|
 * http://tukaani.org/xz/xz-file-format.txt
 | 
						|
 * to understand the container format.
 | 
						|
 */
 | 
						|
 | 
						|
#define STREAM_HEADER_SIZE 12
 | 
						|
 | 
						|
#define HEADER_MAGIC "\375""7zXZ"
 | 
						|
#define HEADER_MAGIC_SIZE 6
 | 
						|
 | 
						|
#define FOOTER_MAGIC "YZ"
 | 
						|
#define FOOTER_MAGIC_SIZE 2
 | 
						|
 | 
						|
/*
 | 
						|
 * Variable-length integer can hold a 63-bit unsigned integer or a special
 | 
						|
 * value indicating that the value is unknown.
 | 
						|
 *
 | 
						|
 * Experimental: vli_type can be defined to uint32_t to save a few bytes
 | 
						|
 * in code size (no effect on speed). Doing so limits the uncompressed and
 | 
						|
 * compressed size of the file to less than 256 MiB and may also weaken
 | 
						|
 * error detection slightly.
 | 
						|
 */
 | 
						|
typedef uint64_t vli_type;
 | 
						|
 | 
						|
#define VLI_MAX ((vli_type)-1 / 2)
 | 
						|
#define VLI_UNKNOWN ((vli_type)-1)
 | 
						|
 | 
						|
/* Maximum encoded size of a VLI */
 | 
						|
#define VLI_BYTES_MAX (sizeof(vli_type) * 8 / 7)
 | 
						|
 | 
						|
/* Integrity Check types */
 | 
						|
enum xz_check {
 | 
						|
	XZ_CHECK_NONE = 0,
 | 
						|
	XZ_CHECK_CRC32 = 1,
 | 
						|
	XZ_CHECK_CRC64 = 4,
 | 
						|
	XZ_CHECK_SHA256 = 10
 | 
						|
};
 | 
						|
 | 
						|
/* Maximum possible Check ID */
 | 
						|
#define XZ_CHECK_MAX 15
 | 
						|
 | 
						|
#endif
 |