1207753Smm/////////////////////////////////////////////////////////////////////////////// 2207753Smm// 3207753Smm/// \file stream_flags_common.c 4207753Smm/// \brief Common stuff for Stream flags coders 5207753Smm// 6207753Smm// Author: Lasse Collin 7207753Smm// 8207753Smm// This file has been put into the public domain. 9207753Smm// You can do whatever you want with this file. 10207753Smm// 11207753Smm/////////////////////////////////////////////////////////////////////////////// 12207753Smm 13207753Smm#include "stream_flags_common.h" 14207753Smm 15207753Smm 16207753Smmconst uint8_t lzma_header_magic[6] = { 0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00 }; 17207753Smmconst uint8_t lzma_footer_magic[2] = { 0x59, 0x5A }; 18207753Smm 19207753Smm 20207753Smmextern LZMA_API(lzma_ret) 21207753Smmlzma_stream_flags_compare( 22207753Smm const lzma_stream_flags *a, const lzma_stream_flags *b) 23207753Smm{ 24207753Smm // We can compare only version 0 structures. 25207753Smm if (a->version != 0 || b->version != 0) 26207753Smm return LZMA_OPTIONS_ERROR; 27207753Smm 28207753Smm // Check type 29207753Smm if ((unsigned int)(a->check) > LZMA_CHECK_ID_MAX 30207753Smm || (unsigned int)(b->check) > LZMA_CHECK_ID_MAX) 31207753Smm return LZMA_PROG_ERROR; 32207753Smm 33207753Smm if (a->check != b->check) 34207753Smm return LZMA_DATA_ERROR; 35207753Smm 36207753Smm // Backward Sizes are compared only if they are known in both. 37207753Smm if (a->backward_size != LZMA_VLI_UNKNOWN 38207753Smm && b->backward_size != LZMA_VLI_UNKNOWN) { 39207753Smm if (!is_backward_size_valid(a) || !is_backward_size_valid(b)) 40207753Smm return LZMA_PROG_ERROR; 41207753Smm 42207753Smm if (a->backward_size != b->backward_size) 43207753Smm return LZMA_DATA_ERROR; 44207753Smm } 45207753Smm 46207753Smm return LZMA_OK; 47207753Smm} 48