summaryrefslogtreecommitdiff
path: root/MdePkg
diff options
context:
space:
mode:
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2007-08-08 10:17:57 +0000
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2007-08-08 10:17:57 +0000
commitd8c79a815f9e993b741ec38cd39498e674e1739e (patch)
tree271166e1be541db9e47baa8ea9b12488afb57999 /MdePkg
parentc76af11785efe49e91b2cd3eef61cebf61e00549 (diff)
downloadedk2-platforms-d8c79a815f9e993b741ec38cd39498e674e1739e.tar.xz
Update CustomDecompress library to support algorithm guid and Update DxeIpl and DxeCore to support custom decompress guid section parse.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3573 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg')
-rw-r--r--MdePkg/Include/Library/CustomDecompressLib.h48
-rw-r--r--MdePkg/Library/BaseCustomDecompressLibNull/BaseCustomDecompressLibNull.c21
2 files changed, 66 insertions, 3 deletions
diff --git a/MdePkg/Include/Library/CustomDecompressLib.h b/MdePkg/Include/Library/CustomDecompressLib.h
index d928050760..36086d4f0f 100644
--- a/MdePkg/Include/Library/CustomDecompressLib.h
+++ b/MdePkg/Include/Library/CustomDecompressLib.h
@@ -16,21 +16,63 @@
#ifndef __CUSTOM_DECPOMPRESS_LIB_H__
#define __CUSTOM_DECPOMPRESS_LIB_H__
+/**
+ Decompress GetInfo fucntion.
+
+ @param[in] DecompressGuid The guid matches this decompress method.
+ @param[in] Source The source buffer containing the compressed data.
+ @param[in] SourceSize The size of source buffer
+ @param[out] DestinationSize The size of destination buffer.
+ @param[out] ScratchSize The size of scratch buffer.
+
+ @retval RETURN_SUCCESS The size of destination buffer and the size of scratch buffer are successull retrieved.
+ @retval RETURN_INVALID_PARAMETER The source data is corrupted
+
+**/
RETURN_STATUS
EFIAPI
CustomDecompressGetInfo (
+ IN CONST GUID *DecompressGuid,
IN CONST VOID *Source,
IN UINT32 SourceSize,
OUT UINT32 *DestinationSize,
OUT UINT32 *ScratchSize
);
+/**
+ Decompress fucntion.
+
+ @param[in] DecompressGuid The guid matches this decompress method.
+ @param[in] Source The source buffer containing the compressed data.
+ @param[in] Destination The destination buffer to store the decompressed data
+ @param[out] Scratch The buffer used internally by the decompress routine. This buffer is needed to store intermediate data.
+
+ @retval RETURN_SUCCESS Decompression is successfull
+ @retval RETURN_INVALID_PARAMETER The source data is corrupted
+
+**/
RETURN_STATUS
EFIAPI
CustomDecompress (
- IN CONST VOID *Source,
- IN OUT VOID *Destination,
- IN OUT VOID *Scratch
+ IN CONST GUID *DecompressGuid,
+ IN CONST VOID *Source,
+ IN OUT VOID *Destination,
+ IN OUT VOID *Scratch
+ );
+
+/**
+ Get decompress method guid list.
+
+ @param[in, out] AlgorithmGuidTable The decompress method guid list.
+ @param[in, out] NumberOfAlgorithms The number of decompress methods.
+
+ @retval RETURN_SUCCESS Get all algorithmes list successfully..
+**/
+RETURN_STATUS
+EFIAPI
+CustomDecompressGetAlgorithms (
+ IN OUT GUID **AlgorithmGuidTable,
+ IN OUT UINTN *NumberOfAlgorithms
);
#endif
diff --git a/MdePkg/Library/BaseCustomDecompressLibNull/BaseCustomDecompressLibNull.c b/MdePkg/Library/BaseCustomDecompressLibNull/BaseCustomDecompressLibNull.c
index 669f937487..4635e87e4d 100644
--- a/MdePkg/Library/BaseCustomDecompressLibNull/BaseCustomDecompressLibNull.c
+++ b/MdePkg/Library/BaseCustomDecompressLibNull/BaseCustomDecompressLibNull.c
@@ -31,6 +31,7 @@
RETURN_STATUS
EFIAPI
CustomDecompressGetInfo (
+ IN CONST GUID *DecompressGuid,
IN CONST VOID *Source,
IN UINT32 SourceSize,
OUT UINT32 *DestinationSize,
@@ -56,6 +57,7 @@ CustomDecompressGetInfo (
RETURN_STATUS
EFIAPI
CustomDecompress (
+ IN const GUID *DecompressGuid,
IN CONST VOID *Source,
IN OUT VOID *Destination,
IN OUT VOID *Scratch
@@ -63,3 +65,22 @@ CustomDecompress (
{
return RETURN_UNSUPPORTED;
}
+
+/**
+ Get decompress method guid list.
+
+ @param[in, out] AlgorithmGuidTable The decompress method guid list.
+ @param[in, out] NumberOfAlgorithms The number of decompress methods.
+
+ @retval RETURN_SUCCESS Get all algorithmes list successfully..
+**/
+RETURN_STATUS
+EFIAPI
+CustomDecompressGetAlgorithms (
+ IN OUT GUID **AlgorithmGuidTable,
+ IN OUT UINTN *NumberOfAlgorithms
+ )
+{
+ *NumberOfAlgorithms = 0;
+ return RETURN_SUCCESS;
+}