58 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
#include "os_types.h"
 | 
						|
 | 
						|
#include <string.h>
 | 
						|
#include "LzmaTools.h"
 | 
						|
 | 
						|
int lzma_fw_image_decompress(uint8_t *src, uint8_t *dst, uint32_t len, uint8_t *buf)
 | 
						|
{
 | 
						|
    int ret;
 | 
						|
    uint32_t src_len = len, dst_len = ~0UL;
 | 
						|
 | 
						|
    if (NULL == buf) {
 | 
						|
        return SZ_ERROR_MEM;
 | 
						|
    }
 | 
						|
 | 
						|
    ret = lzmaBuffToBuffDecompress(dst, &dst_len, src, src_len, buf);
 | 
						|
 | 
						|
    if (ret != SZ_OK)
 | 
						|
        return 1;
 | 
						|
 | 
						|
    return 0;
 | 
						|
}
 | 
						|
 | 
						|
int lzma_decompress_to_flash(uint8_t *src, uint8_t *dst, uint32_t len, uint8_t *buf)
 | 
						|
{
 | 
						|
    int ret;
 | 
						|
    uint32_t src_len = len, dst_len = ~0UL;
 | 
						|
 | 
						|
    if (NULL == buf) {
 | 
						|
        return SZ_ERROR_MEM;
 | 
						|
    }
 | 
						|
 | 
						|
    ret = lzmaBuffToBuffDecompress2Flash(dst, &dst_len, src, src_len, buf);
 | 
						|
 | 
						|
    if (ret != SZ_OK)
 | 
						|
        return 1;
 | 
						|
 | 
						|
    return 0;
 | 
						|
}
 | 
						|
 | 
						|
int lzma_decompress_to_ram(uint8_t *src, uint8_t *dst, uint32_t len, uint8_t *buf)
 | 
						|
{
 | 
						|
    int ret;
 | 
						|
    uint32_t src_len = len, dst_len = ~0UL;
 | 
						|
 | 
						|
    if (NULL == buf) {
 | 
						|
        return SZ_ERROR_MEM;
 | 
						|
    }
 | 
						|
 | 
						|
    ret = lzmaBuffToBuffDecompress2Ram(dst, &dst_len, src, src_len, buf);
 | 
						|
 | 
						|
    if (ret != SZ_OK)
 | 
						|
        return 1;
 | 
						|
 | 
						|
    return 0;
 | 
						|
}
 | 
						|
 |