mirror of
https://github.com/LongSoft/UEFITool.git
synced 2024-11-22 16:08:23 +08:00
bugfix
This commit is contained in:
parent
956a804dd5
commit
a5ce9ab3d9
@ -25,8 +25,8 @@ static ISzAlloc SzAllocForLzma = { &AllocForLzma, &FreeForLzma };
|
|||||||
|
|
||||||
SRes OnProgress(void *p, UInt64 inSize, UInt64 outSize)
|
SRes OnProgress(void *p, UInt64 inSize, UInt64 outSize)
|
||||||
{
|
{
|
||||||
(void)p; (void) inSize; (void) outSize;
|
(void)p; (void)inSize; (void)outSize;
|
||||||
return SZ_OK;
|
return SZ_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ICompressProgress g_ProgressCallback = { &OnProgress };
|
static ICompressProgress g_ProgressCallback = { &OnProgress };
|
||||||
@ -34,76 +34,76 @@ static ICompressProgress g_ProgressCallback = { &OnProgress };
|
|||||||
STATIC
|
STATIC
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
RShiftU64(
|
RShiftU64 (
|
||||||
UINT64 Operand,
|
UINT64 Operand,
|
||||||
UINT32 Count
|
UINT32 Count
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return Operand >> Count;
|
return Operand >> Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
SetEncodedSizeOfBuf(
|
SetEncodedSizeOfBuf (
|
||||||
UINT64 EncodedSize,
|
UINT64 EncodedSize,
|
||||||
UINT8 *EncodedData
|
UINT8 *EncodedData
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
INT32 Index;
|
INT32 Index;
|
||||||
|
|
||||||
EncodedData[LZMA_PROPS_SIZE] = EncodedSize & 0xFF;
|
EncodedData[LZMA_PROPS_SIZE] = EncodedSize & 0xFF;
|
||||||
for (Index = LZMA_PROPS_SIZE + 1; Index <= LZMA_PROPS_SIZE + 7; Index++)
|
for (Index = LZMA_PROPS_SIZE + 1; Index <= LZMA_PROPS_SIZE + 7; Index++)
|
||||||
{
|
{
|
||||||
EncodedSize = RShiftU64(EncodedSize, 8);
|
EncodedSize = RShiftU64(EncodedSize, 8);
|
||||||
EncodedData[Index] = EncodedSize & 0xFF;
|
EncodedData[Index] = EncodedSize & 0xFF;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
INT32
|
INT32
|
||||||
EFIAPI
|
EFIAPI
|
||||||
LzmaCompress(
|
LzmaCompress(
|
||||||
CONST UINT8 *Source,
|
CONST UINT8 *Source,
|
||||||
UINT32 SourceSize,
|
UINTN SourceSize,
|
||||||
UINT8 *Destination,
|
UINT8 *Destination,
|
||||||
UINT32 *DestinationSize
|
UINTN *DestinationSize
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
SRes LzmaResult;
|
SRes LzmaResult;
|
||||||
CLzmaEncProps props;
|
CLzmaEncProps props;
|
||||||
SizeT propsSize = LZMA_PROPS_SIZE;
|
SizeT propsSize = LZMA_PROPS_SIZE;
|
||||||
SizeT destLen = SourceSize + SourceSize / 3 + 128;
|
SizeT destLen = SourceSize + SourceSize / 3 + 128;
|
||||||
|
|
||||||
if (*DestinationSize < destLen)
|
if (*DestinationSize < destLen)
|
||||||
{
|
{
|
||||||
*DestinationSize = destLen;
|
*DestinationSize = destLen;
|
||||||
return ERR_BUFFER_TOO_SMALL;
|
return ERR_BUFFER_TOO_SMALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
LzmaEncProps_Init(&props);
|
LzmaEncProps_Init(&props);
|
||||||
props.dictSize = LZMA_DICTIONARY_SIZE;
|
props.dictSize = LZMA_DICTIONARY_SIZE;
|
||||||
props.level = 9;
|
props.level = 9;
|
||||||
props.fb = 273;
|
props.fb = 273;
|
||||||
|
|
||||||
LzmaResult = LzmaEncode(
|
LzmaResult = LzmaEncode(
|
||||||
(Byte*)((UINT8*)Destination + LZMA_HEADER_SIZE),
|
(Byte*)((UINT8*)Destination + LZMA_HEADER_SIZE),
|
||||||
&destLen,
|
&destLen,
|
||||||
Source,
|
Source,
|
||||||
SourceSize,
|
SourceSize,
|
||||||
&props,
|
&props,
|
||||||
(UINT8*)Destination,
|
(UINT8*)Destination,
|
||||||
&propsSize,
|
&propsSize,
|
||||||
props.writeEndMark,
|
props.writeEndMark,
|
||||||
&g_ProgressCallback,
|
&g_ProgressCallback,
|
||||||
&SzAllocForLzma,
|
&SzAllocForLzma,
|
||||||
&SzAllocForLzma);
|
&SzAllocForLzma);
|
||||||
|
|
||||||
*DestinationSize = destLen + LZMA_HEADER_SIZE;
|
*DestinationSize = destLen + LZMA_HEADER_SIZE;
|
||||||
|
|
||||||
SetEncodedSizeOfBuf((UINT64)SourceSize, Destination);
|
SetEncodedSizeOfBuf(SourceSize, Destination);
|
||||||
|
|
||||||
if (LzmaResult == SZ_OK) {
|
if (LzmaResult == SZ_OK) {
|
||||||
return ERR_SUCCESS;
|
return ERR_SUCCESS;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return ERR_INVALID_PARAMETER;
|
return ERR_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,9 +28,9 @@ extern "C" {
|
|||||||
EFIAPI
|
EFIAPI
|
||||||
LzmaCompress(
|
LzmaCompress(
|
||||||
const UINT8 *Source,
|
const UINT8 *Source,
|
||||||
UINT32 SourceSize,
|
UINTN SourceSize,
|
||||||
UINT8 *Destination,
|
UINT8 *Destination,
|
||||||
UINT32 *DestinationSize
|
UINTN *DestinationSize
|
||||||
);
|
);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -20,11 +20,11 @@ WITHWARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
LShiftU64(
|
LShiftU64(
|
||||||
UINT64 Operand,
|
UINT64 Operand,
|
||||||
UINT32 Count
|
UINT32 Count
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return Operand << Count;
|
return Operand << Count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void * AllocForLzma(void *p, size_t size) { (void)p; return malloc(size); }
|
static void * AllocForLzma(void *p, size_t size) { (void)p; return malloc(size); }
|
||||||
@ -40,18 +40,18 @@ Get the size of the uncompressed buffer by parsing EncodeData header.
|
|||||||
*/
|
*/
|
||||||
UINT64
|
UINT64
|
||||||
GetDecodedSizeOfBuf(
|
GetDecodedSizeOfBuf(
|
||||||
UINT8 *EncodedData
|
UINT8 *EncodedData
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UINT64 DecodedSize;
|
UINT64 DecodedSize;
|
||||||
INT32 Index;
|
INT32 Index;
|
||||||
|
|
||||||
// Parse header
|
// Parse header
|
||||||
DecodedSize = 0;
|
DecodedSize = 0;
|
||||||
for (Index = LZMA_PROPS_SIZE + 7; Index >= LZMA_PROPS_SIZE; Index--)
|
for (Index = LZMA_PROPS_SIZE + 7; Index >= LZMA_PROPS_SIZE; Index--)
|
||||||
DecodedSize = LShiftU64(DecodedSize, 8) + EncodedData[Index];
|
DecodedSize = LShiftU64(DecodedSize, 8) + EncodedData[Index];
|
||||||
|
|
||||||
return DecodedSize;
|
return DecodedSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -88,19 +88,15 @@ buffer was returned ScratchSize.
|
|||||||
INT32
|
INT32
|
||||||
EFIAPI
|
EFIAPI
|
||||||
LzmaGetInfo(
|
LzmaGetInfo(
|
||||||
CONST VOID *Source,
|
CONST VOID *Source,
|
||||||
UINT32 SourceSize,
|
UINTN SourceSize,
|
||||||
UINT32 *DestinationSize
|
UINTN *DestinationSize
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
UInt64 DecodedSize;
|
ASSERT(SourceSize >= LZMA_HEADER_SIZE); (void)SourceSize;
|
||||||
|
|
||||||
ASSERT(SourceSize >= LZMA_HEADER_SIZE); (void)SourceSize;
|
*DestinationSize = (UINTN)GetDecodedSizeOfBuf((UINT8*)Source);
|
||||||
|
return ERR_SUCCESS;
|
||||||
DecodedSize = GetDecodedSizeOfBuf((UINT8*)Source);
|
|
||||||
|
|
||||||
*DestinationSize = (UINT32)DecodedSize;
|
|
||||||
return ERR_SUCCESS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -125,35 +121,35 @@ The source buffer specified by Source is corrupted
|
|||||||
INT32
|
INT32
|
||||||
EFIAPI
|
EFIAPI
|
||||||
LzmaDecompress(
|
LzmaDecompress(
|
||||||
CONST VOID *Source,
|
CONST VOID *Source,
|
||||||
UINT32 SourceSize,
|
UINTN SourceSize,
|
||||||
VOID *Destination
|
VOID *Destination
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
SRes LzmaResult;
|
SRes LzmaResult;
|
||||||
ELzmaStatus Status;
|
ELzmaStatus Status;
|
||||||
SizeT DecodedBufSize;
|
SizeT DecodedBufSize;
|
||||||
SizeT EncodedDataSize;
|
SizeT EncodedDataSize;
|
||||||
|
|
||||||
DecodedBufSize = (SizeT)GetDecodedSizeOfBuf((UINT8*)Source);
|
DecodedBufSize = (SizeT)GetDecodedSizeOfBuf((UINT8*)Source);
|
||||||
EncodedDataSize = (SizeT)(SourceSize - LZMA_HEADER_SIZE);
|
EncodedDataSize = (SizeT)(SourceSize - LZMA_HEADER_SIZE);
|
||||||
|
|
||||||
LzmaResult = LzmaDecode(
|
LzmaResult = LzmaDecode(
|
||||||
(Byte*)Destination,
|
(Byte*)Destination,
|
||||||
&DecodedBufSize,
|
&DecodedBufSize,
|
||||||
(Byte*)((UINT8*)Source + LZMA_HEADER_SIZE),
|
(Byte*)((UINT8*)Source + LZMA_HEADER_SIZE),
|
||||||
&EncodedDataSize,
|
&EncodedDataSize,
|
||||||
(CONST Byte*) Source,
|
(CONST Byte*) Source,
|
||||||
LZMA_PROPS_SIZE,
|
LZMA_PROPS_SIZE,
|
||||||
LZMA_FINISH_END,
|
LZMA_FINISH_END,
|
||||||
&Status,
|
&Status,
|
||||||
&SzAllocForLzma
|
&SzAllocForLzma
|
||||||
);
|
);
|
||||||
|
|
||||||
if (LzmaResult == SZ_OK) {
|
if (LzmaResult == SZ_OK) {
|
||||||
return ERR_SUCCESS;
|
return ERR_SUCCESS;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return ERR_INVALID_PARAMETER;
|
return ERR_INVALID_PARAMETER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,8 +61,8 @@ extern "C" {
|
|||||||
EFIAPI
|
EFIAPI
|
||||||
LzmaGetInfo(
|
LzmaGetInfo(
|
||||||
const VOID *Source,
|
const VOID *Source,
|
||||||
UINT32 SourceSize,
|
UINTN SourceSize,
|
||||||
UINT32 *DestinationSize
|
UINTN *DestinationSize
|
||||||
);
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -88,8 +88,8 @@ extern "C" {
|
|||||||
EFIAPI
|
EFIAPI
|
||||||
LzmaDecompress(
|
LzmaDecompress(
|
||||||
const VOID *Source,
|
const VOID *Source,
|
||||||
UINT32 SourceSize,
|
UINTN SourceSize,
|
||||||
VOID *Destination
|
VOID *Destination
|
||||||
);
|
);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -32,85 +32,82 @@ Header file for compression routine.
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*++
|
/*++
|
||||||
|
|
||||||
Routine Description:
|
Routine Description:
|
||||||
|
|
||||||
Tiano compression routine.
|
Tiano compression routine.
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
|
|
||||||
SrcBuffer - The buffer storing the source data
|
SrcBuffer - The buffer storing the source data
|
||||||
SrcSize - The size of source data
|
SrcSize - The size of source data
|
||||||
DstBuffer - The buffer to store the compressed data
|
DstBuffer - The buffer to store the compressed data
|
||||||
DstSize - On input, the size of DstBuffer; On output,
|
DstSize - On input, the size of DstBuffer; On output,
|
||||||
the size of the actual compressed data.
|
the size of the actual compressed data.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
EFI_BUFFER_TOO_SMALL - The DstBuffer is too small. this case,
|
EFI_BUFFER_TOO_SMALL - The DstBuffer is too small. this case,
|
||||||
DstSize contains the size needed.
|
DstSize contains the size needed.
|
||||||
EFI_SUCCESS - Compression is successful.
|
EFI_SUCCESS - Compression is successful.
|
||||||
EFI_OUT_OF_RESOURCES - No resource to complete function.
|
EFI_OUT_OF_RESOURCES - No resource to complete function.
|
||||||
EFI_INVALID_PARAMETER - Parameter supplied is wrong.
|
EFI_INVALID_PARAMETER - Parameter supplied is wrong.
|
||||||
|
|
||||||
--*/
|
--*/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
TianoCompress(
|
TianoCompress(
|
||||||
CONST VOID *SrcBuffer,
|
IN CONST VOID *SrcBuffer,
|
||||||
UINT32 SrcSize,
|
IN UINT32 SrcSize,
|
||||||
VOID *DstBuffer,
|
IN VOID *DstBuffer,
|
||||||
UINT32 *DstSize
|
IN OUT UINT32 *DstSize
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
TianoCompressLegacy(
|
TianoCompressLegacy(
|
||||||
CONST VOID *SrcBuffer,
|
CONST VOID *SrcBuffer,
|
||||||
UINT32 SrcSize,
|
UINT32 SrcSize,
|
||||||
VOID *DstBuffer,
|
VOID *DstBuffer,
|
||||||
UINT32 *DstSize
|
UINT32 *DstSize
|
||||||
)
|
);
|
||||||
;
|
/*++
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
Routine Description:
|
||||||
|
|
||||||
EFI 1.1 compression routine.
|
EFI 1.1 compression routine.
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
|
|
||||||
SrcBuffer - The buffer storing the source data
|
SrcBuffer - The buffer storing the source data
|
||||||
SrcSize - The size of source data
|
SrcSize - The size of source data
|
||||||
DstBuffer - The buffer to store the compressed data
|
DstBuffer - The buffer to store the compressed data
|
||||||
DstSize - On input, the size of DstBuffer; On output,
|
DstSize - On input, the size of DstBuffer; On output,
|
||||||
the size of the actual compressed data.
|
the size of the actual compressed data.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
|
|
||||||
EFI_BUFFER_TOO_SMALL - The DstBuffer is too small. this case,
|
EFI_BUFFER_TOO_SMALL - The DstBuffer is too small. this case,
|
||||||
DstSize contains the size needed.
|
DstSize contains the size needed.
|
||||||
EFI_SUCCESS - Compression is successful.
|
EFI_SUCCESS - Compression is successful.
|
||||||
EFI_OUT_OF_RESOURCES - No resource to complete function.
|
EFI_OUT_OF_RESOURCES - No resource to complete function.
|
||||||
EFI_INVALID_PARAMETER - Parameter supplied is wrong.
|
EFI_INVALID_PARAMETER - Parameter supplied is wrong.
|
||||||
|
|
||||||
--*/
|
--*/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EfiCompress(
|
EfiCompress(
|
||||||
CONST VOID *SrcBuffer,
|
IN CONST VOID *SrcBuffer,
|
||||||
UINT32 SrcSize,
|
IN UINT32 SrcSize,
|
||||||
VOID *DstBuffer,
|
IN VOID *DstBuffer,
|
||||||
UINT32 *DstSize
|
IN OUT UINT32 *DstSize
|
||||||
)
|
);
|
||||||
;
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EfiCompressLegacy(
|
EfiCompressLegacy(
|
||||||
CONST VOID *SrcBuffer,
|
CONST VOID *SrcBuffer,
|
||||||
UINT32 SrcSize,
|
UINT32 SrcSize,
|
||||||
VOID *DstBuffer,
|
VOID *DstBuffer,
|
||||||
UINT32 *DstSize
|
UINT32 *DstSize
|
||||||
)
|
);
|
||||||
;
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -37,14 +37,13 @@ extern "C" {
|
|||||||
UINT32 OrigSize;
|
UINT32 OrigSize;
|
||||||
} EFI_TIANO_HEADER;
|
} EFI_TIANO_HEADER;
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EfiTianoGetInfo(
|
||||||
EfiTianoGetInfo(
|
IN const VOID *Source,
|
||||||
const VOID *Source,
|
IN UINT32 SrcSize,
|
||||||
UINT32 SrcSize,
|
OUT UINT32 *DstSize,
|
||||||
UINT32 *DstSize,
|
OUT UINT32 *ScratchSize
|
||||||
UINT32 *ScratchSize
|
)
|
||||||
)
|
|
||||||
/*++
|
/*++
|
||||||
|
|
||||||
Routine Description:
|
Routine Description:
|
||||||
@ -67,16 +66,16 @@ extern "C" {
|
|||||||
--*/
|
--*/
|
||||||
;
|
;
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiDecompress(
|
EfiDecompress(
|
||||||
const VOID *Source,
|
IN const VOID *Source,
|
||||||
UINT32 SrcSize,
|
IN UINT32 SrcSize,
|
||||||
VOID *Destination,
|
IN OUT VOID *Destination,
|
||||||
UINT32 DstSize,
|
IN UINT32 DstSize,
|
||||||
VOID *Scratch,
|
IN OUT VOID *Scratch,
|
||||||
UINT32 ScratchSize
|
IN UINT32 ScratchSize
|
||||||
)
|
)
|
||||||
/*++
|
/*++
|
||||||
|
|
||||||
Routine Description:
|
Routine Description:
|
||||||
@ -101,16 +100,16 @@ extern "C" {
|
|||||||
--*/
|
--*/
|
||||||
;
|
;
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
TianoDecompress(
|
TianoDecompress(
|
||||||
const VOID *Source,
|
IN const VOID *Source,
|
||||||
UINT32 SrcSize,
|
IN UINT32 SrcSize,
|
||||||
VOID *Destination,
|
IN OUT VOID *Destination,
|
||||||
UINT32 DstSize,
|
IN UINT32 DstSize,
|
||||||
VOID *Scratch,
|
IN OUT VOID *Scratch,
|
||||||
UINT32 ScratchSize
|
IN UINT32 ScratchSize
|
||||||
)
|
)
|
||||||
/*++
|
/*++
|
||||||
|
|
||||||
Routine Description:
|
Routine Description:
|
||||||
|
@ -52,8 +52,9 @@ F7731B4C-58A2-4DF4-8980-5645D39ECE58 10 P:0FBA6C24380F:0FBA7424380F
|
|||||||
299D6F8B-2EC9-4E40-9EC6-DDAA7EBF5FD9 10 P:81E10080000033C1:9090909090909090
|
299D6F8B-2EC9-4E40-9EC6-DDAA7EBF5FD9 10 P:81E10080000033C1:9090909090909090
|
||||||
299D6F8B-2EC9-4E40-9EC6-DDAA7EBF5FD9 12 P:81E10080000033C1:9090909090909090
|
299D6F8B-2EC9-4E40-9EC6-DDAA7EBF5FD9 12 P:81E10080000033C1:9090909090909090
|
||||||
|
|
||||||
# PpmInitialize | Skylake-X
|
# SiInit | Skylake-X
|
||||||
3FFCAE95-23CF-4967-94F5-16352F68E43B 10 P:742CB9E2000000:752CB9E2000000
|
D71C8BA4-4AF2-4D0D-B1BA-F2409F0C20D3 10 P:81E10080000033C1:9090909090909090
|
||||||
|
D71C8BA4-4AF2-4D0D-B1BA-F2409F0C20D3 12 P:81E10080000033C1:9090909090909090
|
||||||
|
|
||||||
# CpuInitPei | Skylake-X
|
# PpmInitialize | Skylake-X, Kaby Lake-X
|
||||||
01359D99-9446-456D-ADA4-50A711C03ADA 12 P:BE0080000023CE0B:BE0000000023CE0B
|
3FFCAE95-23CF-4967-94F5-16352F68E43B 10 P:0FBAE80F:0FBAE00F
|
@ -95,6 +95,7 @@ public:
|
|||||||
UINT8 replace(const QModelIndex & index, const QByteArray & object, const UINT8 mode);
|
UINT8 replace(const QModelIndex & index, const QByteArray & object, const UINT8 mode);
|
||||||
UINT8 remove(const QModelIndex & index);
|
UINT8 remove(const QModelIndex & index);
|
||||||
UINT8 rebuild(const QModelIndex & index);
|
UINT8 rebuild(const QModelIndex & index);
|
||||||
|
UINT8 doNotRebuild(const QModelIndex & index);
|
||||||
UINT8 dump(const QModelIndex & index, const QString & path, const QString & filter = QString());
|
UINT8 dump(const QModelIndex & index, const QString & path, const QString & filter = QString());
|
||||||
UINT8 patch(const QModelIndex & index, const QVector<PatchData> & patches);
|
UINT8 patch(const QModelIndex & index, const QVector<PatchData> & patches);
|
||||||
|
|
||||||
|
@ -150,6 +150,8 @@ QString actionTypeToQString(const UINT8 action)
|
|||||||
return QObject::tr("Rebuild");
|
return QObject::tr("Rebuild");
|
||||||
case Actions::Rebase:
|
case Actions::Rebase:
|
||||||
return QObject::tr("Rebase");
|
return QObject::tr("Rebase");
|
||||||
|
case Actions::DoNotRebuild:
|
||||||
|
return QObject::tr("Do not rebuild");
|
||||||
default:
|
default:
|
||||||
return QObject::tr("Unknown");
|
return QObject::tr("Unknown");
|
||||||
}
|
}
|
||||||
|
3
types.h
3
types.h
@ -26,7 +26,8 @@ namespace Actions
|
|||||||
Replace,
|
Replace,
|
||||||
Remove,
|
Remove,
|
||||||
Rebuild,
|
Rebuild,
|
||||||
Rebase
|
Rebase,
|
||||||
|
DoNotRebuild
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
16
uefitool.cpp
16
uefitool.cpp
@ -17,7 +17,7 @@
|
|||||||
UEFITool::UEFITool(QWidget *parent) :
|
UEFITool::UEFITool(QWidget *parent) :
|
||||||
QMainWindow(parent),
|
QMainWindow(parent),
|
||||||
ui(new Ui::UEFITool),
|
ui(new Ui::UEFITool),
|
||||||
version(tr("0.22.4"))
|
version(tr("0.23.0"))
|
||||||
{
|
{
|
||||||
clipboard = QApplication::clipboard();
|
clipboard = QApplication::clipboard();
|
||||||
|
|
||||||
@ -43,6 +43,7 @@ version(tr("0.22.4"))
|
|||||||
connect(ui->actionReplaceBody, SIGNAL(triggered()), this, SLOT(replaceBody()));
|
connect(ui->actionReplaceBody, SIGNAL(triggered()), this, SLOT(replaceBody()));
|
||||||
connect(ui->actionRemove, SIGNAL(triggered()), this, SLOT(remove()));
|
connect(ui->actionRemove, SIGNAL(triggered()), this, SLOT(remove()));
|
||||||
connect(ui->actionRebuild, SIGNAL(triggered()), this, SLOT(rebuild()));
|
connect(ui->actionRebuild, SIGNAL(triggered()), this, SLOT(rebuild()));
|
||||||
|
connect(ui->actionDoNotRebuild, SIGNAL(triggered()), this, SLOT(doNotRebuild()));
|
||||||
connect(ui->actionMessagesCopy, SIGNAL(triggered()), this, SLOT(copyMessage()));
|
connect(ui->actionMessagesCopy, SIGNAL(triggered()), this, SLOT(copyMessage()));
|
||||||
connect(ui->actionMessagesCopyAll, SIGNAL(triggered()), this, SLOT(copyAllMessages()));
|
connect(ui->actionMessagesCopyAll, SIGNAL(triggered()), this, SLOT(copyAllMessages()));
|
||||||
connect(ui->actionMessagesClear, SIGNAL(triggered()), this, SLOT(clearMessages()));
|
connect(ui->actionMessagesClear, SIGNAL(triggered()), this, SLOT(clearMessages()));
|
||||||
@ -146,6 +147,7 @@ void UEFITool::populateUi(const QModelIndex ¤t)
|
|||||||
// Enable actions
|
// Enable actions
|
||||||
ui->actionExtract->setDisabled(model->hasEmptyHeader(current) && model->hasEmptyBody(current));
|
ui->actionExtract->setDisabled(model->hasEmptyHeader(current) && model->hasEmptyBody(current));
|
||||||
ui->actionRebuild->setEnabled(type == Types::Volume || type == Types::File || type == Types::Section);
|
ui->actionRebuild->setEnabled(type == Types::Volume || type == Types::File || type == Types::Section);
|
||||||
|
ui->actionDoNotRebuild->setEnabled(type== Types::Region || type == Types::Volume || type == Types::File || type == Types::Section);
|
||||||
ui->actionExtractBody->setDisabled(model->hasEmptyBody(current));
|
ui->actionExtractBody->setDisabled(model->hasEmptyBody(current));
|
||||||
ui->actionRemove->setEnabled(type == Types::Volume || type == Types::File || type == Types::Section);
|
ui->actionRemove->setEnabled(type == Types::Volume || type == Types::File || type == Types::Section);
|
||||||
ui->actionInsertInto->setEnabled((type == Types::Volume && subtype != Subtypes::UnknownVolume) ||
|
ui->actionInsertInto->setEnabled((type == Types::Volume && subtype != Subtypes::UnknownVolume) ||
|
||||||
@ -220,6 +222,18 @@ void UEFITool::rebuild()
|
|||||||
ui->actionSaveImageFile->setEnabled(true);
|
ui->actionSaveImageFile->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void UEFITool::doNotRebuild()
|
||||||
|
{
|
||||||
|
QModelIndex index = ui->structureTreeView->selectionModel()->currentIndex();
|
||||||
|
if (!index.isValid())
|
||||||
|
return;
|
||||||
|
|
||||||
|
UINT8 result = ffsEngine->doNotRebuild(index);
|
||||||
|
|
||||||
|
if (result == ERR_SUCCESS)
|
||||||
|
ui->actionSaveImageFile->setEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
void UEFITool::remove()
|
void UEFITool::remove()
|
||||||
{
|
{
|
||||||
QModelIndex index = ui->structureTreeView->selectionModel()->currentIndex();
|
QModelIndex index = ui->structureTreeView->selectionModel()->currentIndex();
|
||||||
|
@ -78,6 +78,7 @@ public:
|
|||||||
void replaceBody();
|
void replaceBody();
|
||||||
|
|
||||||
void rebuild();
|
void rebuild();
|
||||||
|
void doNotRebuild();
|
||||||
|
|
||||||
void remove();
|
void remove();
|
||||||
|
|
||||||
|
19
uefitool.ui
19
uefitool.ui
@ -180,7 +180,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>800</width>
|
<width>800</width>
|
||||||
<height>21</height>
|
<height>31</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="menuFile">
|
<widget class="QMenu" name="menuFile">
|
||||||
@ -225,6 +225,8 @@
|
|||||||
</property>
|
</property>
|
||||||
<addaction name="actionExtract"/>
|
<addaction name="actionExtract"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
|
<addaction name="actionDoNotRebuild"/>
|
||||||
|
<addaction name="separator"/>
|
||||||
<addaction name="actionReplace"/>
|
<addaction name="actionReplace"/>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenu" name="menuPaddingActions">
|
<widget class="QMenu" name="menuPaddingActions">
|
||||||
@ -243,6 +245,7 @@
|
|||||||
<addaction name="actionExtractBody"/>
|
<addaction name="actionExtractBody"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionRebuild"/>
|
<addaction name="actionRebuild"/>
|
||||||
|
<addaction name="actionDoNotRebuild"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionInsertInto"/>
|
<addaction name="actionInsertInto"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
@ -257,6 +260,7 @@
|
|||||||
<addaction name="actionExtractBody"/>
|
<addaction name="actionExtractBody"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionRebuild"/>
|
<addaction name="actionRebuild"/>
|
||||||
|
<addaction name="actionDoNotRebuild"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionInsertInto"/>
|
<addaction name="actionInsertInto"/>
|
||||||
<addaction name="actionInsertBefore"/>
|
<addaction name="actionInsertBefore"/>
|
||||||
@ -275,6 +279,7 @@
|
|||||||
<addaction name="actionExtractBody"/>
|
<addaction name="actionExtractBody"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionRebuild"/>
|
<addaction name="actionRebuild"/>
|
||||||
|
<addaction name="actionDoNotRebuild"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionInsertInto"/>
|
<addaction name="actionInsertInto"/>
|
||||||
<addaction name="actionInsertBefore"/>
|
<addaction name="actionInsertBefore"/>
|
||||||
@ -284,7 +289,6 @@
|
|||||||
<addaction name="actionReplaceBody"/>
|
<addaction name="actionReplaceBody"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionRemove"/>
|
<addaction name="actionRemove"/>
|
||||||
<addaction name="separator"/>
|
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QMenu" name="menuMessages">
|
<widget class="QMenu" name="menuMessages">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
@ -536,6 +540,17 @@
|
|||||||
<string>Ctrl+Shift+O</string>
|
<string>Ctrl+Shift+O</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionDoNotRebuild">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>&Do not rebuild</string>
|
||||||
|
</property>
|
||||||
|
<property name="shortcut">
|
||||||
|
<string>Ctrl+Shift+Space</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<layoutdefault spacing="6" margin="11"/>
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
Loading…
Reference in New Issue
Block a user