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;
|
|
}
|
|
|